# 分析报告 — Bug #469 ## 问题描述 检验申请列表的【操作】列仅显示固定的"打印"和"删除"按钮,未根据申请单状态动态切换操作权限。 ## 根因分析 文件 `openhis-ui-vue3/src/views/doctorstation/components/inspection/inspectionApplication.vue` 第97-104行: - 操作列模板中固定渲染"打印"和"删除"按钮,没有任何状态判断逻辑 - 缺少"修改"和"撤回"按钮 ## 状态机设计 | 状态 | 条件 | 允许的操作 | |------|------|-----------| | 待开立 | applyStatus == 0 | 修改、删除 | | 已开立 | applyStatus == 1 && needExecute != true | 撤回 | | 已执行 | applyStatus == 1 && needExecute == true | 无(仅打印) | ## 修复方案 1. **前端 Vue**: 操作列改为 `v-if` 条件渲染按钮(修改/删除/撤回/打印) 2. **前端 API**: 新增撤回接口 `withdrawInspectionApplication(applyNo)` 3. **后端 Controller**: 新增 `POST /withdraw/{applyNo}` 端点 4. **后端 Service**: 新增 `withdrawInspectionLabApply` 方法,将 applyStatus 置回 0,needRefund/needExecute 置回 false ## 修复结果 ✅ 成功,共14行改动(2个commit完成) ### 修复详情 1. **commit c643a78b** - 初始修复:将操作列从静态"打印/删除"改为基于状态的动态按钮(修改/删除/撤回/详情),10行改动 2. **commit f369ea41** - 跟进修复:将"详情"按钮包裹在 `