Files
his/md/bug-analysis/bug469-analysis.md

1.4 KiB
Raw Blame History

Bug #469 分析报告

标题: [住院医生工作站-检验申请] 完善【操作】列临床业务逻辑:支持按状态动态切换修改、删除、撤回等功能

根因: 操作列(testApplication.vue 第 108-122 行)模板中,"详情"按钮 <el-button> 位于 v-if/v-else-if 条件块之外,作为独立元素始终渲染。导致:

  • 待签发状态status=0/null显示 "修改 删除 详情" 三个按钮(应仅显示"修改 删除"
  • 已签发状态status=1显示 "撤回 详情" 两个按钮(应仅显示"撤回"
  • 其他状态2/3/4/6/7仅显示"详情"(正确)

数据流:

  • 前端: testApplication.vue → 操作列 template → 条件判断 scope.row.status
  • 后端 SQL: RequestFormManageAppMapper.xmlcomputed_status CASE 表达式将 status_enum 映射为前端显示码0=待签发, 1=已签发, 6=已出报告, 7=已作废)
  • 后端删除: RequestFormManageAppServiceImpl.deleteRequestForm 校验 RequestStatus.DRAFT (status_enum=1)
  • 后端撤回: RequestFormManageAppServiceImpl.withdrawRequestForm 校验 RequestStatus.ACTIVE (status_enum=2)

修复方案: 将"详情"按钮包裹在 <template v-else> 中,形成完整的 v-if / v-else-if / v-else 三分支结构,确保每个状态仅显示对应的操作按钮。

修复结果: 成功4行改动1行删除3行新增<template v-else> + 按钮 + </template>