fix:优化医疗类型处理和时间字段解析逻辑

This commit is contained in:
Jafeng 2026-02-12 10:55:48 +08:00
parent 37b79742f3
commit 4e0218bc27

View File

@ -113,6 +113,35 @@ const showItems = computed(() => {
const formRef = ref(null); const formRef = ref(null);
function normalizeMedicalType(raw) {
const s = String(raw || '').trim();
if (!s) return '';
const lower = s.toLowerCase();
if (lower.includes('preconsultationrecord')) return 'preConsultationRecord';
if (lower.includes('preconsult') || (lower.includes('pre') && lower.includes('consult'))) return 'preConsultationRecord';
if (lower === 'outpatient' || lower === 'out_patient' || lower === 'out-patient') return 'outpatient';
if (lower === 'inhospital' || lower === 'in_hospital' || lower === 'in-hospital' || lower === 'inpatient') return 'inhospital';
if (lower === 'physicalexaminationtemplate' || lower === 'physicalexamination' || lower === 'physical_examination') return 'physicalExaminationTemplate';
if (s === 'outPatient') return 'outpatient';
if (s === 'inHospital') return 'inhospital';
if (s === 'preConsultation') return 'preConsultationRecord';
if (s === 'preConsultationRecord') return 'preConsultationRecord';
if (s === 'physicalExaminationTemplate') return 'physicalExaminationTemplate';
return s;
}
function resolveSortTimeKey() {
const ui = normalizeMedicalType(templateType.value);
// 使 consultationDate
if (ui === 'preConsultationRecord') return 'consultationDate';
const t = temp.value || {};
if (t?.service?.timeTitle) return String(t.service.timeTitle);
if (ui === 'outpatient') return 'visitTime';
if (ui === 'inhospital') return 'inhosDate';
if (ui === 'physicalExaminationTemplate') return 'inspectDate';
return '';
}
function ensureFilesField() { function ensureFilesField() {
if (form.files !== undefined) return; if (form.files !== undefined) return;
if (detail.value && detail.value.files !== undefined) return; if (detail.value && detail.value.files !== undefined) return;
@ -151,7 +180,7 @@ onLoad(async (options) => {
ensureFilesField(); ensureFilesField();
// //
const timeKey = temp.value?.service?.timeTitle || ''; const timeKey = resolveSortTimeKey();
if (timeKey && !form[timeKey]) form[timeKey] = dayjs().format('YYYY-MM-DD'); if (timeKey && !form[timeKey]) form[timeKey] = dayjs().format('YYYY-MM-DD');
} }
@ -237,7 +266,7 @@ async function save() {
} }
// sortTime使 // sortTime使
const sortTimeKey = temp.value?.service?.timeTitle || ''; const sortTimeKey = resolveSortTimeKey();
if (sortTimeKey) { if (sortTimeKey) {
const sortTimeValue = forms.value?.[sortTimeKey]; const sortTimeValue = forms.value?.[sortTimeKey];
if (sortTimeValue && dayjs(sortTimeValue).isValid()) { if (sortTimeValue && dayjs(sortTimeValue).isValid()) {