Menu-Group Phase 1 完工 SUMMARY

項目 內容
Feature 側邊欄選單分組(menu-group)
Branch feature/menu-group
完工日期 2026-05-26
狀態 全功能測試 PASS,待 Task F(jedi-auth 進版 + Nexus push)

§1

Commits 清單

Repo Hash 說明
jedi-auth 869630f feat(user-service): add _prune_empty_groups
compliance-manager-be 4afd6c2d feat(db): menu-group restructure migration
compliance-manager-fe 3ee8236 feat(menu): remove grcItems + i18n group keys
compliance-manager-fe b59c2dd fix(i18n): wire zh-cn/menu.json
compliance-manager-fe 0d1ca8b fix(menu): AppMenuItem sub-menu rendering
compliance-manager-fe 3f66675 fix(permissions): getUserPagePermissions 改遞迴搜尋

jedi-auth 版本尚未 bump(0.1.18),主專案 pyproject.toml 仍為 path dep 狀態(Task F 待執行)。


§2

改動範圍

DB(已執行)

  • public.ui_routes 新增 7 個分組節點(sort 10~70)
  • 新增 2 個搬遷項(project-dashboard / my-tasks
  • 27 筆既有葉節點 pid/sort 更新

jedi-auth 套件

  • get_user_web_ui_routes() 末段加剪枝 → 空分組自動隱藏
  • 3 個 unit tests

FE

  • AppMenu.vue 移除 grcItems 寫死
  • AppMenuItem.vue 加分組展開 + 遞迴 render 子節點(設計文件預測有誤,實作時補修)
  • src/utils/userUtil.js getUserPagePermissions 改遞迴 findNode.flat() 對物件 items 屬性無效,巢狀 menu 後所有操作按鈕消失)
  • i18n:zh-tw / en / zh-cn 補 7 個 group-* key

§3

行為差異

  • 選單結構:扁平 39 項 → 7 個可展開分組(29 葉節點在分組內)
  • 空分組:無任何可見子節點時自動隱藏
  • 搬遷項project-dashboard / my-tasks 改從 DB 取得

§4

已知待辦(Task F)

由 user 明確下指令後執行:

  1. jedi-auth pyproject.toml bump 0.1.18 → 0.1.19
  2. jedi-auth commit + push origin
  3. jedi-auth 推 Nexus
  4. 主專案 pyproject.toml 還原 path dep → pin jedi-auth==0.1.19
  5. poetry update jedi-auth
  6. 主專案 commit(pyproject.toml + poetry.lock
  7. push(所有 repo)

§5

規範文件清單

文件 路徑
白話需求 docs/features/FR-029-2605-menu-group/requirement-detail.md
設計說明(含 §11 補記) docs/features/FR-029-2605-menu-group/design.md
實作計畫 docs/features/FR-029-2605-menu-group/implementation-plan.md
changelog(feat) docs/changelog/2026-05-26-feat-menu-group-restructure.md
changelog(fix AppMenuItem) docs/changelog/2026-05-26-fix-appmenuitem-submenu-rendering.md
changelog(fix getUserPagePermissions) docs/changelog/2026-05-26-fix-getuserpagepermissions-nested-menu.md
analysis(AppMenuItem) docs/analysis/2026-05-26-appmenuitem-submenu-missing.md
analysis(getUserPagePermissions) docs/analysis/2026-05-26-getuserpagepermissions-flat-regression.md
rollback SQL docs/features/FR-029-2605-menu-group/design.md 附錄 C