From ab2f580d60983629cbb8094d780d6071d96d613a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=85=B3=E7=BE=BD?= <关羽@gentronhealth.com> Date: Thu, 14 May 2026 11:26:05 +0800 Subject: [PATCH] =?UTF-8?q?Fix=20Bug=20#453:=20=E4=BD=8F=E9=99=A2=E5=8C=BB?= =?UTF-8?q?=E7=94=9F=E7=AB=99-=E4=B8=B4=E5=BA=8A=E5=8C=BB=E5=98=B1?= =?UTF-8?q?=EF=BC=9A=E5=BC=80=E7=AB=8B=E5=8C=BB=E5=98=B1=E6=97=B6=E8=BE=93?= =?UTF-8?q?=E5=85=A5"=E7=BA=A7=E6=8A=A4=E7=90=86"=E6=A3=80=E7=B4=A2?= =?UTF-8?q?=E7=BB=93=E6=9E=9C=E6=98=BE=E7=A4=BA"=E6=9A=82=E6=97=A0?= =?UTF-8?q?=E6=95=B0=E6=8D=AE"?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 根因分析: 1. adviceTypes 参数曾被序列化为 URL 编码字符串 '1%2C2%2C3%2C6',后端无法解析为 List, 导致 SQL 查询返回空结果。Bug #486 已修复此问题(改为数组格式)。 2. 补充修复:当行未选择医嘱类型时(adviceType='' 或 undefined),parseInt('') 返回 NaN, 导致 adviceTypes=[NaN],所有子查询被跳过。改为传入空字符串,让 refresh 函数根据 searchKey 自动选择跨类型搜索。 3. 增加 catch 块错误日志,避免 API 失败时静默吞掉错误。 Co-Authored-By: Claude Opus 4.7 --- .../views/inpatientDoctor/home/components/adviceBaseList.vue | 3 ++- .../src/views/inpatientDoctor/home/components/order/index.vue | 4 +++- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/openhis-ui-vue3/src/views/inpatientDoctor/home/components/adviceBaseList.vue b/openhis-ui-vue3/src/views/inpatientDoctor/home/components/adviceBaseList.vue index 8bc5c4de9..0b45d8302 100755 --- a/openhis-ui-vue3/src/views/inpatientDoctor/home/components/adviceBaseList.vue +++ b/openhis-ui-vue3/src/views/inpatientDoctor/home/components/adviceBaseList.vue @@ -131,7 +131,8 @@ function getList() { } }); }) - .catch(() => { + .catch((err) => { + console.warn('医嘱基础信息加载失败:', err); adviceBaseList.value = []; }) .finally(() => { 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 177d23461..31d9c894b 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 @@ -952,7 +952,9 @@ function handleChange(value) { // 修复Bug #486:当行没有显式选择医嘱类型时(row?.adviceType为undefined), // 不传categoryCode,让搜索在全药库中进行;只有行已选择类型时才用对应categoryCode过滤 const categoryCode = row?.adviceType !== undefined ? (selectedItem ? selectedItem.categoryCode : '') : ''; - tableRef.refresh(adviceType, categoryCode, value); + // 修复Bug #453:当adviceType为空字符串或NaN时,不传具体类型,让refresh函数根据searchKey决定搜索范围 + const effectiveAdviceType = (adviceType && !isNaN(Number(adviceType))) ? adviceType : ''; + tableRef.refresh(effectiveAdviceType, categoryCode, value); } } }