Files
wordpress-theme-aksrt/assets/admin/src/constants/sections/users.js
T
kate522andClaude Fable 5 e7ca0ee5df refactor(ticket): move the config tab into the SPA ticket center
users.php → 工单管理 的「配置」Tab 只管理部门 / 状态 / 预设回复三块
DB 字典,与 SPA「工单中心」已有的 8 个标量配置分裂成两处;且同一套
CRUD 在 admin_post 与 TicketConfigRest 里各写了一遍,REST 侧此前
没有任何调用方。

- 删除原生 config tab:UsersMenusTicketsConfig.php 整份移除,
  UsersMenusTicketsCenter 由 512 行降到 251 行(六个写处理方法、
  分发分支、十条提示码与 ticket_delete_button 一并清理)
- SPA /users/ticket 改为 customPage:内嵌 SchemaPage 承载原有 8 字段,
  三块字典改为 n-data-table + n-modal + n-dialog,取色器/管理员多选/
  拖拽排序替代原生手填表单
- TicketConfigRest 成为三块字典的唯一实现,新增 api/modules/tickets.js
  封装 aksrt/v1/admin/tickets*
- 双向深链:原生页跳 SPA 配置页,SPA 页跳回原生工单列表

契约测试同步更新,并新增 ticket-spa-config-contract 守护接线。

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-10-26 19:48:58 +08:00

146 lines
4.6 KiB
JavaScript

import { renderFaIcon, schemaPage, customPage } from './helpers'
/**
* Users SPA keeps config-shaped pages.
* Message / referral-code queues live under users.php native menus;
* 禁封/举报 is a config page (schema section "report"); ticket queues
* (举报&禁封申诉) stay on the native WP users.php page.
*/
export const usersSection = {
key: 'users',
label: '用户&互动',
icon: renderFaIcon('fa fas fa-users'),
route: '/users',
children: [
schemaPage({
key: 'users-auth',
name: 'UsersAuth',
label: '注册登录',
route: '/users/auth',
title: '注册登录',
desc: '注册方式、登录限制和密码策略配置。',
canonicalDomain: 'users',
section: 'auth',
}),
schemaPage({
key: 'users-oauth',
name: 'UsersOauth',
label: '第三方登录',
route: '/users/oauth',
title: '第三方登录',
desc: 'GitHub、Gitee、QQ、Google 等第三方登录配置。',
canonicalDomain: 'users',
section: 'oauth',
}),
schemaPage({
key: 'users-features',
name: 'UsersFeatures',
label: '用户功能',
route: '/users/features',
title: '用户功能',
desc: '配置用户头像、封面和默认签名。',
canonicalDomain: 'users',
section: 'features',
}),
customPage({
key: 'users-credits',
name: 'UsersCredits',
label: '用户积分',
route: '/users/credits',
title: '用户积分',
desc: '积分规则、积分日志和用户积分管理。',
component: 'CmsCredits',
canonicalDomain: 'users',
section: 'credits',
}),
customPage({
key: 'users-verify',
name: 'UsersVerify',
label: '身份认证',
route: '/users/verify',
component: 'UsersVerify',
title: '身份认证',
desc: '配置通用认证申请规则;申请审核和认证资料管理位于 WordPress 用户菜单。',
canonicalDomain: 'users',
section: 'verify',
}),
customPage({
key: 'users-level',
name: 'UsersLevel',
label: '用户等级',
route: '/users/level',
component: 'UsersLevel',
status: 'available',
title: '用户等级',
desc: '等级规则、升级条件和权益映射。',
canonicalDomain: 'users',
section: 'level',
}),
customPage({
key: 'users-badge',
name: 'UsersBadge',
label: '用户徽章',
route: '/users/badge',
component: 'UsersBadge',
status: 'available',
title: '用户徽章',
desc: '勋章分类、自动授予条件(get_type)与前台佩戴展示。存储键 user_medal_*。',
canonicalDomain: 'users',
section: 'badge',
}),
schemaPage({
key: 'users-notifications',
name: 'UsersNotifications',
label: '消息通知',
route: '/users/notifications',
title: '消息通知',
desc: '站内通知、邮件通知和通知策略配置。',
canonicalDomain: 'users',
section: 'notifications',
}),
schemaPage({
key: 'users-sms',
name: 'UsersSms',
label: '短信接口',
route: '/users/sms',
title: '短信接口',
desc: '配置短信验证码和短信通知服务的供应商、模板和限流策略。',
canonicalDomain: 'users',
section: 'sms',
}),
customPage({
key: 'users-wechat-template',
name: 'UsersWechatTemplate',
label: '微信模板消息',
route: '/users/wechat-template',
component: 'UsersWechatTemplate',
status: 'available',
title: '微信模板消息',
desc: '配置微信公众号模板消息推送。',
canonicalDomain: 'users',
section: 'wechat-template',
}),
schemaPage({
key: 'users-ban',
name: 'UsersBan',
label: '禁封/举报',
route: '/users/ban',
title: '禁封/举报',
desc: '禁封功能、举报功能、预置原因、申诉资料与举报说明配置;举报与申诉工单在 WordPress 用户菜单处理。',
canonicalDomain: 'users',
section: 'report',
}),
customPage({
key: 'users-ticket',
name: 'UsersTicket',
label: '工单中心',
route: '/users/ticket',
title: '工单中心',
desc: '工单功能开关、工单号前缀、提交公告与提交表单(图片上传、关联订单、催单冷却)配置,以及部门、状态、预设回复维护;工单处理在 WordPress 用户菜单的「工单管理」中进行。',
component: 'UsersTicket',
canonicalDomain: 'users',
section: 'ticket',
}),
],
}