diff --git a/openhis-ui-vue3/src/views/doctorstation/components/diagnosis/diagnosis.vue b/openhis-ui-vue3/src/views/doctorstation/components/diagnosis/diagnosis.vue index 16112a3e8..ada7ff0a5 100755 --- a/openhis-ui-vue3/src/views/doctorstation/components/diagnosis/diagnosis.vue +++ b/openhis-ui-vue3/src/views/doctorstation/components/diagnosis/diagnosis.vue @@ -354,6 +354,11 @@ async function getList() { if (!item.classification) { item.classification = '西医'; } + // 转换 longTermFlag 为字符串,以匹配 useDict 返回的字典值类型(字符串) + // 避免 el-select 因类型不匹配(整数 1 vs 字符串 "1")导致下拉框清空 + if (item.longTermFlag != null) { + item.longTermFlag = String(item.longTermFlag); + } // 如果ybNo(诊断编码)符合传染病编码格式,添加到selectedDiseases if (item.ybNo && /^(01|02|03)/.test(item.ybNo)) { item.selectedDiseases = [item.ybNo]; @@ -636,8 +641,6 @@ async function handleSaveDiagnosis() { saveLoading.value = true; // 保存前按排序号排序,并转换日期格式为后端期望的格式 yyyy/M/d HH:mm:ss - // 同时保留 longTermFlag 供 getList 刷新后恢复(后端 getEncounterDiagnosis 不返回此字段) - const longTermFlagBackup = form.value.diagnosisList.map(item => item.longTermFlag); const diagnosisChildList = form.value.diagnosisList.map(item => ({ ...item, onsetDate: item.onsetDate ? formatDateStr(item.onsetDate, 'YYYY/M/D HH:mm:ss') : null, @@ -654,12 +657,6 @@ async function handleSaveDiagnosis() { if (res.code === 200) { // 刷新树和列表数据(等待列表数据加载完成,确保获取到reportTypeCode) await getList(); - // 恢复 longTermFlag(后端查询接口不返回此字段,需从本地备份恢复) - form.value.diagnosisList.forEach((item, index) => { - if (longTermFlagBackup[index] !== undefined) { - item.longTermFlag = longTermFlagBackup[index]; - } - }); getTree(); emits('diagnosisSave', false); proxy.$modal.msgSuccess('诊断已保存并按排序号排序');