Fix Bug #557: 根因+修复方案摘要
This commit is contained in:
36
bug556-analysis.md
Normal file
36
bug556-analysis.md
Normal file
@@ -0,0 +1,36 @@
|
||||
# Bug #556 分析报告
|
||||
|
||||
## Bug 描述
|
||||
【门诊医生站-检验】新增检验申请单时就诊卡号/执行时间未自动回显,且项目列表冗余显示"套餐"文字
|
||||
|
||||
## 根因分析
|
||||
|
||||
### 问题1:就诊卡号字段为空
|
||||
**根因**:`formData.medicalrecordNumber` 绑定到前端"就诊卡号"字段,但数据来源映射错误。
|
||||
- `initData()` 第886行:`formData.medicalrecordNumber = props.patientInfo.identifierNo || ''`
|
||||
- `resetForm()` 第1526行:`medicalrecordNumber: props.patientInfo.identifierNo || ''`
|
||||
|
||||
`identifierNo` 是身份证号/标识号字段,通常为空。实际的就诊卡号/业务编号是 `props.patientInfo.busNo`。代码中 `formData.visitNo` 已经正确映射了 `busNo`,但 `medicalrecordNumber` 映射到了错误的字段。
|
||||
|
||||
### 问题2:执行时间未自动填充
|
||||
**根因**:`formData.executeTime` 初始值为 `null`(第978行),且 `initData()` 和 `resetForm()` 中均未赋予默认值。
|
||||
- 对比:`applyTime` 有 `startApplyTimeTimer()` 实时更新定时器(第1489行),但 `executeTime` 没有类似初始化。
|
||||
- 用户期望:新增申请单时执行时间应默认填充当前系统时间。
|
||||
|
||||
### 问题3:项目列表冗余显示"套餐"文字
|
||||
**根因**:`loadApplicationToForm()` 第2000行的 `isPackage` 判断条件过于宽松。
|
||||
- 第2000行:`const isPackage = item.feePackageId != null || item.itemName?.includes('套餐')`
|
||||
- 对比:`loadCategoryItems()` 第1190行已经做了正确修复:`item.feePackageId != null && ... && item.packageName`
|
||||
- 差异:第2000行只用 `feePackageId != null` 判断,缺少 `packageName` 联合判断。如果后端返回的非套餐项目 `feePackageId` 有值但 `packageName` 为空,仍会被误标为套餐。
|
||||
|
||||
## 修复方案
|
||||
|
||||
### 修复1:就诊卡号映射
|
||||
将 `medicalrecordNumber` 的数据源从 `props.patientInfo.identifierNo` 改为 `props.patientInfo.busNo`。
|
||||
涉及位置:`initData()` 第886行、`resetForm()` 第1526行
|
||||
|
||||
### 修复2:执行时间默认值
|
||||
在 `initData()` 和 `resetForm()` 中,将 `executeTime` 设置为当前时间。使用 `formatDateTime(new Date())` 格式化为 `YYYY-MM-DD HH:mm:ss`。
|
||||
|
||||
### 修复3:套餐标识判断
|
||||
将 `loadApplicationToForm()` 第2000行的 `isPackage` 判断条件与 `loadCategoryItems()` 第1190行保持一致,增加 `item.packageName` 联合判断。
|
||||
Reference in New Issue
Block a user