[fix]:[FL-151][菜单管理页React Query架构对齐]

Co-authored-by: multica-agent <github@multica.ai>
This commit is contained in:
chengkai3
2026-06-20 04:13:56 +08:00
parent 06c23e5ff0
commit 6989775abe
2 changed files with 221 additions and 157 deletions
+21
View File
@@ -18,6 +18,27 @@
- 风险与关注点:
- 改动仅影响菜单管理页前端展示与提示机制,不改变菜单接口、字段结构或权限语义。
## Follow-up - 菜单管理页 React Query 架构对齐(FL-151
- 背景:
- 评审继续指出菜单管理页仍使用手动 `useState` + `loadMenus` 数据管理,与用户管理页 React Query 架构不一致。
- 本次处理:
- 菜单列表查询改为 `useQuery`,由 `menusQuery` 承接 loading、error、数据与 total。
- 创建、编辑、删除、启用/禁用改为 `useMutation`,并通过 `queryClient.refetchQueries` 刷新菜单数据。
- `activeKeyword` 统一命名为 `searchKeyword`,移除手动 `loading` / `saving` / `menus` / `menuTotal` state。
- 实时订阅改为 `queryClient.invalidateQueries({ queryKey: ["admin.menus"] })`
- 错误反馈改为组合本地错误与 `menusQuery.error` 后交给 `useToastFeedback`
- 验证:
- 基线:`npm --workspace web exec eslint src/app/admin/menus/page.tsx` 通过。
- 基线:`npm --workspace web exec tsc --noEmit` 通过。
- 修改后:`npm --workspace web exec eslint src/app/admin/menus/page.tsx` 通过。
- 修改后:`npm --workspace web exec tsc --noEmit` 通过。
- 风险与关注点:
- 改动仅迁移菜单管理页前端数据管理架构,不改变 `/api/v1/admin/menus*` 接口路径、请求字段或权限语义。
# Work Log - 角色管理页对齐用户管理页规范(FL-152)
- 背景: