2.4 KiB
2.4 KiB
Bug #539 分析报告
Bug 描述
住院护士站点击后只有一个标签可见,缺少入出转管理、护理记录等功能模块。
根因分析
数据库菜单结构异常
hisdev.sys_menu 中,住院护士站(menu_id=295)当前是菜单类型(C)而非目录类型(M),且 component 被设置为 inpatientNurse/inpatientNurseStation/index。
其下有 15 个子菜单(门户、入出转管理、护理记录、三测单等),都正确分配给了护士角色。
问题核心
-
菜单 295(住院护士站)应为目录类型(M),但被错误设置为菜单类型(C)+ component。
- 作为目录类型(M)时,它应该在侧边栏展开为子菜单树,用户可以点击不同子菜单进入不同功能。
- 作为菜单类型(C)时,它直接导航到 component 页面,不展开子菜单。
-
菜单 295 和 296(门户)有相同的 component 和相同的 path:
- 两者 component 均为
inpatientNurse/inpatientNurseStation/index - 两者 path 均为
inpatientNurseStation - 这导致路由冲突和冗余
- 两者 component 均为
-
当护士登录后点击"住院护士站",由于它是类型 C,系统直接导航到
inpatientNurseStation/index页面,不展示子菜单列表。
结论
根本原因:菜单 295(住院护士站)的类型被错误设置为 C(菜单)且有 component,应该为 M(目录)且无 component。 这导致侧边栏不展开子菜单,用户只看到一个页面入口而非多个功能模块。
修复方案
将菜单 295 的 menu_type 从 'C' 改为 'M',并清空其 component 和 route_name 字段, 使其作为纯目录节点,在侧边栏中展开显示所有子菜单。
修复结果
已执行操作
UPDATE hisdev.sys_menu SET menu_type = 'M', component = NULL, route_name = NULL WHERE menu_id = 295;- 将住院护士站从菜单类型改为目录类型,清空 component
UPDATE hisdev.sys_menu SET component = 'inpatientNurse/medicineCollect/index' WHERE menu_id = 2062;- 修复住院领药菜单的 component 路径错误(
indexon/→index)
- 修复住院领药菜单的 component 路径错误(
修复后验证
- 菜单 295:menu_type=M, component=null → 侧边栏展开为子菜单树
- 菜单 296(门户):component=
inpatientNurse/inpatientNurseStation/index→ 带10个标签的主页面 - 菜单 297-2062:各子菜单 component 均指向正确的前端组件
- 修复结果:✅ 成功,2行数据库改动