From 4400856b415e254bed5082005bd2ea45285047c5 Mon Sep 17 00:00:00 2001 From: WXL <1785969728@qq.com> Date: 星期二, 24 六月 2025 09:41:44 +0800 Subject: [PATCH] 11 --- src/views/ecg/appointment/AppointmentConfirm.vue | 265 ++++++++++++++++++++++++++++------------------------ 1 files changed, 143 insertions(+), 122 deletions(-) diff --git a/src/views/ecg/appointment/AppointmentConfirm.vue b/src/views/ecg/appointment/AppointmentConfirm.vue index 8ff1564..4066432 100644 --- a/src/views/ecg/appointment/AppointmentConfirm.vue +++ b/src/views/ecg/appointment/AppointmentConfirm.vue @@ -1,26 +1,46 @@ <template> - <el-form-item label="鎮h�呯紪鍙�"> - <el-input v-model="queryParams.patId" placeholder="璇疯緭鍏ユ偅鑰呯紪鍙�" clearable @input="searchBookInfo"/> - </el-form-item> + <div style="display: flex; justify-content: center"> + <el-form-item label="鎮h�呯紪鍙�"> + <el-input + v-model="queryParams.patId" + placeholder="璇疯緭鍏ユ偅鑰呯紪鍙�" + clearable + @input="searchBookInfo" + /> + </el-form-item> + </div> + <div style="color: #ff0000; text-align: center; font-size: 12px; margin-top: 4px"> + <i class="el-icon-warning" style="margin-right: 4px"></i> + 鏀寔韬唤璇佸彿锛岀敵璇峰崟鍙凤紝灏辫瘖娴佹按鍙凤紝浣忛櫌鍙� + </div> - <el-button @click="_confirmAppointment"><Icon icon="ep:refresh" class="mr-5px" /> 鎺掗槦 </el-button> + <div style="display: flex; flex-wrap: wrap; justify-content: center; margin-bottom: 20px"> + <div v-for="(_appointment, index) in appointmentVOList" :key="index"> + <CheckItemPanel :appointment="_appointment" @event_appoint_confirm="onEventAppointConfirm" /> + </div> + </div> - <el-divider/> + <el-divider /> - <el-form - ref="formRef" - :model="formData" - label-width="100px" - class="two-column-form" - > + <el-form ref="formRef" :model="formData" label-width="100px" class="two-column-form"> <div class="form-row"> <el-form-item label="鎮h�呭鍚�" prop="patName"> - <el-input v-model="formData.patName" placeholder="璇疯緭鍏ユ偅鑰呭鍚�" /> + <el-input v-model="formData.patName" placeholder="鎮h�呭鍚�" readonly /> + </el-form-item> + + <el-form-item label="鎮h�呯敓鏃�" prop="patBirthday"> + <el-date-picker + v-model="formData.patBirthday" + type="date" + value-format="x" + placeholder="閫夋嫨鎮h�呯敓鏃�" + readonly + /> </el-form-item> </div> <div class="form-row"> <el-form-item label="鎮h�呮�у埆" prop="patGender"> - <el-radio-group v-model="formData.patGender"> + <el-radio-group v-model="formData.patGender" readonly> <el-radio v-for="dict in getIntDictOptions(DICT_TYPE.SYSTEM_USER_SEX)" :key="dict.value" @@ -30,177 +50,174 @@ </el-radio> </el-radio-group> </el-form-item> - <el-form-item label="棰勭害鏃ユ湡" prop="bookDate"> - <el-date-picker - v-model="formData.bookDate" - type="date" - value-format="x" - placeholder="閫夋嫨棰勭害鏃ユ湡" - /> + + <el-form-item label="鏄惁澶氳��" prop="tolerance"> + <el-tag type="info" v-if="formData.tolerance == 0">鍚�</el-tag> + <el-tag type="danger" v-else>鏄�</el-tag> + <!-- <el-radio-group v-model="formData.tolerance" readonly> + <el-radio + v-for="dict in getIntDictOptions(DICT_TYPE.ecg_tolerance)" + :key="dict.value" + :value="dict.value" + > + {{ dict.label }} + </el-radio> + </el-radio-group> --> </el-form-item> </div> <div class="form-row"> - <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-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> - </div> - <div class="form-row"> - <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-input v-model="formData.patMobile" placeholder="璇疯緭鍏ユ偅鑰呮墜鏈�" readonly /> </el-form-item> - </div> - <div class="form-row"> - <el-form-item label="鎮h�呯數璇�" prop="patPhone"> + <!-- + <el-form-item label="鎮h�呯數璇�" prop="patPhone" readonly> <el-input v-model="formData.patPhone" placeholder="璇疯緭鍏ユ偅鑰呯數璇�" /> </el-form-item> +--> <el-form-item label="韬唤璇佸彿" prop="patIdentityId"> - <el-input v-model="formData.patIdentityId" placeholder="璇疯緭鍏ヨ韩浠借瘉鍙�" /> + <el-input v-model="formData.patIdentityId" placeholder="璇疯緭鍏ヨ韩浠借瘉鍙�" readonly /> </el-form-item> </div> <div class="form-row"> - <el-form-item label="鎮h�呭湴鍧�" prop="patAddr"> - <el-input v-model="formData.patAddr" placeholder="璇疯緭鍏ユ偅鑰呭湴鍧�" /> - </el-form-item> - <el-form-item label="绉戝浠g爜" prop="patDeptCode"> - <el-input v-model="formData.patDeptCode" placeholder="璇疯緭鍏ョ瀹や唬鐮�" /> - </el-form-item> - </div> - <div class="form-row"> - <el-form-item label="绉戝鍚嶇О" prop="patDeptDesc"> - <el-input v-model="formData.patDeptDesc" placeholder="璇疯緭鍏ョ瀹ゅ悕绉�" /> - </el-form-item> - <el-form-item label="鐥呭尯浠g爜" prop="patWardCode"> + <!-- + <el-form-item label="鐥呭尯浠g爜" prop="patWardCode" readonly> <el-input v-model="formData.patWardCode" placeholder="璇疯緭鍏ョ梾鍖轰唬鐮�" /> </el-form-item> - </div> - <div class="form-row"> +--> <el-form-item label="鐥呭尯鍚嶇О" prop="patWardDesc"> - <el-input v-model="formData.patWardDesc" placeholder="璇疯緭鍏ョ梾鍖哄悕绉�" /> + <el-input v-model="formData.patWardDesc" placeholder="璇疯緭鍏ョ梾鍖哄悕绉�" readonly /> </el-form-item> <el-form-item label="搴婂彿" prop="patBedNo"> - <el-input v-model="formData.patBedNo" placeholder="璇疯緭鍏ュ簥鍙�" /> + <el-input v-model="formData.patBedNo" placeholder="璇疯緭鍏ュ簥鍙�" readonly /> + </el-form-item> + </div> + <div class="form-row"> + <!-- + <el-form-item label="绉戝浠g爜" prop="patDeptCode" readonly> + <el-input v-model="formData.patDeptCode" placeholder="璇疯緭鍏ョ瀹や唬鐮�" /> + </el-form-item> + --> + <el-form-item label="绉戝鍚嶇О" prop="patDeptDesc"> + <el-input v-model="formData.patDeptDesc" placeholder="璇疯緭鍏ョ瀹ゅ悕绉�" readonly /> + </el-form-item> + <el-form-item label="鎮h�呭湴鍧�" prop="patAddr"> + <el-input v-model="formData.patAddr" placeholder="璇疯緭鍏ユ偅鑰呭湴鍧�" readonly /> </el-form-item> </div> </el-form> </template> <script setup lang="ts"> -import {DICT_TYPE, getIntDictOptions} from '@/utils/dict' +import { DICT_TYPE, getIntDictOptions } from '@/utils/dict' import { AppointmentApi, AppointmentVO } from '@/api/ecg/appointment' -import {useCheckTypeStore} from "@/store/modules/checkType"; +import CheckItemPanel from '@/views/ecg/appointment/CheckItemPanel.vue' +import { getCheckTypeName } from '@/utils/checkTypeFormatter' /** 棰勭害纭 琛ㄥ崟 */ defineOptions({ name: 'AppointmentConfirm' }) -const checkTypeStore = useCheckTypeStore(); - -const message = useMessage() // 娑堟伅寮圭獥 - const queryParams = reactive({ - patId: undefined + patId: '' }) + +const appointmentVOList = ref<AppointmentVO[]>([]) const formData = ref<AppointmentVO>({ id: 0, - patId: "", - patName: "", + applyNo: '', + episodeId: '', + patSrc: 0, + patId: '', + patName: '', + tolerance: 0, patGender: 1, // 1 鐢� 2 濂� patBirthday: new Date(), - patMobile: "", - patPhone: "", - patIdentityId: "", - patAddr: "", - patDeptCode: "", - patDeptDesc: "", - patWardCode: "", - patWardDesc: "", - patBedNo: "", - bookId: "", + patMobile: '', + patPhone: '', + patIdentityId: '', + patAddr: '', + patDeptCode: '', + patDeptDesc: '', + patWardCode: '', + patWardDesc: '', + patBedNo: '', bookTime: new Date(), bookDate: new Date(), - bookTimeslot: 9000930, - bookCheckType: checkTypeStore.getCheckTypeName(100) + bookTimeslot: 9301030, + bookCheckType: getCheckTypeName(100), + paid: 0, + bookSeqNum: 0 }) const formRef = ref() // 琛ㄥ崟 Ref const searchBookInfo = async () => { resetForm() - if (null === queryParams.patId || "" === queryParams.patId) - return + if (null === queryParams.patId || '' === queryParams.patId.trim()) return - const data = await AppointmentApi.queryAndCreateAppointmentByPatId(queryParams.patId) // 瀵瑰簲鏁版嵁搴撲腑 pat_id - console.info( data ) - if (null !== data) { - formData.value = data + const _patId = queryParams.patId.trim() + console.warn('===' + _patId + '===') + + const data = await AppointmentApi.queryAndCreateAppointmentByPatId(_patId) // 瀵瑰簲鏁版嵁搴撲腑 pat_id + console.info(data) + if (null !== data && data.length > 0) { + formData.value = data[0] + appointmentVOList.value = data + console.info(formData.value) return } ElNotification({ title: '娓╅Θ鎻愮ず', - message: "璇峰厛棰勭害", + message: '璇峰厛棰勭害', type: 'warning' }) } -const _confirmAppointment = async () => { - const data = await AppointmentApi.confirmAppointment(formData.value) - ElNotification({ - title: '娓╅Θ鎻愮ず', - message: data, - type: 'warning' - }) -} - /** 閲嶇疆琛ㄥ崟 */ const resetForm = () => { + appointmentVOList.value.length = 0 formData.value = { id: 0, - patId: "", - patName: "", + applyNo: '', + episodeId: '', + patSrc: 0, + patId: '', + patName: '', + tolerance: 0, patGender: 1, // 1 鐢� 2 濂� patBirthday: new Date(), - patMobile: "", - patPhone: "", - patIdentityId: "", - patAddr: "", - patDeptCode: "", - patDeptDesc: "", - patWardCode: "", - patWardDesc: "", - patBedNo: "", - bookId: "", + patMobile: '', + patPhone: '', + patIdentityId: '', + patAddr: '', + patDeptCode: '', + patDeptDesc: '', + patWardCode: '', + patWardDesc: '', + patBedNo: '', bookTime: new Date(), bookDate: new Date(), - bookTimeslot: 9000930, - bookCheckType: 10 + bookTimeslot: 9301030, + bookCheckType: getCheckTypeName(100), + paid: 0, + bookSeqNum: 0 } formRef.value?.resetFields() } + +const onEventAppointConfirm = () => { + /* + if (null !== appointmentVOList.value && appointmentVOList.value.length === 1) { + queryParams.patId = "" + } +*/ + queryParams.patId = '' +} + +/** 鍒濆鍖� **/ +onMounted(() => { + resetForm() +}) </script> <style lang="scss" scoped> @@ -213,4 +230,8 @@ .two-column-form .form-row .el-form-item { width: 48%; } + +.el-form-item { + margin-bottom: 5px; +} </style> -- Gitblit v1.9.3