Files
his/BUG_539_ANALYSIS.md

47 lines
2.6 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.

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