4.3 KiB
Bug #760 诸葛亮分析报告
文档类型: Bug分析 分析时间: 2026-06-12 21:48:44 分析模型: mimo-v2.5 (LLM深度分析)
基本信息
- Bug #: 760
- 标题: [住院护士站-护理记录] 选中患者时系统报错
- 模块: 病区护士工作站
- 提出人: 陈显精
Analysis complete. Here's the full report.
一、Bug 理解
禅道 Bug #760:[住院护士站-护理记录] 选中患者时系统报错
重现步骤:
- 登录账号:wx,密码:123456,登录系统,进入【住院护士站】
- 点击【护理记录】页签
- 在左侧列表中选中任意已入院的患者
期望结果:
- 选中患者后,系统正常响应,无报错弹窗
- 成功加载并展示该患者对应的护理记录表单及历史数据
实际结果:
- 页面弹出红色报错:
No static resource nursing/statistics/summary/list for request '/healthlink-his/nursing/statistics/summary/list' - 右侧护理记录列表显示"暂无数据"
截图确认: 顶部红色报错横幅清晰可见,错误 URL 为 /healthlink-his/nursing/statistics/summary/list,选中患者"陈显精"后右侧表格为空。
总结: 用户在住院护士站的「护理记录」页签选中患者时,前端发起了一个后端不存在的 API 请求 /nursing/statistics/summary/list,导致 404 报错,护理记录数据无法加载。
二、根因分析
根因:Tab 组件映射错误 — "护理记录"页签加载了错误的组件。
在 healthlink-his-ui/src/views/inpatientNurse/inpatientNurseStation/index.vue 中:
<!-- 第72-76行 -->
<el-tab-pane label="护理记录" name="NursingRecord">
<Criticalrecord v-if="activeTabName === 'NursingRecord'" />
</el-tab-pane>
这里渲染的是 Criticalrecord 组件,而不是 NursingRecord 组件。
关键文件对比:
| 文件 | API 路径 | 后端是否有对应 Controller |
|---|---|---|
nursingstatistics/criticalrecord.vue → nursingstatistics/api.js |
/nursing/statistics/summary/list |
❌ 不存在 |
nursingRecord/index.vue → nursingRecord/components/api.js |
/nursing-record/nursing-patient-page 等 |
✅ NursingRecordController |
inpatientNurseStation/index.js中已经同时导入了两个组件:NursingRecordfrom@/views/inpatientNurse/nursingRecord/index.vueCriticalrecordfrom@/views/inpatientNurse/nursingstatistics/criticalrecord.vue
- 但
index.vue的模板中用错了组件名:<Criticalrecord>应该是<NursingRecord> - 后端
NursingRecordController映射在/nursing-record,有完整的 patient-page、nursing-patient-page、save-nursing、delete-nursing 等端点
涉及的文件:
healthlink-his-ui/src/views/inpatientNurse/inpatientNurseStation/index.vue— 模板中 Tab 渲染了错误组件
三、修复方案
修改 1 个文件,1 处改动:
文件: healthlink-his-ui/src/views/inpatientNurse/inpatientNurseStation/index.vue
改动: 将第 74 行的 <Criticalrecord> 替换为 <NursingRecord>
- <el-tab-pane label="护理记录" name="NursingRecord">
- <Criticalrecord v-if="activeTabName === 'NursingRecord'" />
+ <el-tab-pane label="护理记录" name="NursingRecord">
+ <NursingRecord v-if="activeTabName === 'NursingRecord'" />
</el-tab-pane>
NursingRecord 已在同文件的 index.js 中导入(第3行),无需额外添加 import。
验证:
cd healthlink-his-ui && npm run build:dev— 编译通过- 登录后进入住院护士站 → 护理记录 → 选中患者 → 应加载出患者护理记录列表,无红色报错
四、路由决策
FIXER: zhaoyun
REASON: 纯前端组件映射修复,仅改动 1 个 Vue 文件中的 1 行模板标签(Criticalrecord → NursingRecord),属于前端界面/组件层级的问题。
路由决策
- FIXER_ID: zhaoyun
- 修复 Agent: zhaoyun(前端)
- 原因: ** 纯前端组件映射修复,仅改动 1 个 Vue 文件中的 1 行模板标签(
Criticalrecord→NursingRecord),属于前端界面/组件层级的问题。
⚠️ 修复人员请先验证以上分析是否正确,再执行修复。