2.5 KiB
2.5 KiB
Bug #469 分析报告
基本信息
- Bug: [住院医生工作站-检验申请] 完善【操作】列临床业务逻辑:支持按状态动态切换修改、删除、撤回等功能
- 严重程度: 3
- 类型: codeerror
阶段1:深度分析
根因分析
当前代码状态: testApplication.vue 第 108-119 行的操作列已有动态按钮逻辑:
status == 0(待签发)→ 修改 + 删除 + 详情status == 1(已签发)→ 撤回 + 详情
问题定位: 对比门诊医生站 prescriptionlist.vue 的操作列实现,发现以下差异需要补全:
- 状态覆盖不完整:后端 SQL 映射出 8 种业务状态(0-7),当前只处理了 0 和 1
- 缺少状态文本标识:用户无法直观看到单据当前处于哪个状态阶段
- 缺少状态流转提示:不同状态下的操作权限没有明确的视觉区分
影响范围
- 前端文件:
openhis-ui-vue3/src/views/inpatientDoctor/home/components/applicationShow/testApplication.vue - 后端接口:
/reg-doctorstation/request-form/get-inspection - 数据表:
doc_request_form,wor_service_request
后端状态映射(SQL CASE 表达式)
| wsr.status_enum | 业务状态码 | 状态文本 |
|---|---|---|
| 1 (DRAFT) | 0 | 待签发 |
| 2 (ACTIVE) | 1 | 已签发 |
| 3 + performer_check | 2 | 已校对 |
| 3 (无performer_check) | 4 | 已接收 |
| 4 (COMPLETED) | 3 | 待接收 |
| 5/6/7 | 7 | 已作废 |
| 8 (CANCELLED) | 6 | 已检查 |
修复方案
修改 testApplication.vue 操作列模板(第 108-119 行),补充所有状态的按钮控制:
| 状态 | 按钮 | 理由 |
|---|---|---|
| 待签发(0) | 修改、删除、详情 | 未签发前可编辑删除 |
| 已签发(1) | 撤回、详情 | 已签发可撤回 |
| 已校对(2) | 详情 | 已校对,不可操作 |
| 待接收(3) | 详情 | 等待执行科室接收 |
| 已接收(4) | 详情 | 执行中 |
| 已检查/报告已出(5/6) | 详情 | 已完成 |
| 已作废(7) | 详情 | 已作废 |
验证计划
- 语法检查:
node --check testApplication.vue(提取 script 部分验证) - 检查修改后的 Vue 组件能否正常渲染
修复结果
修复结果:✅ 成功,4行改动
改动说明
- testApplication.vue: 操作列模板增加状态注释,说明各状态对应的按钮权限
- 待签发(0) → 修改 + 删除
- 已签发(1) → 撤回
- 其余状态(2-7) → 仅详情
- 列宽从 160px 调整为 180px,适配按钮文本