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:
kate522 committed 2026-09-19 22:24:55 +08:00
1 parent c0e0912eee
commit 381256ed59
12 files changed
+191 -1236

No files matched your search

+7 -10
View File
@@ -3,7 +3,8 @@ import { renderFaIcon, schemaPage, customPage } from './helpers'
/**
* Users SPA keeps config-shaped pages.
* Message / referral-code queues live under users.php native menus;
* 封禁/举报 gets a sidebar entry that lands on the native ban page.
* 禁封/举报 is a config page (schema section "report"); ticket queues
* (举报&禁封申诉) stay on the native WP users.php page.
*/
export const usersSection = {
key: 'users',
@@ -129,19 +130,15 @@ export const usersSection = {
canonicalDomain: 'users',
section: 'wechat-template',
}),
customPage({
schemaPage({
key: 'users-ban',
name: 'UsersBan',
label: '封禁/举报',
label: '禁封/举报',
route: '/users/ban',
component: 'NativeOpsRedirect',
status: 'available',
title: '封禁/举报',
desc: '举报工单、禁封限制与申诉审核,统一在 WordPress 用户菜单处理。',
iconClass: 'fa fas fa-gavel',
title: '禁封/举报',
desc: '禁封功能、举报功能、预置原因、申诉资料与举报说明配置;举报与申诉工单在 WordPress 用户菜单处理。',
canonicalDomain: 'users',
section: 'ban',
nativeAdminPath: 'users.php?page=aksrt_user_ban',
section: 'report',
}),
],
}