From 50ef9e674396ae1d9cfc28fbf187b758e154d1b7 Mon Sep 17 00:00:00 2001 From: wzk <2438381872@qq.com> Date: Tue, 25 Nov 2025 13:49:38 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E8=A5=BF=E8=8D=AF=E5=A4=84?= =?UTF-8?q?=E6=96=B9=E5=8D=95bug?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../prescription/prescriptionlist.vue | 34 ++++++++++++++----- 1 file changed, 25 insertions(+), 9 deletions(-) diff --git a/openhis-ui-vue3/src/views/doctorstation/components/prescription/prescriptionlist.vue b/openhis-ui-vue3/src/views/doctorstation/components/prescription/prescriptionlist.vue index 7917e277..bb4d1f1e 100644 --- a/openhis-ui-vue3/src/views/doctorstation/components/prescription/prescriptionlist.vue +++ b/openhis-ui-vue3/src/views/doctorstation/components/prescription/prescriptionlist.vue @@ -1604,15 +1604,24 @@ function selectAdviceBase(key, row) { let targetIndex = -1; let targetRow = null; - // 遍历所有处方找到对应的行 - for (const prescription of westernPrescriptions.value) { - const prescriptionData = allPrescriptionsData.value[prescription.id] || []; - const index = prescriptionData.findIndex((item) => item.uniqueKey === key); - if (index !== -1) { - targetPrescriptionId = prescription.id; - targetIndex = index; - targetRow = prescriptionData[index]; - break; + // 1. 首先在当前处方的prescriptionList中查找 + const currentIndex = prescriptionList.value.findIndex((item) => item.uniqueKey === key); + if (currentIndex !== -1) { + // 在当前处方中找到匹配的行 + targetPrescriptionId = currentPrescriptionId.value; + targetIndex = currentIndex; + targetRow = prescriptionList.value[currentIndex]; + } else { + // 2. 如果当前处方中找不到,遍历所有处方找到对应的行 + for (const prescription of westernPrescriptions.value) { + const prescriptionData = allPrescriptionsData.value[prescription.id] || []; + const index = prescriptionData.findIndex((item) => item.uniqueKey === key); + if (index !== -1) { + targetPrescriptionId = prescription.id; + targetIndex = index; + targetRow = prescriptionData[index]; + break; + } } } @@ -2285,6 +2294,13 @@ function handleSaveBatch(prescriptionId) { return item.statusEnum == 1 && !item.isSaved; }) .map((item) => { + // 为每个医嘱项设置minUnitQuantity值,避免后端null值异常 + if (item.adviceType == 1 || item.adviceType == 2) { + item.minUnitQuantity = item.minUnitCode == item.unitCode ? item.quantity : item.quantity * item.partPercent; + } else { + item.minUnitQuantity = item.quantity; + } + // 将前端的耗材类型(4)转换为后端需要的类型(2) const saveAdviceType = item.adviceType == 4 ? 2 : item.adviceType;