455b7c54bb
Co-authored-by: multica-agent <github@multica.ai>
40 lines
2.5 KiB
Markdown
40 lines
2.5 KiB
Markdown
# Work Log - 菜单状态切换接口统一(FL-119)
|
||
|
||
- 背景:
|
||
- 菜单管理页创建、编辑、删除均使用 `/api/v1/admin/menus*`,但表格和卡片视图的启用/禁用状态切换仍调用 `/api/menus/{id}`,接口资源族不一致。
|
||
|
||
- 本次处理:
|
||
- 在 `web/src/app/admin/menus/page.tsx` 新增统一的菜单状态切换函数,表格与卡片视图复用同一逻辑。
|
||
- 状态切换请求统一为 `PATCH /api/v1/admin/menus/{id}`,payload 仅包含 `{ status }`。
|
||
- 新增行级 `updatingStatusMenuId` busy 状态,状态切换期间禁用对应行/卡片操作。
|
||
- 状态切换成功后刷新菜单列表,并通过统一 toast 状态反馈成功/失败,避免重复提示或残留旧错误。
|
||
|
||
- 验证:
|
||
- 基线:`npm --workspace web exec eslint src/app/admin/menus/page.tsx` 通过,存在 3 条既有 warning。
|
||
- 修改后:`npm --workspace web exec eslint src/app/admin/menus/page.tsx` 通过,仅剩 1 条既有 pagination hook warning。
|
||
- 修改后:`npm --workspace web exec tsc --noEmit` 通过。
|
||
|
||
- 风险与关注点:
|
||
- 改动仅影响菜单管理页状态切换的前端请求路径、复用逻辑和行级 busy 状态,不改变后端接口、字段结构或菜单 CRUD 其他行为。
|
||
|
||
## Work Log - 菜单管理页对齐用户管理页规范(FL-118)
|
||
|
||
- 背景:
|
||
- 菜单管理页需要对齐用户管理页的后台列表页布局、筛选、移动卡片和操作确认规范。
|
||
|
||
- 本次处理:
|
||
- 为菜单管理页补齐页面 Card flex/body 滚动样式、移动卡片容器/状态/字段/视觉样式。
|
||
- 桌面关键词筛选改为 debounce 自动查询,状态筛选改为 allowClear 且即时生效,移除额外搜索按钮。
|
||
- 菜单列表保存并使用后端 `MenuListResponse.total` 作为分页总数。
|
||
- 启用/禁用统一调用 `/api/v1/admin/menus/{id}`,并复用统一状态更新 loading。
|
||
- 移动卡片移除 body 底部重复“编辑/删除”文字按钮;删除下拉入口改为二次确认。
|
||
|
||
- 验证:
|
||
- 基线:`npm run lint` 因缺少 `node_modules` 无法执行;安装依赖后,项目全量 lint 因既有 Cesium public assets 与其他页面 hook 规则错误失败。
|
||
- 修改后:`npx eslint src/app/admin/menus/page.tsx` 通过。
|
||
- 修改后:`npx tsc --noEmit` 通过。
|
||
- 修改后:`npm run lint -- --quiet` 仍因既有非本次改动错误失败。
|
||
|
||
- 风险与关注点:
|
||
- 改动仅涉及菜单管理前端页面与全局菜单页样式,不改变后端菜单/权限业务语义。
|