Fix Bug #545: 长效诊断标识设置保存就清空 — 根因:handleSaveDiagnosis保存成功后await getList()刷新列表,后端getEncounterDiagnosis接口不返回longTermFlag字段,导致form.value.diagnosisList中该字段变为undefined,下拉框清空;修复:保存前用longTermFlagBackup备份longTermFlag数组,getList()完成后按索引恢复

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
This commit is contained in:
2026-05-18 15:04:21 +08:00
committed by guanyu
parent cf26980d5e
commit 86c49a7933

View File

@@ -636,6 +636,8 @@ 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,
@@ -652,6 +654,12 @@ 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('诊断已保存并按排序号排序');