From 83ea8b702705017b936ab460b834d96af147d3ee Mon Sep 17 00:00:00 2001 From: zhaoyun Date: Tue, 19 May 2026 10:06:41 +0800 Subject: [PATCH] =?UTF-8?q?Fix=20Bug=20#550:=20=E6=A3=80=E6=9F=A5=E7=94=B3?= =?UTF-8?q?=E8=AF=B7=E9=A1=B9=E7=9B=AE=E9=80=89=E6=8B=A9=E4=BA=A4=E4=BA=92?= =?UTF-8?q?=E4=BC=98=E5=8C=96=20=E2=80=94=20isMethodSelected=20=E6=8E=92?= =?UTF-8?q?=E9=99=A4=20methodAutoSelected=20=E9=81=BF=E5=85=8D=E8=81=94?= =?UTF-8?q?=E5=8A=A8=E5=86=B2=E7=AA=81=EF=BC=8C=E7=A7=BB=E9=99=A4=E5=86=97?= =?UTF-8?q?=E4=BD=99=E5=A5=97=E9=A4=90=E6=A0=87=E7=AD=BE+=E5=8A=A0?= =?UTF-8?q?=E5=AE=BD=E9=9D=A2=E6=9D=BF+=E6=A9=99=E8=89=B2=E8=BE=B9?= =?UTF-8?q?=E6=A1=86=E5=8C=BA=E5=88=86=E5=A5=97=E9=A4=90?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 根因: handleItemSelect 中 pickDefaultMethod 自动设置 selectedMethod 后, isMethodSelected 没有区分手动/自动选中,导致右侧检查方法 checkbox 被动勾选。 修复: 1. isMethodSelected 增加 !item.methodAutoSelected 条件,过滤自动选中的方法 2. handleItemSelect 设置/清除 methodAutoSelected 标记 3. 移除已选卡片冗余"套餐"标签,改用 is-package 类+左侧橙色边框区分 4. 已选面板 max-width 从 280px 加宽到 340px,减少名称截断 Co-Authored-By: Claude Opus 4.7 --- .../examination/examinationApplication.vue | 19 ++++++++++++++----- 1 file changed, 14 insertions(+), 5 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 18fffad2..a5c33c3c 100755 --- a/openhis-ui-vue3/src/views/doctorstation/components/examination/examinationApplication.vue +++ b/openhis-ui-vue3/src/views/doctorstation/components/examination/examinationApplication.vue @@ -440,9 +440,8 @@ class="selected-item-card" :class="{ 'is-expanded': item.expanded }" > - -
- 套餐 + +
{{ item.name }} @@ -1360,9 +1359,10 @@ function handleDelete(row) { } // Bug #428修复: 判断某个检查方法是否已被选中(任意项目关联了该方法) +// Bug #550修复: 排除 methodAutoSelected 的项目,避免自动选中的方法导致右侧 checkbox 被动勾选 function isMethodSelected(method, cat) { return selectedItems.value.some(item => - item.selectedMethod?.id === method.id && item.checkType === cat.typeName + item.selectedMethod?.id === method.id && item.checkType === cat.typeName && !item.methodAutoSelected ); } @@ -1524,6 +1524,10 @@ async function handleItemSelect(checked, item, cat) { // 右侧不再展示「检查方法」列表:自动选默认方法(保存、计价仍依赖 selectedMethod) if (methods.length >= 1) { row.selectedMethod = pickDefaultMethod(methods, item); + // Bug #550修复: 标记为自动选择,isMethodSelected 需排除,避免右侧方法被被动勾选 + row.methodAutoSelected = true; + } else { + row.methodAutoSelected = false; } updateMethodDisplay(); @@ -1958,7 +1962,7 @@ defineExpose({ getList }); .selected-panel { width: 220px; min-width: 200px; - max-width: 280px; + max-width: 340px; /* Bug #550修复: 从280px加宽到340px,让项目名更完整显示 */ flex-shrink: 0; display: flex; flex-direction: column; @@ -2008,6 +2012,11 @@ defineExpose({ getList }); background: linear-gradient(180deg, #ecf5ff 0%, #e3eef8 100%); } +/* Bug #550修复: 套餐项目左侧加橙色边框标识,与普通项目区分 */ +.selected-item-card .card-header.is-package { + border-left: 3px solid #e6a23c; +} + .selected-item-card.is-expanded .card-header { border-bottom-color: #ebeef5; }