From b10d61337f207fbdbea2c44f4f270d83c845cbf9 Mon Sep 17 00:00:00 2001 From: eight <641137800@qq.com> Date: 星期五, 29 十一月 2024 13:28:06 +0800 Subject: [PATCH] 检查类型 条码显示控制 --- src/views/ecg/appointment/AppointmentForm.vue | 318 ++++++++++++++++++++++++++++++++++------------------ 1 files changed, 205 insertions(+), 113 deletions(-) diff --git a/src/views/ecg/appointment/AppointmentForm.vue b/src/views/ecg/appointment/AppointmentForm.vue index 694fff4..864f5a3 100644 --- a/src/views/ecg/appointment/AppointmentForm.vue +++ b/src/views/ecg/appointment/AppointmentForm.vue @@ -1,100 +1,151 @@ <template> - <Dialog :title="dialogTitle" v-model="dialogVisible"> + <Dialog width="60%" :title="dialogTitle" v-model="dialogVisible"> <el-form - ref="formRef" - :model="formData" - :rules="formRules" - label-width="100px" - v-loading="formLoading" + ref="formRef" + :model="formData" + :rules="formRules" + label-width="100px" + v-loading="formLoading" > - <el-form-item label="鎮h�呯紪鍙�" prop="patId"> - <el-input v-model="formData.patId" placeholder="璇疯緭鍏ユ偅鑰呯紪鍙�" /> - </el-form-item> - <el-form-item label="鎮h�呭鍚�" prop="patName"> - <el-input v-model="formData.patName" placeholder="璇疯緭鍏ユ偅鑰呭鍚�" /> - </el-form-item> - <el-form-item label="鎮h�呮�у埆" prop="patGender"> - <el-radio-group v-model="formData.patGender"> - <el-radio - v-for="dict in getBoolDictOptions(DICT_TYPE.SYSTEM_USER_SEX)" - :key="dict.value" - :label="dict.value" - > - {{ dict.label }} - </el-radio> - </el-radio-group> - </el-form-item> - <el-form-item label="鎮h�呯敓鏃�" prop="patBirthday"> - <el-date-picker - v-model="formData.patBirthday" - type="date" - value-format="x" - placeholder="閫夋嫨鎮h�呯敓鏃�" - /> - </el-form-item> - <el-form-item label="鎮h�呮墜鏈�" prop="patMobile"> - <el-input v-model="formData.patMobile" placeholder="璇疯緭鍏ユ偅鑰呮墜鏈�" /> - </el-form-item> - <el-form-item label="鎮h�呯數璇�" prop="patPhone"> - <el-input v-model="formData.patPhone" placeholder="璇疯緭鍏ユ偅鑰呯數璇�" /> - </el-form-item> - <el-form-item label="韬唤璇佸彿" prop="patIdentityId"> - <el-input v-model="formData.patIdentityId" placeholder="璇疯緭鍏ヨ韩浠借瘉鍙�" /> - </el-form-item> - <el-form-item label="鎮h�呭湴鍧�" prop="patAddr"> - <el-input v-model="formData.patAddr" placeholder="璇疯緭鍏ユ偅鑰呭湴鍧�" /> - </el-form-item> - <el-form-item label="鎮h�呮墍鍦ㄧ瀹や唬鐮�" prop="patDeptCode"> - <el-input v-model="formData.patDeptCode" placeholder="璇疯緭鍏ユ偅鑰呮墍鍦ㄧ瀹や唬鐮�" /> - </el-form-item> - <el-form-item label="鎮h�呮墍鍦ㄧ瀹ゅ悕绉�" prop="patDeptDesc"> - <el-input v-model="formData.patDeptDesc" placeholder="璇疯緭鍏ユ偅鑰呮墍鍦ㄧ瀹ゅ悕绉�" /> - </el-form-item> - <el-form-item label="鎮h�呮墍鍦ㄧ梾鍖轰唬鐮�" prop="patWardCode"> - <el-input v-model="formData.patWardCode" placeholder="璇疯緭鍏ユ偅鑰呮墍鍦ㄧ梾鍖轰唬鐮�" /> - </el-form-item> - <el-form-item label="鎮h�呮墍鍦ㄧ梾鍖哄悕绉�" prop="patWardDesc"> - <el-input v-model="formData.patWardDesc" placeholder="璇疯緭鍏ユ偅鑰呮墍鍦ㄧ梾鍖哄悕绉�" /> - </el-form-item> - <el-form-item label="搴婂彿" prop="patBedNo"> - <el-input v-model="formData.patBedNo" placeholder="璇疯緭鍏ュ簥鍙�" /> - </el-form-item> - <el-form-item label="棰勭害缂栧彿" prop="bookId"> - <el-input v-model="formData.bookId" placeholder="璇疯緭鍏ラ绾︾紪鍙�" /> - </el-form-item> - <el-form-item label="棰勭害妫�鏌ユ椂闂存" prop="bookPeriodStart"> - <el-date-picker - v-model="formData.bookPeriodStart" - type="date" - value-format="x" - placeholder="閫夋嫨棰勭害妫�鏌ユ椂闂存" - /> - </el-form-item> - <el-form-item label="棰勭害妫�鏌ユ椂闂存" prop="bookPeriodEnd"> - <el-date-picker - v-model="formData.bookPeriodEnd" - type="date" - value-format="x" - placeholder="閫夋嫨棰勭害妫�鏌ユ椂闂存" - /> - </el-form-item> - <el-form-item label="棰勭害鍙戠敓鏃堕棿" prop="bookTime"> - <el-date-picker - v-model="formData.bookTime" - type="date" - value-format="x" - placeholder="閫夋嫨棰勭害鍙戠敓鏃堕棿" - /> - </el-form-item> - <el-form-item label="棰勭害妫�鏌ョ被鍨�" prop="bookCheckType"> - <el-select v-model="formData.bookCheckType" placeholder="璇烽�夋嫨棰勭害妫�鏌ョ被鍨�"> - <el-option - v-for="dict in getBoolDictOptions(DICT_TYPE.ECG_CHECK_TYPE)" - :key="dict.value" - :label="dict.label" - :value="dict.value" - /> - </el-select> + <el-row :gutter="20"> + <el-col :span="12"> + <el-form-item label="鎮h�呯紪鍙�" prop="patId"> + <el-input v-model="formData.patId" placeholder="璇疯緭鍏ユ偅鑰呯紪鍙�" clearable @input="searchBookInfo"/> + </el-form-item> + </el-col> + <el-col :span="12"> + <el-form-item label="鎮h�呭鍚�" prop="patName"> + <el-input v-model="formData.patName" placeholder="璇疯緭鍏ユ偅鑰呭鍚�" /> + </el-form-item> + </el-col> + </el-row> + <el-row :gutter="20"> + <el-col :span="12"> + <el-form-item label="鎮h�呮�у埆" prop="patGender"> + <el-radio-group v-model="formData.patGender"> + <el-radio + v-for="dict in getIntDictOptions(DICT_TYPE.SYSTEM_USER_SEX)" + :key="dict.value" + :value="dict.value" + > + {{ dict.label }} + </el-radio> + </el-radio-group> + </el-form-item> + </el-col> + <el-col :span="12"> + <el-form-item label="棰勭害缂栧彿" prop="bookId"> + <el-input v-model="formData.bookId" placeholder="璇疯緭鍏ラ绾︾紪鍙�" /> + </el-form-item> + </el-col> + </el-row> + <el-row :gutter="20"> + <el-col :span="12"> + <el-form-item label="棰勭害鏃ユ湡" prop="bookDate"> + <el-date-picker + v-model="formData.bookDate" + type="date" + value-format="x" + placeholder="閫夋嫨棰勭害鏃ユ湡" + /> + </el-form-item> + </el-col> + <el-col :span="12"> + <el-form-item label="棰勭害鏃堕棿" prop="bookTimeslot"> + <el-select v-model="formData.bookTimeslot" placeholder="璇烽�夋嫨棰勭害鏃堕棿娈�"> + <el-option + v-for="dict in getIntDictOptions(DICT_TYPE.ECG_BOOK_TIMESLOT)" + :key="dict.value" + :label="dict.label" + :value="dict.value" + /> + </el-select> + </el-form-item> + </el-col> + </el-row> + <el-row :gutter="20"> + <el-col :span="12"> + <el-form-item label="妫�鏌ョ被鍨�" prop="bookCheckType"> + <el-select v-model="formData.bookCheckType" placeholder="璇烽�夋嫨妫�鏌ョ被鍨�"> + <el-option + v-for="dict in checkTypeStore.getCheckTypeOptions()" + :key="dict.value" + :label="dict.label" + :value="dict.value" + /> + </el-select> + </el-form-item> + </el-col> + <el-col :span="12"> + <el-form-item label="鎮h�呯敓鏃�" prop="patBirthday"> + <el-date-picker + v-model="formData.patBirthday" + type="date" + value-format="x" + placeholder="閫夋嫨鎮h�呯敓鏃�" + /> + </el-form-item> + </el-col> + </el-row> + <el-row :gutter="20"> + <el-col :span="12"> + <el-form-item label="鎮h�呮墜鏈�" prop="patMobile"> + <el-input v-model="formData.patMobile" placeholder="璇疯緭鍏ユ偅鑰呮墜鏈�" /> + </el-form-item> + </el-col> + <el-col :span="12"> + <el-form-item label="鎮h�呯數璇�" prop="patPhone"> + <el-input v-model="formData.patPhone" placeholder="璇疯緭鍏ユ偅鑰呯數璇�" /> + </el-form-item> + </el-col> + </el-row> + <el-row :gutter="20"> + <el-col :span="12"> + <el-form-item label="韬唤璇佸彿" prop="patIdentityId"> + <el-input v-model="formData.patIdentityId" placeholder="璇疯緭鍏ヨ韩浠借瘉鍙�" /> + </el-form-item> + </el-col> + <el-col :span="12"> + <el-form-item label="鎮h�呭湴鍧�" prop="patAddr"> + <el-input v-model="formData.patAddr" placeholder="璇疯緭鍏ユ偅鑰呭湴鍧�" /> + </el-form-item> + </el-col> + </el-row> + <el-row :gutter="20"> + <el-col :span="12"> + <el-form-item label="绉戝浠g爜" prop="patDeptCode"> + <el-input v-model="formData.patDeptCode" placeholder="璇疯緭鍏ョ瀹や唬鐮�" /> + </el-form-item> + </el-col> + <el-col :span="12"> + <el-form-item label="绉戝鍚嶇О" prop="patDeptDesc"> + <el-input v-model="formData.patDeptDesc" placeholder="璇疯緭鍏ョ瀹ゅ悕绉�" /> + </el-form-item> + </el-col> + </el-row> + <el-row :gutter="20"> + <el-col :span="12"> + <el-form-item label="鐥呭尯浠g爜" prop="patWardCode"> + <el-input v-model="formData.patWardCode" placeholder="璇疯緭鍏ョ梾鍖轰唬鐮�" /> + </el-form-item> + </el-col> + <el-col :span="12"> + <el-form-item label="鐥呭尯鍚嶇О" prop="patWardDesc"> + <el-input v-model="formData.patWardDesc" placeholder="璇疯緭鍏ョ梾鍖哄悕绉�" /> + </el-form-item> + </el-col> + </el-row> + <el-row :gutter="20"> + <el-col :span="12"> + <el-form-item label="搴婂彿" prop="patBedNo"> + <el-input v-model="formData.patBedNo" placeholder="璇疯緭鍏ュ簥鍙�" /> + </el-form-item> + </el-col> + </el-row> + <el-form-item label="浠樻鏍囪" prop="paid"> + <el-checkbox v-model="formData.paid" :true-label=1 :false-label=0> + 宸蹭粯娆� + </el-checkbox> </el-form-item> </el-form> <template #footer> @@ -104,11 +155,14 @@ </Dialog> </template> <script setup lang="ts"> -import { getBoolDictOptions, DICT_TYPE } from '@/utils/dict' +import {DICT_TYPE, getIntDictOptions} from '@/utils/dict' import { AppointmentApi, AppointmentVO } from '@/api/ecg/appointment' +import {useCheckTypeStore} from "@/store/modules/checkType"; /** 棰勭害 琛ㄥ崟 */ defineOptions({ name: 'AppointmentForm' }) + +const checkTypeStore = useCheckTypeStore(); const { t } = useI18n() // 鍥介檯鍖� const message = useMessage() // 娑堟伅寮圭獥 @@ -120,7 +174,7 @@ const formData = ref({ patId: undefined, patName: undefined, - patGender: undefined, + patGender: 1, // 1 鐢� 2 濂� patBirthday: undefined, patMobile: undefined, patPhone: undefined, @@ -132,19 +186,19 @@ patWardDesc: undefined, patBedNo: undefined, bookId: undefined, - bookPeriodStart: undefined, - bookPeriodEnd: undefined, bookTime: undefined, - bookCheckType: undefined + bookDate: new Date().getTime(), + bookTimeslot: 9000930, + bookCheckType: 100, //甯歌妫�鏌� + paid: 0, }) const formRules = reactive({ patId: [{ required: true, message: '鎮h�呯紪鍙蜂笉鑳戒负绌�', trigger: 'blur' }], patName: [{ required: true, message: '鎮h�呭鍚嶄笉鑳戒负绌�', trigger: 'blur' }], patGender: [{ required: true, message: '鎮h�呮�у埆涓嶈兘涓虹┖', trigger: 'blur' }], - bookId: [{ required: true, message: '棰勭害缂栧彿涓嶈兘涓虹┖', trigger: 'blur' }], - bookPeriodStart: [{ required: true, message: '棰勭害妫�鏌ユ椂闂存涓嶈兘涓虹┖', trigger: 'blur' }], - bookPeriodEnd: [{ required: true, message: '棰勭害妫�鏌ユ椂闂存涓嶈兘涓虹┖', trigger: 'blur' }], - bookTime: [{ required: true, message: '棰勭害鍙戠敓鏃堕棿涓嶈兘涓虹┖', trigger: 'blur' }], + // bookId: [{ required: true, message: '棰勭害缂栧彿涓嶈兘涓虹┖', trigger: 'blur' }], + bookDate: [{ required: true, message: '棰勭害鏃ユ湡涓嶈兘涓虹┖', trigger: 'blur' }], + bookTimeslot: [{ required: true, message: '棰勭害妫�鏌ユ椂闂存涓嶈兘涓虹┖', trigger: 'blur' }], bookCheckType: [{ required: true, message: '棰勭害妫�鏌ョ被鍨嬩笉鑳戒负绌�', trigger: 'change' }] }) const formRef = ref() // 琛ㄥ崟 Ref @@ -165,10 +219,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() @@ -178,14 +247,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 } @@ -196,7 +267,7 @@ formData.value = { patId: undefined, patName: undefined, - patGender: undefined, + patGender: 1, // 1 鐢� 2 濂� patBirthday: undefined, patMobile: undefined, patPhone: undefined, @@ -208,11 +279,32 @@ patWardDesc: undefined, patBedNo: undefined, bookId: undefined, - bookPeriodStart: undefined, - bookPeriodEnd: undefined, bookTime: undefined, - bookCheckType: undefined + bookDate: new Date().getTime(), + bookTimeslot: 9000930, + bookCheckType: checkTypeStore.getCheckTypeName(100), + paid: 0, } formRef.value?.resetFields() } -</script> \ No newline at end of file + +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