feat(admin): 新增后台系统配置管理

This commit is contained in:
yml2213
2026-10-30 13:32:34 +08:00
parent 1acf433611
commit df251c2c3c
10 changed files with 650 additions and 6 deletions
+3 -3
View File
@@ -194,12 +194,12 @@ dist/assets/AdminLayout-*.js 36.87 kB │ gzip 13.02 kB
## 5. 已知限制
1. 移动端订单列表/详情与消息中心已接入真实接口;下单、支付、交接、归还、结账等操作仍待迁移。
2. 后台已完成仪表盘、订单列表/详情、退款审核、提现审核、商品列表/详情与审核、用户列表/详情与人工操作、申诉仲裁、财务看板、公告管理、审计日志,其余页面仍为统一占位。
2. 后台已完成仪表盘、订单列表/详情、退款审核、提现审核、商品列表/详情与审核、用户列表/详情与人工操作、申诉仲裁、财务看板、公告管理、审计日志、系统配置,其余页面仍为统一占位。
3. 分销后台已完成主题、Logo、登录页与 Shell 轻改,页面结构未重写。
4. 后台菜单权限码按后端逐个核对:订单 `order:list` / `order:view` / `order:close`,商品 `listing:view` / `listing:approve` / `listing:reject` / `listing:offline`,用户 `user:view` / `user:freeze` / `user:unfreeze` / `user:deposit_free` / `user:growth_points` / `user:manual_realname` / `user:revoke_realname` / `user:wallet_adjust`,提现 `withdrawal:list` / `withdrawal:detail` / `withdrawal:review` / `withdrawal:pay`,申诉 `dispute:view` / `dispute:arbitrate`,财务 `wallet:view`,公告 `announcement:view` / `announcement:manage`,审计日志 `audit_log:view`;系统配置与分销站点仍需核对。
4. 后台菜单权限码按后端逐个核对:订单 `order:list` / `order:view` / `order:close`,商品 `listing:view` / `listing:approve` / `listing:reject` / `listing:offline`,用户 `user:view` / `user:freeze` / `user:unfreeze` / `user:deposit_free` / `user:growth_points` / `user:manual_realname` / `user:revoke_realname` / `user:wallet_adjust`,提现 `withdrawal:list` / `withdrawal:detail` / `withdrawal:review` / `withdrawal:pay`,申诉 `dispute:view` / `dispute:arbitrate`,财务 `wallet:view`,公告 `announcement:view` / `announcement:manage`,审计日志 `audit_log:view`,系统配置 `system_config:view` / `system_config:update`;分销站点仍需核对。
5. SVG 中文尚未转曲。
6. 入口包已降至 495 kB(gzip 161 kB);AntD 共享基础设施仍在入口,后续可拆独立入口。
7. 移动端、订单、分销轻改与首屏优化均已提交;商品管理、审核、退款、提现、用户、申诉、财务、公告与审计日志已按批次提交。
7. 移动端、订单、分销轻改与首屏优化均已提交;商品管理、审核、退款、提现、用户、申诉、财务、公告、审计日志与系统配置已按批次提交。
---
+110
View File
@@ -0,0 +1,110 @@
# Phase 2 验收报告(后台系统配置)
> 日期:2026-10-30
> 项目:解忧商行(hfb_jysh)
> 范围:`/console-jy8k3m/system-configs`
> 结论:**本切片通过,系统配置列表、筛选、JSON 格式化与更新已接真实接口**
---
## 1. 接口与权限
| 能力 | 接口 | 权限码 |
| --- | --- | --- |
| 配置列表 | `GET /api/admin/system-configs` | `system_config:view` |
| 更新配置 | `PUT /api/admin/system-configs/:key` | `system_config:update` |
更新请求体:
```json
{
"value": "配置值字符串",
"description": "配置说明"
}
```
后端行为:
- 配置键不可新增或删除,只能在默认配置白名单内更新。
- `backup.*` 只能走独立备份调度接口,不能从本页修改。
- `integration.paddle_ocr_token` 允许保存空值。
- `distribution.default_settlement_hold_days` 必须为 0–365 的整数。
- `listing.publish_cooldown_minutes` 必须为不小于 0 的整数。
- 发布选项、租客成长规则与短信模板由后端做结构校验和归一化;其余 JSON 配置主要由前端校验可解析,保存前需人工核对结构。
- 每次更新写入 `audit_logs`,动作为 `system_config.update`。
## 2. 页面
`frontend/src/features/admin/AdminSystemConfigsPage.tsx`
- 一次读取全部可见配置,前端按关键字与分类即时筛选
- 分类:聊天与群组、分销、交接与超时、第三方集成、商品发布、移动端首页、订单、个人中心、租客成长、短信
- 列:配置键/说明、分类、类型、当前值、更新时间、操作
- 类型标签:`JSON` / `文本`,敏感键额外显示 `敏感`
- 敏感键(token、secret、password、api_key、private_key)在列表中只显示「已配置 / 未配置」,进入编辑后可见原值
- 行点击或「编辑」打开配置弹窗
- 无 `system_config:view` 时停止请求并显示权限提示;无 `system_config:update` 时只读
## 3. 编辑弹窗
- 只读展示配置键、分类、类型与敏感标记
- 配置说明可编辑,最多 200 字
- 配置值使用等宽字体文本域,JSON 值默认两空格缩进
- 「格式化 JSON」仅在当前值可解析时可用
- 保存前做前端校验:
- 非空(OCR token 除外)
- 分销结算冷却天数 0–365
- 商品发布冷却分钟数不小于 0
- 原值为 JSON 或新值以 `{` / `[` 开头时必须能解析
- 保存前二次确认,提示配置会立即影响下一次读取并写入审计日志
- 敏感配置额外提示不要将生产密钥写入开发库
## 4. 菜单与路由
- 路由:`frontend/src/app/AppRouter.tsx` 新增 `system-configs`
- 菜单:`frontend/src/layouts/AdminLayout.tsx` 权限码由 `systemconfig:view` 修正为 `system_config:view`
- 占位列表同步移除 `system-configs`
## 5. 开发库配置概况
当前可见配置 27 项,其中 JSON 配置包含:
```text
listing.publish_agreements
listing.publish_options
listing.sale_price_config
mobile.aw_recycle
mobile.cooperation_feedback
mobile.home_announcements
mobile.home_banners
order.agreements
profile.post_rental_notice
renter.growth_level_rules
sms.business_templates
```
## 6. 验证结果
```text
npx tsc --noEmit 通过
npm run build 通过(入口 497.41 kB,gzip 161.38 kB)
GET /api/admin/system-configs ok,返回 27 项
GET /console-jy8k3m/system-configs 200
```
列表读取已实测;未执行 `PUT` 写操作,避免改动开发库运行参数。
## 7. 已知限制
1. 当前是原始键值编辑器,首页轮播、发布协议、短信模板等复杂 JSON 仍直接编辑原文,没有结构化表单。
2. 不支持新增或删除配置键,新增配置需先在后端默认配置中登记。
3. 备份调度不在本页,使用独立接口与后台入口。
4. 没有配置变更历史对比,需到审计日志查看 `system_config.update` 明细。
5. 敏感值仅在编辑弹窗展示,未接密钥轮换或加密存储改造。
## 8. 下一步建议
1. 对首页轮播、发布协议、短信模板做结构化编辑器。
2. 线下出款与运营支出登记。
3. 分销站点管理页。
4. 移动端下单、支付与交接/归还/结账。
+1 -1
View File
@@ -395,7 +395,7 @@ hfb_jysh/
### Phase 4:管理后台核心(4–5 周)
> 状态:**进行中(2026-10-30)**。已完成仪表盘、订单、退款、提现、商品、用户、申诉、财务看板、公告管理与审计日志;线下出款/运营支出与系统配置待迁移。
> 状态:**进行中(2026-10-30)**。已完成仪表盘、订单、退款、提现、商品、用户、申诉、财务看板、公告管理、审计日志与系统配置;线下出款/运营支出待迁移。
- 后台登录、工作台、订单列表、订单详情。
- 商品列表、商品详情、审核。