From abb2fb36fc7ef50a84dc834ba1e97fc9bfe6b356 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=8D=80=E5=BD=A7?= <荀彧@gentronhealth.com> Date: Thu, 14 May 2026 18:08:55 +0800 Subject: [PATCH] =?UTF-8?q?Fix=20Bug=20#428:=20=E9=97=A8=E8=AF=8A=E5=8C=BB?= =?UTF-8?q?=E7=94=9F=E7=AB=99-=E6=A3=80=E6=9F=A5=E7=94=B3=E8=AF=B7?= =?UTF-8?q?=EF=BC=9A=E6=9C=AA=E5=AE=9E=E7=8E=B0=E5=88=86=E7=B1=BB=E8=81=94?= =?UTF-8?q?=E5=8A=A8=E6=A3=80=E6=9F=A5=E6=96=B9=E6=B3=95=E5=8F=8A=E5=A5=97?= =?UTF-8?q?=E9=A4=90=E6=98=8E=E7=BB=86=E5=B1=95=E7=A4=BA=E4=B8=8E=E5=8B=BE?= =?UTF-8?q?=E9=80=89=E9=80=BB=E8=BE=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 1. handleMethodSelect 中新增/更新已选项时,设置 expanded=true 使套餐明细自动展开 2. toggleItemExpand 中改用 packageDetailsDisplay/carrier.packageDetails 判断是否已加载明细 (原代码检查非响应式的 item.packageDetails,导致重复加载或加载判断失效) Co-Authored-By: Claude Opus 4.7 --- .../examination/examinationApplication.vue | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/openhis-ui-vue3/src/views/doctorstation/components/examination/examinationApplication.vue b/openhis-ui-vue3/src/views/doctorstation/components/examination/examinationApplication.vue index dc50881a1..3ef285d68 100755 --- a/openhis-ui-vue3/src/views/doctorstation/components/examination/examinationApplication.vue +++ b/openhis-ui-vue3/src/views/doctorstation/components/examination/examinationApplication.vue @@ -1362,8 +1362,9 @@ async function handleMethodSelect(checked, method, cat) { existingItem.isPackage = true; existingItem.packageId = method.packageId; existingItem.packageName = method.packageName || existingItem.packageName; // #428修复: 确保 packageName 同步 + existingItem.expanded = true; // #428修复: 有套餐时默认展开,展示套餐明细 // 预加载套餐明细 - loadPackageDetailsForItem(existingItem); + await loadPackageDetailsForItem(existingItem); } updateMethodDisplay(); return; @@ -1399,9 +1400,10 @@ async function handleMethodSelect(checked, method, cat) { }; selectedItems.value.push(newItem); - // 如果是套餐,预加载套餐明细 + // 如果是套餐,预加载套餐明细并默认展开 if (newItem.isPackage && newItem.packageId) { - loadPackageDetailsForItem(newItem); + newItem.expanded = true; + await loadPackageDetailsForItem(newItem); } // 自动回填执行科室 @@ -1523,7 +1525,10 @@ async function handleItemSelect(checked, item, cat) { // Bug #384修复 + #426修复: 展开/收起项目卡片 async function toggleItemExpand(item) { item.expanded = !item.expanded; - if (item.expanded && (item.isPackage || item.packageName) && (!item.packageDetails || item.packageDetails.length === 0) && !item.packageDetailsLoading) { + const carrier = getPackageCarrier(item); + const hasDetails = Array.isArray(item.packageDetailsDisplay) && item.packageDetailsDisplay.length > 0 + || Array.isArray(carrier?.packageDetails) && carrier.packageDetails.length > 0; + if (item.expanded && (item.isPackage || item.packageName) && !hasDetails && !item.packageDetailsLoading) { await loadPackageDetailsForItem(item); } if (item.expanded && shouldShowPackageBody(item)) {