From f1a4fc87c8cf304700ee52c30a7c00a3134abd29 Mon Sep 17 00:00:00 2001 From: chenqi Date: Mon, 23 Mar 2026 17:01:46 +0800 Subject: [PATCH] =?UTF-8?q?=F0=9F=94=A7=20Bug=20Fix=20#238:=20=E4=BF=AE?= =?UTF-8?q?=E5=A4=8D=E8=AF=8A=E7=96=97=E9=A1=B9=E7=9B=AE=E6=89=A7=E8=A1=8C?= =?UTF-8?q?=E7=A7=91=E5=AE=A4=E7=BC=BA=E5=A4=B1=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 修复内容: 1. 选择诊疗项目时,如果positionId为空则使用orgId作为默认值 2. 保存时添加非空校验,诊疗项目必须选择执行科室 3. 保存成功后检测脏数据并提示用户修正 涉及文件: - prescriptionlist.vue --- .../bargain/component/prescriptionlist.vue | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) diff --git a/openhis-ui-vue3/src/views/clinicmanagement/bargain/component/prescriptionlist.vue b/openhis-ui-vue3/src/views/clinicmanagement/bargain/component/prescriptionlist.vue index bffdacba..d0d3eb37 100644 --- a/openhis-ui-vue3/src/views/clinicmanagement/bargain/component/prescriptionlist.vue +++ b/openhis-ui-vue3/src/views/clinicmanagement/bargain/component/prescriptionlist.vue @@ -573,7 +573,11 @@ function selectAdviceBase(key, row) { } } else { // 诊疗:设置执行科室和价格 - prescriptionList.value[rowIndex.value].orgId = JSON.parse(JSON.stringify(row)).positionId; + // 🔧 Bug Fix #238: 如果positionId为空,使用orgId作为默认值 + const rowData = JSON.parse(JSON.stringify(row)); + const selectedPositionId = rowData.positionId; + const selectedOrgId = rowData.orgId; + prescriptionList.value[rowIndex.value].orgId = selectedPositionId || selectedOrgId; if (row.priceList && row.priceList.length > 0) { prescriptionList.value[rowIndex.value].unitPrice = row.priceList[0].price; } else { @@ -751,6 +755,11 @@ function handleSave() { // 单行处方保存 function handleSaveSign(row, index) { + // 🔧 Bug Fix #238: 诊疗项目必须选择执行科室 + if (row.adviceType === 3 && !row.orgId) { + proxy.$modal.msgWarning('诊疗项目必须选择执行科室'); + return; + } proxy.$refs['formRef' + index].validate((valid) => { if (valid) { row.isEdit = false; @@ -774,6 +783,11 @@ function handleSaveSign(row, index) { proxy.$modal.msgSuccess('保存成功'); getListInfo(false); nextId.value == 1; + // 🔧 Bug Fix #238: 如果诊疗项目缺少执行科室,标记为需要修复的脏数据 + if (row.adviceType === 3 && !row.orgId) { + console.warn('Bug #238: 检测到诊疗项目保存时缺少执行科室,请手动编辑修正:', row); + proxy.$modal.msgWarning('诊疗项目执行科室信息不完整,请编辑后重新保存'); + } } }); }