From 1f985004d964594d809bbb9136e324a537955643 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=B5=B5=E4=BA=91?= <赵云@gentronhealth.com> Date: Wed, 13 May 2026 13:23:16 +0800 Subject: [PATCH] =?UTF-8?q?Fix=20Bug=20#408:=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=E6=98=8E=E7=BB=86=E6=A0=87?= =?UTF-8?q?=E7=AD=BE=E9=A1=B5=E6=98=BE=E7=A4=BA=E6=9A=82=E6=97=A0=E6=95=B0?= =?UTF-8?q?=E6=8D=AE=20-=20=E4=BF=AE=E5=A4=8DhandleRowClick=E4=B8=ADresp.i?= =?UTF-8?q?tems=E8=A2=ABd.data=E8=A6=86=E7=9B=96=E5=90=8E=E4=B8=A2?= =?UTF-8?q?=E5=A4=B1=E7=9A=84=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 根因:后端 getInfo 返回 { data: ExamApply, items: ExamApplyItem[] }, 前端先将 resp 赋值给 d,随后又执行 d = resp.data,导致 d 变成 ExamApply 对象, 后续 d.items 永远为 undefined,明细列表无法加载。 修复:提前保存 resp.items 到 rawItems 变量,后续使用 rawItems 而非 d.items。 Co-Authored-By: Claude Opus 4.7 --- .../components/examination/examinationApplication.vue | 11 +++++++---- 1 file changed, 7 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 2422c4930..62e688825 100755 --- a/openhis-ui-vue3/src/views/doctorstation/components/examination/examinationApplication.vue +++ b/openhis-ui-vue3/src/views/doctorstation/components/examination/examinationApplication.vue @@ -1008,12 +1008,15 @@ function handleRowClick(row) { selectedItems.value = []; activeDetailTab.value = 'applyForm'; request({ url: `/exam/apply/${row.applyNo}`, method: 'get' }).then(async res => { - const d = res.data || res; - if (d.data) Object.assign(form, d.data); - if (d.items && Array.isArray(d.items)) { + const resp = res.data || res; + // 保存 items 在顶层响应中,避免后面 d.data 赋值后丢失 + const rawItems = resp.items; + const d = resp.data || resp; + if (d) Object.assign(form, d); + if (rawItems && Array.isArray(rawItems)) { try { // 为每个项目加载检查方法 - const itemsWithMethods = await Promise.all(d.items.map(async m => { + const itemsWithMethods = await Promise.all(rawItems.map(async m => { const item = { id: m.itemCode, name: m.itemName, price: m.itemFee || 0, quantity: 1,