From f030d8a9607cef32ee41e01d96817c7e47681602 Mon Sep 17 00:00:00 2001 From: WXL <1785969728@qq.com> Date: 星期五, 30 五月 2025 15:18:47 +0800 Subject: [PATCH] 11 --- src/views/ecg/appointment/AppointmentForm.vue | 61 +++++++++++++++++++++++++----- 1 files changed, 50 insertions(+), 11 deletions(-) diff --git a/src/views/ecg/appointment/AppointmentForm.vue b/src/views/ecg/appointment/AppointmentForm.vue index 8c68bdf..64a4759 100644 --- a/src/views/ecg/appointment/AppointmentForm.vue +++ b/src/views/ecg/appointment/AppointmentForm.vue @@ -10,7 +10,7 @@ <el-row :gutter="20"> <el-col :span="12"> <el-form-item label="鎮h�呯紪鍙�" prop="patId"> - <el-input v-model="formData.patId" placeholder="璇疯緭鍏ユ偅鑰呯紪鍙�" /> + <el-input v-model="formData.patId" placeholder="璇疯緭鍏ユ偅鑰呯紪鍙�" clearable @input="searchBookInfo"/> </el-form-item> </el-col> <el-col :span="12"> @@ -26,7 +26,7 @@ <el-radio v-for="dict in getIntDictOptions(DICT_TYPE.SYSTEM_USER_SEX)" :key="dict.value" - :label="dict.value" + :value="dict.value" > {{ dict.label }} </el-radio> @@ -65,8 +65,8 @@ </el-row> <el-row :gutter="20"> <el-col :span="12"> - <el-form-item label="棰勭害妫�鏌ョ被鍨�" prop="bookCheckType"> - <el-select v-model="formData.bookCheckType" placeholder="璇烽�夋嫨棰勭害妫�鏌ョ被鍨�"> + <el-form-item label="妫�鏌ョ被鍨�" prop="bookCheckType"> + <el-select v-model="formData.bookCheckType" placeholder="璇烽�夋嫨妫�鏌ョ被鍨�"> <el-option v-for="dict in checkTypeStore.getCheckTypeOptions()" :key="dict.value" @@ -142,7 +142,7 @@ </el-form-item> </el-col> </el-row> - <el-form-item label="宸蹭粯娆炬爣璁�" prop="paid"> + <el-form-item label="浠樻鏍囪" prop="paid"> <el-checkbox v-model="formData.paid" :true-label=1 :false-label=0> 宸蹭粯娆� </el-checkbox> @@ -158,6 +158,7 @@ import {DICT_TYPE, getIntDictOptions} from '@/utils/dict' import { AppointmentApi, AppointmentVO } from '@/api/ecg/appointment' import {useCheckTypeStore} from "@/store/modules/checkType"; +import {getCheckTypeName} from "@/utils/checkTypeFormatter"; /** 棰勭害 琛ㄥ崟 */ defineOptions({ name: 'AppointmentForm' }) @@ -219,10 +220,25 @@ } } } -defineExpose({ open }) // 鎻愪緵 open 鏂规硶锛岀敤浜庢墦寮�寮圭獥 +const openByQueue = async (type: string, patId: string, checkType: number) => { + dialogVisible.value = true + dialogTitle.value = t('action.' + type) + formType.value = type + resetForm() + // 淇敼鏃讹紝璁剧疆鏁版嵁 + if (patId) { + formLoading.value = true + try { + formData.value = await AppointmentApi.getCurAppointmentByPatIdAndCheckType( patId, checkType ) + } finally { + formLoading.value = false + } + } +} +defineExpose({ open, openByQueue }) // 鎻愪緵 open 鏂规硶锛岀敤浜庢墦寮�寮圭獥 /** 鎻愪氦琛ㄥ崟 */ -const emit = defineEmits(['success']) // 瀹氫箟 success 浜嬩欢锛岀敤浜庢搷浣滄垚鍔熷悗鐨勫洖璋� +const emit = defineEmits(['event_appointment_success']) // 瀹氫箟 success 浜嬩欢锛岀敤浜庢搷浣滄垚鍔熷悗鐨勫洖璋� const submitForm = async () => { // 鏍¢獙琛ㄥ崟 await formRef.value.validate() @@ -232,14 +248,16 @@ const data = formData.value as unknown as AppointmentVO if (formType.value === 'create') { await AppointmentApi.createAppointment(data) + // 鍙戦�佹搷浣滄垚鍔熺殑浜嬩欢 + emit('event_appointment_success') message.success(t('common.createSuccess')) - } else { + } else if (formType.value === 'update') { await AppointmentApi.updateAppointment(data) + // 鍙戦�佹搷浣滄垚鍔熺殑浜嬩欢 + emit('event_appointment_success') message.success(t('common.updateSuccess')) } dialogVisible.value = false - // 鍙戦�佹搷浣滄垚鍔熺殑浜嬩欢 - emit('success') } finally { formLoading.value = false } @@ -265,8 +283,29 @@ bookTime: undefined, bookDate: new Date().getTime(), bookTimeslot: 9000930, - bookCheckType: checkTypeStore.getCheckTypeName(100) + bookCheckType: getCheckTypeName(100), + paid: 0, } formRef.value?.resetFields() } + +const searchBookInfo = async () => { + const tmpPatId = formData.value.patId + if (null == tmpPatId || "" === tmpPatId) + return + + const data = await AppointmentApi.queryAppointmentFromHis( tmpPatId ) // 瀵瑰簲鏁版嵁搴撲腑 pat_id + console.info( data ) + if (null !== data) { + formData.value = data + return + } + + ElNotification({ + title: '娓╅Θ鎻愮ず', + message: "娌℃湁寮�鍗曚俊鎭�", + type: 'warning' + }) +} + </script> -- Gitblit v1.9.3