fix(diagnosis): 修复诊断类型字段处理逻辑

- 移除medTypeCode的默认值'11',改为undefined以避免强制设置默认类型
- 在新增诊断时不再预设诊断类型,要求用户主动选择
- 从已保存的数据中获取medTypeCode值而不是使用固定默认值
- 添加诊断类型选择验证,在保存时检查是否所有诊断都选择了类型
- 在完诊前验证诊断信息完整性,包括诊断存在性、类型选择和主诊断设置
- 优化UI显示逻辑,当诊断类型选项未加载完成时显示加载状态提示
- 调整删除按钮显示逻辑,改进弹窗确认交互体验
This commit is contained in:
2026-03-04 15:33:25 +08:00
parent 30ca81090a
commit dc039fcced
5 changed files with 66 additions and 30 deletions

View File

@@ -640,7 +640,38 @@ function handleLeave(encounterId) {
});
}
function handleFinish(encounterId) {
async function handleFinish(encounterId) {
// 完诊前验证诊断信息
try {
const diagnosisRes = await getEncounterDiagnosis(encounterId);
if (diagnosisRes.code === 200) {
const diagnosisList = diagnosisRes.data || [];
// 检查是否有诊断
if (diagnosisList.length === 0) {
proxy.$modal.msgWarning('请先添加诊断信息');
return;
}
// 检查诊断类型是否为空
const emptyMedType = diagnosisList.find(d => !d.medTypeCode);
if (emptyMedType) {
proxy.$modal.msgWarning('请选择诊断类型');
return;
}
// 检查是否有主诊断
if (!diagnosisList.some(d => d.maindiseFlag === 1)) {
proxy.$modal.msgWarning('请至少设置一条主诊断');
return;
}
}
} catch (error) {
console.error('获取诊断信息失败:', error);
proxy.$modal.msgWarning('获取诊断信息失败,请重试');
return;
}
completeEncounter({ encounterId, firstEnum: firstEnum.value }).then((res) => {
if (res.code == 200) {
proxy.$modal.msgSuccess('操作成功');