Files
fquiz/memory/2026-06-19.md
T
2026-06-19 23:18:45 +08:00

40 lines
2.5 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 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` 仍因既有非本次改动错误失败。
- 风险与关注点:
- 改动仅涉及菜单管理前端页面与全局菜单页样式,不改变后端菜单/权限业务语义。