fix(#569): 请修复 Bug #569:[一般] [住院护士站-医嘱管理] 各业务节点状态名称与《药品医嘱状态映射表》不一致,存在严重歧义

根因:
- 后端 `requestStatus_enumText` 返回旧枚举值(如"已发送""已完成"),前端部分组件直接使用原始枚举文本而未做名称映射,导致界面显示与标准映射表不一致。
- ### 关键映射关系(按《药品医嘱状态映射表》修订版)
- | 业务节点 | 规范名称 | 旧枚举文本 |
- |---|---|---|
- | 开具 | 待签发 | 待发送 |
- | 签发 | 已签发 | 已发送/已发送/待执行 |
- | 校对 | 已校对 | 已完成 |
- | 汇总申请(护士站) | 已提交 | 待配药/已汇总 |
- | 发药(护士站→药房) | 已发药/已完成 | 已发放 |
- ### 修改文件
- 1. `src/views/inpatientNurse/medicalOrderProofread/components/prescriptionList.vue`**

修复:
- 将 `STATUS_DISPLAY_BY_TAB`(基于页签过滤条件的显示)替换为行级别的状态映射
- 新增 `REQUEST_STATUS_DISPLAY`:按 `row.requestStatus` 数值映射规范名称(待签发/已签发/已校对/已停止)
- 新增 `DISPENSE_STATUS_DISPLAY`:按 `row.dispenseStatus` 映射发药状态(已提交/已发药)
- 新增 `LEGACY_STATUS_TEXT`:兼容旧后端返回的 "已发送"→"已签发"、"已完成"→"已校对" 等
- 2. `src/views/drug/inpatientMedicationDispensing/components/MedicationDetails.vue`**
- 新增 `DRUG_STATUS_DISPLAY` + `LEGACY_DRUG_STATUS_TEXT` 映射
- `statusEnum=2` 显示"待配药"(原显示"已提交"),`statusEnum=4` 显示"已发药"
- 3. `src/views/drug/inpatientMedicationDispensing/components/DetailMedicationTable.vue`**
- 新增 `DETAIL_DRUG_STATUS_DISPLAY` + `DETAIL_LEGACY_STATUS_TEXT` 映射
- ### 已存在的正确映射(无需修改)
- `medicalOrderExecution/components/prescriptionList.vue` — 已有完整映射
- `drugDistribution/components/summaryMedicineList.vue` — 已有 `SUMMARY_STATUS_DISPLAY`
- `inpatientMedicationDispensing/components/MedicationSummary.vue` — 已有 `SUMMARY_STATUS_DISPLAY`
- ### 验证
-  ESLint 检查通过(无新增错误)
-  `vite build` 编译成功
This commit is contained in:
2026-05-29 01:31:59 +08:00
parent 504875b011
commit 2aaafb408b
3 changed files with 79 additions and 16 deletions

View File

@@ -208,7 +208,7 @@
>
<template #default="scope">
<el-tag :type="tagType(scope.row.statusEnum)">
{{ scope.row.statusEnum_enumText }}
{{ formatDrugStatusText(scope.row) }}
</el-tag>
</template>
</el-table-column>
@@ -760,6 +760,26 @@ function formatPrice(row, column, cellValue) {
return cellValue.toFixed(2) + ' 元'; // 保留两位小数
}
/** 发药状态 → 规范状态名称映射(与《药品医嘱状态映射表》保持一致) */
const DRUG_STATUS_DISPLAY = {
2: '待配药',
4: '已发药',
};
const LEGACY_DRUG_STATUS_TEXT = {
已提交: '待配药',
已发放: '已发药',
已完成: '已发药',
};
function formatDrugStatusText(row) {
const code = Number(row?.statusEnum);
if (DRUG_STATUS_DISPLAY[code]) {
return DRUG_STATUS_DISPLAY[code];
}
return LEGACY_DRUG_STATUS_TEXT[row?.statusEnum_enumText] || row?.statusEnum_enumText || '-';
}
function tagType(statusEnum) {
if (statusEnum == 2 || statusEnum == 2) {
return 'primary';