From 021701c611cae5851c93eed8f0b19effd2b995ed Mon Sep 17 00:00:00 2001
From: wangjian963 <15215920+aprilry@user.noreply.gitee.com>
Date: Mon, 1 Jun 2026 15:40:52 +0800
Subject: [PATCH] =?UTF-8?q?550=20=E3=80=90=E9=97=A8=E8=AF=8A=E5=8C=BB?=
=?UTF-8?q?=E7=94=9F=E7=AB=99-=E6=A3=80=E6=9F=A5=E3=80=91=E6=A3=80?=
=?UTF-8?q?=E6=9F=A5=E7=94=B3=E8=AF=B7=E9=A1=B9=E7=9B=AE=E9=80=89=E6=8B=A9?=
=?UTF-8?q?=E4=BA=A4=E4=BA=92=E4=BC=98=E5=8C=96=EF=BC=9A=E8=A7=A3=E5=86=B3?=
=?UTF-8?q?=E8=87=AA=E5=8A=A8=E5=8B=BE=E9=80=89=E5=86=B2=E7=AA=81=E3=80=81?=
=?UTF-8?q?=E5=90=8D=E7=A7=B0=E9=81=AE=E6=8C=A1=E5=8F=8A=E6=98=8E=E7=BB=86?=
=?UTF-8?q?=E8=80=A6=E5=90=88=E9=97=AE=E9=A2=98?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../examination/examinationApplication.vue | 67 ++++++++++++++-----
1 file changed, 50 insertions(+), 17 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 7a201ec7f..607fe6fda 100755
--- a/openhis-ui-vue3/src/views/doctorstation/components/examination/examinationApplication.vue
+++ b/openhis-ui-vue3/src/views/doctorstation/components/examination/examinationApplication.vue
@@ -707,7 +707,7 @@
class="item-checkbox"
@change="(val) => handleItemSelect(val, item, cat)"
>
- {{ item.name }}
+ {{ getDisplayItemName(item) }}
¥{{ item.price }}/{{ item.unit || "次" }}
@@ -806,7 +806,7 @@
-
-
-
-
+
+
+
+
@@ -1265,7 +1264,12 @@ const activeCategory = computed(() => {
const activeCategoryName = computed(() => activeCategory.value?.typeName || activeCategory.value?.categoryName || '');
const methodsForActiveCategory = computed(() => {
- const arr = activeCategory.value?.methods;
+ // Bug #550修复: 直接从 categoryList 查找,避免 activeCategory 中间 computed 缓存阻断响应式
+ const id = activeNames.value;
+ if (id === '' || id === null || id === undefined) return [];
+ const cat = categoryList.value.find(c => String(c.typeId) === String(id));
+ if (!cat) return [];
+ const arr = cat.methods;
return Array.isArray(arr) ? arr : [];
});
@@ -1944,6 +1948,11 @@ async function handleItemSelect(checked, item, cat) {
console.error('加载检查方法失败', err);
}
+ // Bug #550修复: 同步方法到分类,确保右侧方法选择器可见
+ if (methods.length > 0 && cat && (!cat.methods || cat.methods.length === 0)) {
+ cat.methods = methods;
+ }
+
if (selectedItems.value.length > 0) {
const currentCategory = selectedItems.value[0].checkType;
// Bug #428修复: 使用 cat.typeName 进行比较(与 effectiveCheckType 保持一致)
@@ -2459,28 +2468,24 @@ defineExpose({ getList });
flex-direction: column;
gap: 8px;
flex-shrink: 0;
+ width: 280px;
+ min-width: 260px;
}
.method-picker-section {
- width: 260px;
- min-width: 240px;
- max-width: 320px;
flex-shrink: 0;
display: flex;
flex-direction: column;
- margin-top: 8px;
}
.selected-panel {
- width: 260px;
- min-width: 240px;
- max-width: 320px;
- flex-shrink: 0;
+ min-width: 0;
+ flex: 1;
display: flex;
flex-direction: column;
+ overflow-y: auto;
}
.selected-tags {
- flex: 1;
overflow-y: auto;
overflow-x: hidden;
display: flex;
@@ -2488,6 +2493,27 @@ defineExpose({ getList });
gap: 8px;
padding-right: 2px;
}
+
+/* 已选择面板中项目/方法区域分隔 */
+.section-divider {
+ display: flex;
+ align-items: center;
+ gap: 8px;
+ padding: 6px 0 2px;
+}
+.section-divider::before {
+ content: '';
+ flex: 1;
+ height: 1px;
+ background: #dcdfe6;
+}
+.divider-label {
+ font-size: 11px;
+ font-weight: 600;
+ color: #909399;
+ letter-spacing: 0.03em;
+ flex-shrink: 0;
+}
.selected-tag {
max-width: 100%;
overflow: hidden;
@@ -2510,6 +2536,13 @@ defineExpose({ getList });
overflow: hidden;
}
+/* 方法卡片:子级缩进,表示从属于检查项目 */
+.selected-item-card.method-child-card {
+ margin-left: 20px;
+ border-left: 3px solid #e6a23c;
+ border-radius: 0 6px 6px 0;
+}
+
/* 项目上 / 方法下:各自独立下拉条 */
.fold-strip {
border-bottom: 1px solid var(--el-border-color-lighter);