From 777ba71c7d37a53a91755b61da0e86e7d724b754 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=85=B3=E7=BE=BD?= <关羽@gentronhealth.com> Date: Mon, 11 May 2026 14:07:50 +0800 Subject: [PATCH] =?UTF-8?q?Fix=20Bug=20#486:=20[=E4=BD=8F=E9=99=A2?= =?UTF-8?q?=E5=8C=BB=E7=94=9F=E5=B7=A5=E4=BD=9C=E7=AB=99-=E4=B8=B4?= =?UTF-8?q?=E5=BA=8A=E5=8C=BB=E5=98=B1]=20=E5=8C=BB=E5=98=B1=E6=A3=80?= =?UTF-8?q?=E7=B4=A2=E6=A1=86=E4=B8=8D=E6=94=AF=E6=8C=81=E5=85=A8=E5=B1=80?= =?UTF-8?q?=E6=A8=A1=E7=B3=8A=E6=90=9C=E7=B4=A2=EF=BC=8C=E6=9C=AA=E9=80=89?= =?UTF-8?q?"=E5=8C=BB=E5=98=B1=E7=B1=BB=E5=9E=8B"=E6=97=B6=E6=A3=80?= =?UTF-8?q?=E7=B4=A2=E7=BB=93=E6=9E=9C=E4=B8=BA=E7=A9=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 根因:handleFocus/handleChange 中 categoryCode 的计算逻辑错误。当新增行未选择 医嘱类型时(row.adviceType 为 undefined),代码回退到 adviceQueryParams 的默认值并 匹配到具体药品分类(如西药 categoryCode='2'),导致搜索被限制在单一分类而非全局药库。 修复:简化 categoryCode 判定为 `row.adviceType !== undefined ? selectedItem.categoryCode : ''`, 未选类型时传空 categoryCode,使 searchKey 在全药库范围内模糊匹配。 Co-Authored-By: Claude Opus 4.7 --- .../inpatientDoctor/home/components/order/index.vue | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/openhis-ui-vue3/src/views/inpatientDoctor/home/components/order/index.vue b/openhis-ui-vue3/src/views/inpatientDoctor/home/components/order/index.vue index 6c801c13..791f941e 100755 --- a/openhis-ui-vue3/src/views/inpatientDoctor/home/components/order/index.vue +++ b/openhis-ui-vue3/src/views/inpatientDoctor/home/components/order/index.vue @@ -881,8 +881,9 @@ function handleFocus(row, index) { // 用 adviceType + categoryCode 组合查找匹配的选项 const selectValue = (adviceType == 1 && row.categoryCode) ? '1-' + row.categoryCode : adviceType; const selectedItem = adviceTypeList.value.find(item => item.value === selectValue) || adviceTypeList.value.find(item => item.adviceType === adviceType); - // 修复Bug #486:当行没有显式选择医嘱类型时,不传categoryCode,让搜索在全药库中进行 - const categoryCode = selectedItem ? selectedItem.categoryCode : (row.adviceType !== undefined ? (adviceQueryParams.value.categoryCode || '') : ''); + // 修复Bug #486:当行没有显式选择医嘱类型时(row.adviceType为undefined), + // 不传categoryCode,让搜索在全药库中进行;只有行已选择类型时才用对应categoryCode过滤 + const categoryCode = row.adviceType !== undefined ? (selectedItem ? selectedItem.categoryCode : '') : ''; const searchKey = row.adviceName || ''; nextTick(() => { @@ -919,8 +920,9 @@ function handleChange(value) { // 用 adviceType + categoryCode 组合查找匹配的选项 const selectValue = (adviceType == 1 && row?.categoryCode) ? '1-' + row.categoryCode : adviceType; const selectedItem = adviceTypeList.value.find(item => item.value === selectValue) || adviceTypeList.value.find(item => item.adviceType === adviceType); - // 修复Bug #486:当行没有显式选择医嘱类型时,不传categoryCode,让搜索在全药库中进行 - const categoryCode = selectedItem ? selectedItem.categoryCode : (row?.adviceType !== undefined ? (adviceQueryParams.value.categoryCode || '') : ''); + // 修复Bug #486:当行没有显式选择医嘱类型时(row?.adviceType为undefined), + // 不传categoryCode,让搜索在全药库中进行;只有行已选择类型时才用对应categoryCode过滤 + const categoryCode = row?.adviceType !== undefined ? (selectedItem ? selectedItem.categoryCode : '') : ''; tableRef.refresh(adviceType, categoryCode, value); } }