AGENTS.md
30d8238
web/src/router/index.js
constantRoutes
asyncRoutes
permission.js
generateRoutes
web/src/store/modules/permission.js:140
path
name
sys_menu
Architecture-and-Code-Map
Local-Development-and-Verification
sync
sync --check
验收通过(用户于 2026-08-28 明确确认;实现提交 5feb4e8)。
5feb4e8
Gitea MCP 当前可用于工单评论,但未提供附件上传能力;本次仅附件上传按仓库规则回退 Gitea API,凭据由 Git Credential Manager 读取且未输出、未落库。
工单正文验收项把“SYB 店铺管理”举为采购员应隐藏的管理员专属模块,但 #137 已实现代码及当前长期业务规则的权威事实是:
因此 v1 用“人工取消 SYB 店铺”的示例表达可配置性,不把该模块误画成采购员固定隐藏。用户确认 v1 后,将以此校正覆盖工单正文的冲突措辞再实施。
当前未修改 #138 生产代码,也未导出仓库内离线原型。
用户于 2026-08-28 明确确认 #138 v1 原型通过。
工单正文已同步校正,开始实施生产代码。
已按确认的 v1 原型完成 #138,并推送提交 5feb4e8。
GET /api/v1/menurole → generaMenu
resetRouter()
go test ./app/goauto/access ./cmd/migrate/migration/version-local
pnpm exec eslint src/permission.js src/router/index.js src/store/modules/permission.js src/store/modules/user.js
pnpm run build:prod
pnpm exec playwright test tests/e2e/goauto-menu-permission.spec.ts --workers=1
.\scripts\verify.ps1 -Component all
/purchase-tasks/index
/dashboard
40b34ee81f4207de6797b1a81ded6459b6dd776d
harness.py sync
当前本地数据库未返回 #137 的 GoAuto 菜单记录,说明该运行环境尚未应用/接入 #137 菜单迁移;本次没有擅自执行数据库迁移或修改真实角色权限。因此管理员/采购员真实账号菜单、角色勾选后重新登录、以及对应后端 Casbin 拒绝仍需在已应用 #137 迁移的环境验收。隔离浏览器测试已覆盖相同前端角色菜单契约。
工单保持打开并进入待验收。
用户于 2026-08-28 明确确认「#138通过验收」。按提交 5feb4e8 与已回写验证证据完成验收,工单关闭。
本次仅记录验收结论;没有新的长期事实变化,不重复更新或同步 Wiki。
No dependencies set.
The note is not visible to the blocked user.
所属与来源
AGENTS.md「Gitea 交互与工单最小读取」记录回退原因。当前事实(提交
30d8238复核)web/src/router/index.js的constantRoutes(第 38~245 行;asyncRoutes自 246 行起)。constantRoutes对所有登录用户可见,不做角色过滤,也不读取后端菜单。permission.js的generateRoutes(web/src/store/modules/permission.js:140)用于按权限生成路由,现有asyncRoutes走该路径。目标
非目标
实施方案
constantRoutes迁出,纳入按权限生成的路由集合,复用既有generateRoutes机制,不新造第二套菜单渲染逻辑。path与name必须与 #137 写入sys_menu的记录逐条严格一致——不一致会导致菜单点不动或白屏。建议以脚本或测试比对,不靠人工核对。安全边界
验收标准
path/name与sys_menu记录逐条一致(以比对脚本或测试佐证)。验证方式
依赖、并行与风险
constantRoutes后,若后端菜单接口异常会导致导航空白。缓解:第 3 项要求的无权限/异常呈现方式,并在验收中覆盖。文档影响
Architecture-and-Code-Map:前端菜单由静态路由改为按后端菜单渲染。Local-Development-and-Verification:如本地验证方式因菜单来源变化而调整,需同步更新;无变化则在工单说明。sync与一轮sync --check,把页面与 revision 写回本工单。状态
验收通过(用户于 2026-08-28 明确确认;实现提交
5feb4e8)。#138 设计证据待确认(v1)
Gitea MCP 当前可用于工单评论,但未提供附件上传能力;本次仅附件上传按仓库规则回退 Gitea API,凭据由 Git Credential Manager 读取且未输出、未落库。
待确认的事实校正
工单正文验收项把“SYB 店铺管理”举为采购员应隐藏的管理员专属模块,但 #137 已实现代码及当前长期业务规则的权威事实是:
因此 v1 用“人工取消 SYB 店铺”的示例表达可配置性,不把该模块误画成采购员固定隐藏。用户确认 v1 后,将以此校正覆盖工单正文的冲突措辞再实施。
当前未修改 #138 生产代码,也未导出仓库内离线原型。
设计确认并开始实施
用户于 2026-08-28 明确确认 #138 v1 原型通过。
工单正文已同步校正,开始实施生产代码。
实现完成,待验收
已按确认的 v1 原型完成 #138,并推送提交
5feb4e8。实现
constantRoutes移除 11 个 GoAuto 静态公共路由,登录后统一复用GET /api/v1/menurole → generaMenu生成业务路由和侧栏。resetRouter(),保证角色菜单调整后重新登录生效。验证
go test ./app/goauto/access ./cmd/migrate/migration/version-local:通过。pnpm exec eslint src/permission.js src/router/index.js src/store/modules/permission.js src/store/modules/user.js:通过。pnpm run build:prod:通过。pnpm exec playwright test tests/e2e/goauto-menu-permission.spec.ts --workers=1:4/4 通过。.\scripts\verify.ps1 -Component all:服务端全量测试/构建、Web lint/构建、Android 单元测试/debug APK 全部通过;Web 仍有 30 个既有 warning,无 error。/purchase-tasks/index已验证回退/dashboard,证明静态入口已移除。文档
Architecture-and-Code-Map并在线回读 revision40b34ee81f4207de6797b1a81ded6459b6dd776d。harness.py sync和一次sync --check,一致性检查通过。Local-Development-and-Verification无长期文档影响。尚待人工验收
当前本地数据库未返回 #137 的 GoAuto 菜单记录,说明该运行环境尚未应用/接入 #137 菜单迁移;本次没有擅自执行数据库迁移或修改真实角色权限。因此管理员/采购员真实账号菜单、角色勾选后重新登录、以及对应后端 Casbin 拒绝仍需在已应用 #137 迁移的环境验收。隔离浏览器测试已覆盖相同前端角色菜单契约。
工单保持打开并进入待验收。
验收通过
用户于 2026-08-28 明确确认「#138通过验收」。按提交
5feb4e8与已回写验证证据完成验收,工单关闭。本次仅记录验收结论;没有新的长期事实变化,不重复更新或同步 Wiki。