diff --git a/.gstack/qa-reports/qa-report-localhost-5604-2026-08-25.md b/.gstack/qa-reports/qa-report-localhost-5604-2026-08-25.md new file mode 100644 index 0000000..70c5312 --- /dev/null +++ b/.gstack/qa-reports/qa-report-localhost-5604-2026-08-25.md @@ -0,0 +1,54 @@ +# WonderQ 三端人工验收报告 + +- 验收时间:2026-08-25 +- 验收范围:Vue 管理端 `http://localhost:5604`、React 过渡端 `http://localhost:5602`、MiniAPP H5 `http://localhost:5173` +- 首轮结论:未通过;本轮修复后阻塞项和控制台告警均已回归通过,但整体业务验收仍未完成。 + +## 已通过 + +- Vue 管理端登录态下可进入仪表盘、首页配置、玩法与详情、管家管理、需求线索及 RBAC 菜单。 +- 需求线索列表可加载,状态字段可见;本次未修改业务数据。 +- Vue 路由菜单点击后 URL 和菜单高亮基本同步。 +- React 过渡端可正常打开登录页,浏览器控制台无 error/warning。 +- MiniAPP H5 首页可正常打开,公共 API 内容可见,浏览器控制台无 error/warning。 +- Vue 管理端本次浏览未发现运行时 error。 +- 修复后连续切换用户、角色、菜单、部门页面,URL、标题、菜单高亮和记录均对应一致。 +- 修复后新会话浏览控制台无 error/warning。 +- 2026-08-26 增量复验:首页配置已接入全部 7 类站点模块的新增、编辑、删除和可用模块排序入口;空态、编辑器字段、单例限制、必填标题和 HTTP(S) 图片地址校验可用,未修改开发库业务数据。 +- 2026-08-26 增量复验:玩法分类、路线和路线详情已接入新增、编辑、删除、排序、详情字段、管家关联及详情图片上传入口;其余四类站点配置已接入统一编辑器,未执行真实写入。 +- 2026-08-26 增量复验:管家顾问页已接入顾问 CRUD、启用状态、排序、删除确认、头像/二维码上传和服务详情编辑;未执行真实写入。 +- 2026-08-26 增量复验:重新确认有效 Vue 会话后,线索列表、类型筛选、状态筛选和详情展示均通过;补充修复 `LeadsPage` 缺少 `onMounted(load)` 导致页面永久 loading 的问题,未执行真实状态写入。 +- 2026-08-26 增量复验:媒体页已读取现有素材并接入分组批量上传、图片类型/5MB 校验;发布与重置页已接入权限控制、进行中禁用和二次确认,未触发发布或重置。 + +## 阻塞问题 + +### ISSUE-001:RBAC 系统资源页面切换后内容不刷新 + +- 严重级别:High +- 影响:从“用户管理”点击“角色管理”“菜单管理”或“部门管理”时,URL 已切换,但页面标题和记录仍停留在用户管理;人工无法可靠验收角色、菜单、部门页面。 +- 复现步骤: + 1. 打开 Vue 管理端并进入“用户管理”。 + 2. 点击“角色管理”。 + 3. 观察地址为 `/admin/system/roles`,页面标题仍为“用户管理”,记录仍为用户 JSON。 +- 实际结果:页面显示 `用户管理`,而地址为 `http://localhost:5604/admin/system/roles`;当前菜单高亮为“角色管理”。 +- 证据:`screenshots/issue-001-system-resource-stale.png` +- 修复结果:已通过动态路由去重、参数页面重新加载和页面组件 key 处理;回归证据:`screenshots/issue-001-after-fix.png`。 + +## 非阻塞问题与覆盖缺口 + +### ISSUE-002:Vue Router 启动告警(已修复) + +- 严重级别:Medium +- 控制台出现:路由名 `admin` 包含无名称的空路径子路由。当前页面仍可使用,但会增加路由解析回归风险。 +- 修复结果:空路径子路由已命名为 `admin-index`;新会话回归未再出现该告警。 + +### COVERAGE-001:业务写入能力尚未完成迁移 + +- 首页配置的顶部轮播、万趣用车、用车服务已完成 Vue 写入代码迁移;本次仅进行了非破坏性表单和接口契约验证,真实数据写入仍待人工确认。 +- 线索列表、类型/状态筛选和详情展示已在有效后台会话下复验;本次未触发真实状态写入。 +- 媒体上传、发布和重置只完成入口与确认闸门验收,真实动作仍待人工确认。 +- 系统用户、角色、菜单、部门页面尚未形成完整可编辑验收闭环;ISSUE-001 已解除。 + +## 验收判定 + +当前判定为“阻塞项已解除,业务覆盖验收进行中”。首页、玩法/详情、站点配置、管家、线索读取/筛选/详情、媒体和发布/重置入口代码已接入;线索状态写入、媒体真实上传、发布和重置仍需人工确认,核心 RBAC 流程完成后才能进入旧 React 删除前的最终人工确认。 diff --git a/.gstack/qa-reports/screenshots/issue-001-after-fix.png b/.gstack/qa-reports/screenshots/issue-001-after-fix.png new file mode 100644 index 0000000..812dbe3 Binary files /dev/null and b/.gstack/qa-reports/screenshots/issue-001-after-fix.png differ diff --git a/.gstack/qa-reports/screenshots/issue-001-system-resource-stale.png b/.gstack/qa-reports/screenshots/issue-001-system-resource-stale.png new file mode 100644 index 0000000..f0df655 Binary files /dev/null and b/.gstack/qa-reports/screenshots/issue-001-system-resource-stale.png differ diff --git a/.superpowers/brainstorm/2026-08-25-admin-refactor/content/migration-options.html b/.superpowers/brainstorm/2026-08-25-admin-refactor/content/migration-options.html new file mode 100644 index 0000000..53a47ad --- /dev/null +++ b/.superpowers/brainstorm/2026-08-25-admin-refactor/content/migration-options.html @@ -0,0 +1,63 @@ +
先选择整体切换方式。三种方案都保留现有 MiniAPP 业务;差别在 Admin UI 与权限内核如何落地。
+ +新建 Vue3 管理端,按权限、首页、玩法、线索等垂直切片逐步替换;旧 React 端在过渡期继续可用。
+直接把现有 `WonderQ-Admin-UI` 替换为 Vue3 + Element Plus,复用后端契约并一次性切换入口。
+先稳定后台用户、角色、菜单、按钮权限和 Redis 会话/黑名单,再以垂直业务切片重构 Vue3 UI。
+请点击一个你倾向的方案;如果想组合方案,也可以在终端说明。
diff --git a/.superpowers/brainstorm/2026-08-25-admin-refactor/content/waiting-1.html b/.superpowers/brainstorm/2026-08-25-admin-refactor/content/waiting-1.html new file mode 100644 index 0000000..633d684 --- /dev/null +++ b/.superpowers/brainstorm/2026-08-25-admin-refactor/content/waiting-1.html @@ -0,0 +1,3 @@ +已记录迁移方案选择,权限功能边界继续在终端确认。
+{{ editing ? "EDIT" : "CREATE" }} / CONCIERGE
维护顾问卡片、服务详情和二维码,保存后由发布快照控制前台生效。
{{ creating ? "CREATE" : "EDIT" }} / SITE CONFIG
+{{ definition.description }}
+填写最终 HTTP(S) 图片地址,不上传或保存 base64 内容。
+可直接填写 HTTP(S) 地址,也可以使用下方上传入口。
+{{ editing ? "EDIT" : "CREATE" }} / PLAY CATEGORY
+{{ editing ? "修改后会同步更新前台玩法入口。" : "创建后即可在分类下维护路线。" }}
+保存前会自动去除首尾空格。
+{{ editing ? "EDIT" : "CREATE" }} / PLAY ROUTE
+{{ editing ? `修改「${categoryLabel}」下的路线卡片和详情。` : `添加到「${categoryLabel}」,保存后会排在当前路线末尾。` }}
+SERVICE / CONCIERGE
顾问资料和服务入口继续沿用现有 Admin API。
SERVICE / CONCIERGE
维护前台顾问卡片、服务详情和二维码;停用后不会进入 Public API。
CONTENT / HOME
保留原有站点模块,先在 Vue 端完成读取和权限入口迁移。
CONTENT / HOME
+迁移首页站点配置的读取、写入、删除和排序能力,保存后会直接影响对应前台模块。
+INBOX / LEADS
保留原有线索字段,并按权限更新线索状态。
INBOX / LEADS
按类型、状态和关键词筛选需求,并记录跟进状态。
{{ selectedLead.vehicleDemand.pickupLocation }} → {{ selectedLead.vehicleDemand.dropoffLocation }}
{{ selectedLead.vehicleDemand.peopleCount }} 人 · 行李 {{ selectedLead.vehicleDemand.luggageCount ?? "未填写" }} 件 · {{ selectedLead.vehicleDemand.vehicleOptionTitle || "未指定车型" }}
{{ selectedLead.vehicleDemand?.specialRequirements || selectedLead.note || "暂无备注" }}
LIBRARY / MEDIA
统一查看已上传图片,并为站点、玩法详情和管家资料提供可复用 URL。
RELEASE / OPERATIONS
发布只生成当前已启用内容的快照;重置属于高风险恢复动作,需要再次确认。
PUBLISH
将当前已启用的站点配置生成一个新的发布版本,供 Public API 使用。
RESET
使用后端内置种子内容覆盖站点配置,并生成新的站点快照。仅用于开发或明确授权的恢复场景。
SYSTEM / RBAC
权限模型已接入,管理操作将按确认后的 RBAC 矩阵逐项开放。
{{ JSON.stringify(row, null, 2) }}SYSTEM / RBAC
管理用户、角色、菜单和部门,并在保存后刷新权限缓存。
CONTENT / PLAY
现有玩法数据已接入 Vue 过渡端,编辑能力将按切片继续迁移。
CONTENT / PLAY
+维护玩法分类、路线卡片和独立详情内容;保存路线时会同步维护详情记录。
+