feat(admin): host the ban/report settings page in the SPA schema
The users-interaction sidebar entry 禁封/举报 was a redirect stub; it is
now a schema-driven settings page replicating the reference theme
field-for-field:
- user_ban_s / user_report_s switches, ban_preset_reason and
ban_appeal_keys as repeatable group rows ({t}), ban_appeal_desc and
user_report_desc HTML textareas with the reference default copy, and
user_report_img_s — keys, labels, help texts, defaults and ordering
all mirrored in SchemaUsers.php and the SPA report.js schema
- UserRuntime::ban_settings()/report_settings() and
BanAppeal::settings() read the new group-array values with fallback
to the previous line/comma formats
- delete the self-built SPA queue pages (UsersBan, UsersReport,
ReportDetailDrawer, UsersMessages) that the reference theme does not
have; legacy /users/report bookmarks still redirect to the native page
- contract tests: lock the schema keys/labels, the schemaPage mount and
the deleted-file state; drop reads of removed components
This commit is contained in:
1 parent
c0e0912eee
commit
381256ed59
12 files changed
+191
-1236
No files matched your search
@@ -1,57 +1,71 @@
|
||||
// 字段集合、顺序、文案、默认值 1:1 对齐参考主题"用户&互动/禁封/举报"
|
||||
export const reportSchema = {
|
||||
key: 'users.report',
|
||||
title: '禁封/举报',
|
||||
icon: 'fa fas fa-flag',
|
||||
description: '配置举报入口、公开限制提示和后续治理分类,为封禁/举报流程预留稳定结构。',
|
||||
icon: 'fa fas fa-ban',
|
||||
description: '禁封功能、举报入口、预置原因、申诉资料与举报说明配置。',
|
||||
defaults: {
|
||||
user_report_enabled: false,
|
||||
user_report_public_entry: true,
|
||||
user_report_public_notice: true,
|
||||
user_report_ban_notice_text: '当前账号处于限制状态,部分互动能力已关闭。',
|
||||
user_report_categories: 'spam|垃圾信息\nabuse|人身攻击\ncopyright|版权投诉',
|
||||
ban_preset_reason: 'spam|垃圾信息\nabuse|人身攻击\nviolation|违规操作',
|
||||
ban_appeal_desc: '',
|
||||
ban_appeal_keys: '',
|
||||
user_ban_s: true,
|
||||
user_report_s: true,
|
||||
ban_preset_reason: [
|
||||
{ t: '发布色情、违法内容' },
|
||||
{ t: '存在欺诈骗钱行为' },
|
||||
{ t: '骚扰他人' },
|
||||
{ t: '涉嫌侵权' },
|
||||
{ t: '发布垃圾广告信息' },
|
||||
],
|
||||
ban_appeal_desc: '<div>为了良好的交流环境,申诉请阅读以下事项</div>\n<li>首次违规将拉入小黑屋7天</li>\n<li>3次违规后将直接禁封账号</li>\n<li>违规情节严重将无法提交申诉</li>\n<li>申诉提交后约2-3个工作日进行审核</li>\n<li>如有其它疑问请与客服联系</li>',
|
||||
ban_appeal_keys: [
|
||||
{ t: '真实姓名' },
|
||||
{ t: '邮箱' },
|
||||
{ t: '手机号' },
|
||||
],
|
||||
user_report_img_s: true,
|
||||
user_report_desc: '',
|
||||
user_report_desc: '<div>举报说明:</div>\n<li>请确保举报的内容属实</li>\n<li>我们将会在收到举报后2个工作日内进行处理</li>\n<li>举报属实我们将根据社区管理条例对该用户进行封号处理</li>\n<li>如有其它疑问请与客服联系</li>',
|
||||
},
|
||||
groups: [
|
||||
{
|
||||
key: 'entry',
|
||||
title: '前台入口',
|
||||
icon: 'fa fas fa-sign-in-alt',
|
||||
fields: [
|
||||
{ key: 'user_report_enabled', label: '启用举报/禁封结构', type: 'switch', default: false },
|
||||
{ key: 'user_report_public_entry', label: '公开主页展示举报入口', type: 'switch', default: true, dependsOn: { key: 'user_report_enabled', value: true } },
|
||||
{ key: 'user_report_public_notice', label: '公开显示限制提示', type: 'switch', default: true, dependsOn: { key: 'user_report_enabled', value: true } },
|
||||
{ key: 'user_report_ban_notice_text', label: '限制提示文案', type: 'input', default: '当前账号处于限制状态,部分互动能力已关闭。', dependsOn: { key: 'user_report_public_notice', value: true } },
|
||||
],
|
||||
},
|
||||
{
|
||||
key: 'taxonomy',
|
||||
title: '举报分类',
|
||||
icon: 'fa fas fa-list',
|
||||
fields: [
|
||||
{ key: 'user_report_categories', label: '举报分类', type: 'textarea', default: 'spam|垃圾信息\nabuse|人身攻击\ncopyright|版权投诉', help: '每行一个分类:slug|显示名称', dependsOn: { key: 'user_report_enabled', value: true } },
|
||||
],
|
||||
},
|
||||
{
|
||||
key: 'ban',
|
||||
title: '禁封设置',
|
||||
key: 'main',
|
||||
title: '',
|
||||
icon: 'fa fas fa-ban',
|
||||
fields: [
|
||||
{ key: 'ban_preset_reason', label: '预设封禁原因', type: 'textarea', default: 'spam|垃圾信息\nabuse|人身攻击\nviolation|违规操作', help: '每行一条:slug|显示名称', dependsOn: { key: 'user_report_enabled', value: true } },
|
||||
{ key: 'ban_appeal_desc', label: '申诉说明', type: 'textarea', default: '', dependsOn: { key: 'user_report_enabled', value: true } },
|
||||
{ key: 'ban_appeal_keys', label: '申诉关键词', type: 'input', default: '', help: '逗号分隔', dependsOn: { key: 'user_report_enabled', value: true } },
|
||||
],
|
||||
},
|
||||
{
|
||||
key: 'image',
|
||||
title: '图片举报',
|
||||
icon: 'fa fas fa-image',
|
||||
fields: [
|
||||
{ key: 'user_report_img_s', label: '启用图片举报', type: 'switch', default: true, dependsOn: { key: 'user_report_enabled', value: true } },
|
||||
{ key: 'user_report_desc', label: '举报说明', type: 'textarea', default: '', dependsOn: { key: 'user_report_img_s', value: true } },
|
||||
{ key: 'user_ban_s', label: '禁封功能', type: 'switch', default: true, help: '启用后可以设置用户禁封,即小黑屋和封号的功能' },
|
||||
{ key: 'user_report_s', label: '举报功能', type: 'switch', default: true, help: '前台显示举报按钮,用户可以举报其它不良信息', dependsOn: { key: 'user_ban_s', value: true } },
|
||||
{
|
||||
key: 'ban_preset_reason',
|
||||
label: '预置原因',
|
||||
type: 'group',
|
||||
button_title: '添加原因',
|
||||
help: '举报/禁封的时候可选择的原因',
|
||||
default: [
|
||||
{ t: '发布色情、违法内容' },
|
||||
{ t: '存在欺诈骗钱行为' },
|
||||
{ t: '骚扰他人' },
|
||||
{ t: '涉嫌侵权' },
|
||||
{ t: '发布垃圾广告信息' },
|
||||
],
|
||||
fields: [
|
||||
{ key: 't', label: '原因', type: 'input', default: '' },
|
||||
],
|
||||
},
|
||||
{ key: 'ban_appeal_desc', label: '申诉说明', type: 'textarea', rows: 5, help: '用户申诉时候显示的内容(支持HTML代码,请注意代码规范)', default: '<div>为了良好的交流环境,申诉请阅读以下事项</div>\n<li>首次违规将拉入小黑屋7天</li>\n<li>3次违规后将直接禁封账号</li>\n<li>违规情节严重将无法提交申诉</li>\n<li>申诉提交后约2-3个工作日进行审核</li>\n<li>如有其它疑问请与客服联系</li>' },
|
||||
{
|
||||
key: 'ban_appeal_keys',
|
||||
label: '申诉所需资料',
|
||||
type: 'group',
|
||||
button_title: '添加申诉资料',
|
||||
help: '用户提交申诉时候需要提供的资料;此处的信息收集,仅用于记录和申诉审核',
|
||||
default: [
|
||||
{ t: '真实姓名' },
|
||||
{ t: '邮箱' },
|
||||
{ t: '手机号' },
|
||||
],
|
||||
fields: [
|
||||
{ key: 't', label: '资料项', type: 'input', default: '' },
|
||||
],
|
||||
},
|
||||
{ key: 'user_report_img_s', label: '举报可上传图片', type: 'switch', default: true, help: '举报时允许上传图片进行举证(最多上传3张)', dependsOn: { key: 'user_report_s', value: true } },
|
||||
{ key: 'user_report_desc', label: '举报说明', type: 'textarea', rows: 5, help: '举报时候显示的内容(支持HTML代码,请注意代码规范)', dependsOn: { key: 'user_report_s', value: true }, default: '<div>举报说明:</div>\n<li>请确保举报的内容属实</li>\n<li>我们将会在收到举报后2个工作日内进行处理</li>\n<li>举报属实我们将根据社区管理条例对该用户进行封号处理</li>\n<li>如有其它疑问请与客服联系</li>' },
|
||||
],
|
||||
},
|
||||
],
|
||||
|
||||
Reference in new issue
Block a user