Files
his/BUG_539_ANALYSIS.md

2.4 KiB
Raw Blame History

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 字段, 使其作为纯目录节点,在侧边栏中展开显示所有子菜单。

修复结果

已执行操作

  1. UPDATE hisdev.sys_menu SET menu_type = 'M', component = NULL, route_name = NULL WHERE menu_id = 295;
    • 将住院护士站从菜单类型改为目录类型,清空 component
  2. UPDATE hisdev.sys_menu SET component = 'inpatientNurse/medicineCollect/index' WHERE menu_id = 2062;
    • 修复住院领药菜单的 component 路径错误(indexon/index

修复后验证

  • 菜单 295menu_type=M, component=null → 侧边栏展开为子菜单树
  • 菜单 296门户component=inpatientNurse/inpatientNurseStation/index → 带10个标签的主页面
  • 菜单 297-2062各子菜单 component 均指向正确的前端组件
  • 修复结果: 成功2行数据库改动