From 0f52327b8b9d47d6d56da0cc2f104ed0e8e44dff Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=88=98=E5=A4=87?= <刘备@gentronhealth.com> Date: Sat, 9 May 2026 20:18:41 +0800 Subject: [PATCH] =?UTF-8?q?Fix=20Bug=20#446:=20=E3=80=90=E6=89=8B=E6=9C=AF?= =?UTF-8?q?=E7=AE=A1=E7=90=86-=E9=97=A8=E8=AF=8A=E6=89=8B=E6=9C=AF?= =?UTF-8?q?=E5=AE=89=E6=8E=92=E3=80=91=E4=B8=B4=E6=97=B6=E5=8C=BB=E5=98=B1?= =?UTF-8?q?=E7=94=9F=E6=88=90=E5=90=8E=E7=95=8C=E9=9D=A2=E9=9D=9E=E6=B3=95?= =?UTF-8?q?=E5=85=B3=E9=97=AD=E4=B8=94=E6=8C=89=E9=92=AE=E5=90=8D=E7=A7=B0?= =?UTF-8?q?/=E5=8A=9F=E8=83=BD=E6=98=BE=E7=A4=BA=E4=B8=8D=E4=B8=80?= =?UTF-8?q?=E8=87=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 移除签名成功后自动关闭弹窗的 setTimeout,改为保留弹窗让用户查看已签发的医嘱状态。 新增 isSignedProp 传递给子组件,使重新打开弹窗时按钮名称保持为"提交医嘱"而非重置为"一键签名并生成医嘱"。 Co-Authored-By: Claude Opus 4.7 --- .../src/views/surgicalschedule/index.vue | 17 +++++++++-------- .../views/surgicalschedule/temporaryMedical.vue | 10 +++++++--- 2 files changed, 16 insertions(+), 11 deletions(-) diff --git a/openhis-ui-vue3/src/views/surgicalschedule/index.vue b/openhis-ui-vue3/src/views/surgicalschedule/index.vue index 78c85454..ee56d7df 100755 --- a/openhis-ui-vue3/src/views/surgicalschedule/index.vue +++ b/openhis-ui-vue3/src/views/surgicalschedule/index.vue @@ -848,6 +848,7 @@ :patient-info="temporaryPatientInfo" :billing-medicines="temporaryBillingMedicines" v-model:temporary-advices="temporaryAdvices" + :is-signed-prop="temporarySigned" @submit="handleTemporaryMedicalSubmit" @cancel="handleTemporaryMedicalCancel" @refresh="handleTemporaryMedicalRefresh" @@ -1032,6 +1033,7 @@ watch(temporaryAdvices, (newVal, oldVal) => { }, { deep: true }) const temporaryMedicalLoading = ref(false) // 🔧 新增:临时医嘱加载状态 +const temporarySigned = ref(false) // 🔧 新增:签名状态,用于保持按钮名称一致性 // 下拉列表数据 const orgList = ref([]) @@ -1464,6 +1466,7 @@ function handleMedicalAdvice(row) { // 先清空旧数据 temporaryBillingMedicines.value = [] temporaryAdvices.value = [] + temporarySigned.value = false // 🔧 重置签名状态 temporaryMedicalLoading.value = true // 🔧 新增:开始加载 // 调用计费接口获取数据 @@ -1688,21 +1691,19 @@ function handleTemporaryMedicalSubmit(data) { temporaryBillingMedicines.value = [] } - // 显示成功提示 - ElMessage.success('临时医嘱已生成,弹窗即将关闭') - - // 延迟关闭弹窗,让用户看到成功提示 - setTimeout(() => { - showTemporaryMedical.value = false - }, 1000) + // 🔧 设置签名状态,保持按钮名称一致 + temporarySigned.value = true + + // 显示成功提示,不关闭弹窗,让用户可以查看已签发的医嘱状态 + ElMessage.success('临时医嘱已生成(已签发),可继续查看或修改') } -// 处理临时医嘱取消 function handleTemporaryMedicalCancel() { // 🔧 修复:用户点击取消时才清空数据,因为用户可能要放弃修改 temporaryPatientInfo.value = {} temporaryBillingMedicines.value = [] temporaryAdvices.value = [] + temporarySigned.value = false // 🔧 重置签名状态 closeTemporaryMedical() } diff --git a/openhis-ui-vue3/src/views/surgicalschedule/temporaryMedical.vue b/openhis-ui-vue3/src/views/surgicalschedule/temporaryMedical.vue index 2d138cd6..51def6e1 100755 --- a/openhis-ui-vue3/src/views/surgicalschedule/temporaryMedical.vue +++ b/openhis-ui-vue3/src/views/surgicalschedule/temporaryMedical.vue @@ -244,10 +244,14 @@ const props = defineProps({ default: () => [] }, // 二区域:临时医嘱预览(已生成医嘱)- v-model:temporary-advices 对应 prop 名 - // 🔧 修复:使用驼峰命名,因为 v-model:temporary-advices 会映射到 temporaryAdvices prop temporaryAdvices: { type: Array, default: () => [] + }, + // 签名状态:用于保持按钮名称一致性 + isSignedProp: { + type: Boolean, + default: false } }) @@ -306,8 +310,8 @@ const getMethodCodeDict = computed(() => { return dict }) -// 响应式数据 -const isSigned = ref(false) +// 响应式数据 - isSigned 从父组件传入的 prop 初始化 +const isSigned = ref(props.isSignedProp) const signatureTime = ref('') const showSignDialog = ref(false) const signPassword = ref('')