修复Vue Admin布局中RouterView未绑定唯一key的问题,解决RBAC系统资源页面切换后内容不刷新的ISSUE-001故障,新增routeViewKey工具函数区分路由实例 完善路由配置,新增admin空路径路由,修复路由命名空路径告警 新增媒体管理、运维发布/重置页面,补全全站路由注册与动态路由过滤逻辑 新增玩法、线索、管家、系统资源管理的全套工具函数、业务组件及单元测试用例 修复后端app/seed.py中媒体资源重复检测未考虑会话内pending资源的bug,新增对应测试验证修复逻辑 修正alembic迁移版本0015的依赖关系,删除废弃的旧迁移文件 优化后端系统接口的字典序列化逻辑,简化重复代码 添加QA验收报告与相关测试截图,完善项目测试覆盖
49 lines
5.6 KiB
Markdown
49 lines
5.6 KiB
Markdown
# WonderQ Admin 业务功能矩阵
|
||
|
||
本文档是 A+B 并行重构的第一阶段基线。矩阵以当前后端路由、契约文档、React 页面和 MiniAPP 公共接口为准;“已接入”只表示代码已具备,不代表已经完成人工验收。
|
||
|
||
## 端与路径
|
||
|
||
| 端 | 目录 | 当前路径 | 迁移策略 |
|
||
| --- | --- | --- | --- |
|
||
| 后端 | `WonderQ-Admin` | `/api` | 保持 Docker Compose、PostgreSQL、Redis、JWT 和 `{code,msg,data}` 契约 |
|
||
| Vue 管理端 | `WonderQ-Admin-UI-Vue` | 本地 `/admin/`,生产 `/admin` | 新权限壳和业务切片逐项迁移 |
|
||
| React 管理端 | `WonderQ-Admin-UI` | 本地 `5602`,生产 `/admin-legacy` | 过渡运行,已接入 Refresh Token 自动刷新 |
|
||
| 前台 | `WonderQ-MiniAPP` | H5/微信小程序 | 不整体重写,只验证 Public API 兼容 |
|
||
|
||
## 业务覆盖矩阵
|
||
|
||
| 业务切片 | 后端接口/数据 | React 过渡端 | Vue 迁移端 | MiniAPP 依赖 | 当前验收状态 |
|
||
| --- | --- | --- | --- | --- | --- |
|
||
| 登录、刷新、退出 | `/api/admin/auth/login`、`refresh`、`logout`、`/api/admin/me` | 兼容旧 `token/user` 字段,401 自动刷新 | 登录页、内存 Access Token、HttpOnly Refresh Cookie | 无 | 自动化通过,待浏览器人工验收 |
|
||
| 仪表盘 | `/api/admin/dashboard` | 已有 | `DashboardPage` 已接入 | 无 | 读流程已接入 |
|
||
| 首页与站点配置 | `/api/admin/site-config` 及模块 CRUD、排序 | 已有 | `HomePage` 已迁移全部 7 类站点模块的读写、删除和可用模块排序;单例模块禁止重复创建 | `/api/public/home`、`/api/public/site-config` | 契约、表单校验、接口回归和页面入口已通过,真实数据写入待人工确认 |
|
||
| 玩法分类与路线 | `/api/admin/wanfa/categories` 及分类/路线 CRUD | 已有 | `WanfaPage` 已迁移分类/路线新增、编辑、删除、排序和非空分类删除保护 | `/api/public/wanfa/categories` | 契约、接口回归和页面入口已通过,真实数据写入待人工确认 |
|
||
| 路线详情 | `/api/admin/details` 及详情 CRUD | React 现有玩法流程依赖 | 已集成到 Vue 路线编辑器,支持详情字段、数组文案、管家关联、启用状态和图片上传/排序 | `/api/public/details/{key}` | 契约、接口回归和页面入口已通过,真实数据写入待人工确认 |
|
||
| 管家 | `/api/admin/concierge/advisors` 及 CRUD | 已有 | `ConciergePage` 已接入新增、编辑、启停、排序、删除和头像/二维码上传 | `/api/public/concierge/advisors`、详情顾问信息 | 契约、表单校验和页面入口已通过,真实写入待人工确认 |
|
||
| 需求线索 | `/api/admin/leads`、状态更新 | 已有筛选和状态流转 | `LeadsPage` 已接入类型、状态、关键词筛选、详情查看和六态状态写入 | `/api/public/leads` | 契约、有效会话下的列表/筛选/详情页面验收已通过,真实状态写入待人工确认 |
|
||
| 媒体 | `/api/admin/media-assets`、上传 | React 已有上传 | `MediaPage` 已接入素材列表、分组、批量上传和图片校验;玩法/管家继续复用上传入口 | 通过站点配置间接依赖 | 契约、列表和上传入口已通过,真实上传待人工确认 |
|
||
| 发布、重置 | `/api/admin/publish`、`reset-guizhou-content` | React 现有入口/能力 | `OperationsToolsPage` 已接入发布和重置,均有权限控制、进行中禁用和二次确认 | 发布结果影响 Public API | 入口和确认闸门已通过,执行前必须人工确认 |
|
||
| RBAC 用户 | `/api/admin/system/users` | 旧角色字段继续兼容 | 系统资源入口已接入读取 | 无 | 后端/读页面已接入,编辑待迁移 |
|
||
| RBAC 角色、菜单、部门 | `/api/admin/system/roles`、`menus`、`depts` | 旧端不删除 | Vue 动态菜单、组件白名单和系统资源读取已接入 | 无 | 后端/读页面已接入,完整按钮授权待验收 |
|
||
|
||
## 隐藏和横向能力清单
|
||
|
||
- Admin API 还包括模块新增、更新、删除、排序,以及详情、玩法、管家、首页内容的审计日志。
|
||
- 迁移不能只检查可见菜单;`media-assets`、`publish`、`reset-guizhou-content`、仪表盘统计和所有排序接口必须在验收记录中逐项确认。
|
||
- Public API 的首页、玩法、详情、管家、线索和用车需求依赖继续由 MiniAPP 访问;Admin API 不向 MiniAPP 暴露。
|
||
- 新 RBAC 迁移为 `0025_admin_rbac`,资源归属迁移为 `0026_admin_ownership`。两者只提交迁移文件,不在本阶段自动升级数据库。
|
||
|
||
## 删除 React 的闸门
|
||
|
||
只有当矩阵中 Vue 列全部变为“已接入并人工验收”,并且登录刷新、权限、数据范围、Redis 故障、Public API 回归和 Docker 验证记录齐全后,才可以征求确认切换 `/admin` 与删除 `/admin-legacy`。
|
||
|
||
## 阶段验收记录(2026-08-26)
|
||
|
||
- 线索状态:已在 Vue 管理端将真实线索从“待处理”改为“已联系”,再恢复为“待处理”,写入和恢复均成功。
|
||
- 发布与重置:发布成功;重置成功,Public API 和 MiniAPP 已读取重置后的站点内容。
|
||
- RBAC:用户、角色、菜单、部门均完成真实编辑写入并恢复原值,编辑成功提示和最终列表值正常。
|
||
- 媒体上传:按当前验收顺序暂缓,放到最后;此前验证发现 OSS 返回 403,尚未形成素材记录。
|
||
- 自动化回归:Vue 15 个测试文件、25 个测试通过,TypeScript 检查和生产构建通过;后端 134 个测试通过,7 个既有 Alembic 兼容性测试失败,未涉及本轮站点重置和 RBAC 改动。
|
||
- React 删除:未执行。需待媒体上传、登录刷新、权限/数据范围、Redis 异常、Public API 和 Docker 验收全部完成,并经人工确认后再处理。
|