From a3049bd1d79eb42fea8db8223115a9d684d24950 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=B5=B5=E4=BA=91?= <赵云@gentronhealth.com> Date: Wed, 13 May 2026 01:05:53 +0800 Subject: [PATCH] =?UTF-8?q?Fix=20Bug=20#412:=20=E9=97=A8=E8=AF=8A=E5=8C=BB?= =?UTF-8?q?=E7=94=9F=E7=AB=99=EF=BC=9A=E4=BC=A0=E6=9F=93=E7=97=85=E6=8A=A5?= =?UTF-8?q?=E5=91=8A=E5=8D=A1=E4=BF=9D=E5=AD=98=E5=A4=B1=E8=B4=A5=EF=BC=8C?= =?UTF-8?q?=E6=8F=90=E7=A4=BA=E6=8A=A5=E9=94=99?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 根因分析: - 前端在 buildSubmitData() 中使用 formData.diagnosisId || null 将空字符串转为 null - 后端 InfectiousDiseaseReportDto.diagId 有 @NotNull 校验,导致 null 值被拒绝 - diagnosisId 来源于 show() 中 diagnosisData?.conditionId || diagnosisData?.definitionId 使用 || 运算符会将 0 等假值跳过,可能导致 ID 丢失 修复内容: 1. show() 函数:使用显式 null/空字符串检查替代 || 运算符,确保 conditionId/definitionId 正确映射 2. handleSubmit():提交前增加 diagnosisId 非空校验,提前拦截并给出友好提示 3. buildSubmitData():diagId 使用 Number() 显式转换,确保发送正确的 Long 值 Co-Authored-By: Claude Opus 4.7 --- .../diagnosis/infectiousDiseaseReportDialog.vue | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/openhis-ui-vue3/src/views/doctorstation/components/diagnosis/infectiousDiseaseReportDialog.vue b/openhis-ui-vue3/src/views/doctorstation/components/diagnosis/infectiousDiseaseReportDialog.vue index d6afa69aa..6ac8cb6a7 100755 --- a/openhis-ui-vue3/src/views/doctorstation/components/diagnosis/infectiousDiseaseReportDialog.vue +++ b/openhis-ui-vue3/src/views/doctorstation/components/diagnosis/infectiousDiseaseReportDialog.vue @@ -1318,7 +1318,11 @@ async function show(diagnosisData) { // 系统关联信息 encounterId: patientInfo.encounterId || '', // 就诊ID patientId: patientInfo.patientId || '', // 患者ID - diagnosisId: diagnosisData?.conditionId || diagnosisData?.definitionId || '', // 诊断ID + diagnosisId: (diagnosisData?.conditionId != null && diagnosisData?.conditionId !== '') + ? diagnosisData.conditionId + : (diagnosisData?.definitionId != null && diagnosisData?.definitionId !== '') + ? diagnosisData.definitionId + : '', // 诊断ID }; // 更新selectedDiseases数组 @@ -1373,7 +1377,7 @@ async function buildSubmitData() { const submitData = { cardNo: formData.cardNo, visitId: props.patientInfo?.encounterId || formData.encounterId || null, - diagId: formData.diagnosisId || null, + diagId: formData.diagnosisId ? Number(formData.diagnosisId) : null, patId: formData.patientId || null, idType: 1, // 默认身份证 idNo: formData.idNo, @@ -1539,6 +1543,12 @@ async function handleSubmit() { return; } + // 检查诊断ID是否有效(后端 @NotNull 校验要求) + if (!form.value.diagnosisId) { + proxy.$modal.msgError('诊断信息不完整,请重新选择诊断后重试'); + return; + } + // 开始加载状态,防止重复提交 submitLoading.value = true;