fix(menu): 修复菜单管理编辑无法保存与新增 500 - 根因一:MenuService create/update 以 snake_case 列名作 Sequelize 写入键而实体属性为 camelCase,导致写入被静默忽略(更新假成功)或 NOT NULL 报错(新增 500),改为 camelCase 属性名;根因二:sys_menu 列默认值指向历史遗留重复序列 sys_menu_id_seq1 且未推进,新增菜单 id 冲突,生产库已一次性 setval 同步(max(id)=64,并核对 sys_role/sys_user 序列),db_seed.sql 全部 setval 改为 pg_get_serial_sequence() 形式兼容不同环境序列名;接口与浏览器端到端验证通过(新增→改名→持久化→清理)
Co-Authored-By: Claude Sonnet 4.6 noreply@anthropic.com
This commit is contained in:
1 parent
44fc9a1d54
commit
7ff2405634
5 files changed
+72
-17
No files matched your search
@@ -0,0 +1,8 @@
|
||||
# Checklist
|
||||
|
||||
- [x] MenuService.create() 以 camelCase 属性名写入(parentId/menuName/menuPath/component/icon/sortOrder/menuType/permission/visible),父菜单 parentId=null 语义保留
|
||||
- [x] MenuService.update() 以 camelCase 属性名写入,部分字段更新不会清空未提交字段
|
||||
- [x] sys_menu 自增序列失步已修复(生产库 setval 到 max(id)=64;sys_role/sys_user 序列一并核对),db_seed.sql 的 setval 全部改为 pg_get_serial_sequence() 形式以兼容不同环境序列名
|
||||
- [x] 后端 tsc --noEmit 通过
|
||||
- [x] PUT /api/menus/:id 修改名称后重新 GET 菜单树已持久化;POST /api/menus 返回 200 且新菜单可见(测试数据已清理)
|
||||
- [x] 浏览器菜单管理页:编辑名称保存成功、树实时刷新、刷新页面后名称保持;新增菜单可用
|
||||
Reference in new issue
Block a user