Files
his/BUG_522_ANALYSIS.md
华佗 893cbf1fe0 refactor: 彻底清除所有openhis痕迹
- 重命名目录: openhis-server-new → healthlink-his-server
- 重命名目录: openhis-ui-vue3 → healthlink-his-ui
- 重命名Java类: OpenHisApplication → HealthLinkHisApplication
- 重命名Java类: OpenHisMiniApp → HealthLinkHisMiniApp
- 重命名组件目录: OpenHis → HealthLinkHis
- 重命名样式文件: openhis.scss → healthlink-his.scss
- 重命名配置: nginx-openhis.conf → nginx-healthlink-his.conf
- 更新所有源码引用 (0个残留)
- 更新所有文档/脚本/配置中的引用
2026-06-05 13:36:28 +08:00

1.8 KiB
Raw Blame History

Bug #522 分析报告

Bug 描述

[住院护士站-三测单] 体征录入点击保存后缺乏执行反馈且窗口异常自动关闭

涉及文件

  • 前端: healthlink-his-ui/src/views/inpatientNurse/tprChart/components/addTprDialog.vue
  • API: healthlink-his-ui/src/views/inpatientNurse/tprChart/components/api.js
  • 父组件: healthlink-his-ui/src/views/inpatientNurse/tprChart/index.vue

根因分析

问题1弹窗异常自动关闭 — 根因

addTprDialog.vue 模板中,保存按钮使用了 :disabled="buttonDisabled"第50行和第108行buttonDisabled 变量在整个 script setup 中从未声明

在 Vue 3 <script setup> + Composition API 中,模板引用的变量必须在 script 中声明。未声明的变量会触发 ReferenceError,导致组件渲染失败或运行时异常。这个错误会破坏组件的响应式系统,使得 dialogVisible 的响应式绑定失效,从而导致弹窗在保存操作后异常关闭。

问题2缺乏保存成功反馈 — 连带结果

虽然 confirmCharge() 函数在第1087行已有 proxy.$modal.msgSuccess('保存成功') 的调用,但由于 buttonDisabled 未声明引发的异常导致代码执行路径被破坏success 回调中的提示逻辑可能未能正常执行。

修复方案

  1. addTprDialog.vue 的 script setup 中新增 buttonDisabled ref 声明,初始值为 false
  2. 在保存操作中添加 loading 状态点击保存后将按钮禁用API 返回后恢复,防止重复提交的同时也保证了响应式状态的一致性

验收标准

  • 点击保存后弹窗保持开启状态
  • 保存成功后弹出"保存成功"提示
  • 左侧体征历史记录列表自动刷新
  • 录入区域表单被清空,方便继续录入下一条