diff --git a/healthlink-his-ui/src/views/inpatientDoctor/home/components/diagnosis/diagnosis.vue b/healthlink-his-ui/src/views/inpatientDoctor/home/components/diagnosis/diagnosis.vue index 72ae7940a..ff88469d2 100755 --- a/healthlink-his-ui/src/views/inpatientDoctor/home/components/diagnosis/diagnosis.vue +++ b/healthlink-his-ui/src/views/inpatientDoctor/home/components/diagnosis/diagnosis.vue @@ -397,7 +397,7 @@ import {deleteTcmDiagnosis} from '@/views/doctorstation/components/api.js'; import diagnosisdialog from '../diagnosis/diagnosisdialog.vue'; import AddDiagnosisDialog from './addDiagnosisDialog.vue'; import diagnosislist from '../diagnosis/diagnosislist.vue'; -import {patientInfo} from '../../store/patient.js'; + import {ElMessage} from 'element-plus'; // const diagnosisList = ref([]); const allowAdd = ref(false); @@ -472,6 +472,7 @@ function getDetail(encounterId) { if (res.code === 200) { allowAdd.value = res.data ? true : false; console.log('设置 allowAdd =', allowAdd.value, ', 病历数据:', res.data); + } else { allowAdd.value = false; console.warn('获取病历详情失败:', res.msg); } @@ -710,14 +711,40 @@ function getTree() { function handleAddDiagnosis() { console.log('点击新增诊断按钮,allowAdd:', allowAdd.value); - // 检查是否有未填写的空行(名称为空的行),防止不保存一直新增 - const hasEmptyRow = form.value.diagnosisList.some(item => !item.name); - if (hasEmptyRow) { - proxy.$modal.msgWarning('请先完善已有的诊断信息后再新增'); + // 检查当前列表是否已有未保存的诊断,阻止重复新增 + const hasUnsaved = (form.value.diagnosisList || []).some( + (item) => !item.conditionId && !item.encounterDiagnosisId + ); + if (hasUnsaved) { + proxy.$modal.msgWarning('请保存当前诊断'); return; } - addDiagnosisItem(); + // 检查表单ref是否存在 + if (!proxy.$refs.formRef) { + console.error('表单ref不存在'); + // 直接添加诊断,不经过表单验证 + addDiagnosisItem(); + return; + } + + proxy.$refs.formRef.validate((valid, fields) => { + console.log('表单验证结果:', valid, '错误字段:', fields); + if (valid) { + if (!allowAdd.value) { + proxy.$modal.msgWarning('请先填写病历'); + return; + } + addDiagnosisItem(); + } else { + console.warn('表单验证失败:', fields); + // 验证失败时也允许添加(因为是新增空行) + if (allowAdd.value) { + console.log('验证失败但允许添加,强制添加诊断'); + addDiagnosisItem(); + } + } + }); } /**