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 | 330 +++++++++++++++++++++++++++--------------------------- 1 files changed, 165 insertions(+), 165 deletions(-) diff --git a/src/views/ecg/appointment/AppointmentConfirm.vue b/src/views/ecg/appointment/AppointmentConfirm.vue index c456482..4066432 100644 --- a/src/views/ecg/appointment/AppointmentConfirm.vue +++ b/src/views/ecg/appointment/AppointmentConfirm.vue @@ -1,227 +1,223 @@ <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="message.alert('p')"><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" - v-loading="formLoading" - 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> - </div> - <div class="form-row"> - <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" - :label="dict.value" - > - {{ dict.label }} - </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> - </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 getIntDictOptions(DICT_TYPE.ECG_CHECK_TYPE)" - :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�呯敓鏃�" + readonly /> </el-form-item> - <el-form-item label="鎮h�呮墜鏈�" prop="patMobile"> - <el-input v-model="formData.patMobile" placeholder="璇疯緭鍏ユ偅鑰呮墜鏈�" /> + </div> + <div class="form-row"> + <el-form-item label="鎮h�呮�у埆" prop="patGender"> + <el-radio-group v-model="formData.patGender" readonly> + <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-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="鎮h�呯數璇�" prop="patPhone"> + <el-form-item label="鎮h�呮墜鏈�" prop="patMobile"> + <el-input v-model="formData.patMobile" placeholder="璇疯緭鍏ユ偅鑰呮墜鏈�" readonly /> + </el-form-item> + <!-- + <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 label="鐥呭尯浠g爜" prop="patWardCode" readonly> + <el-input v-model="formData.patWardCode" placeholder="璇疯緭鍏ョ梾鍖轰唬鐮�" /> </el-form-item> - <el-form-item label="鎮h�呮墍鍦ㄧ瀹や唬鐮�" prop="patDeptCode"> - <el-input v-model="formData.patDeptCode" placeholder="璇疯緭鍏ユ偅鑰呮墍鍦ㄧ瀹や唬鐮�" /> - </el-form-item> - </div> - <div class="form-row"> - <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> - </div> - <div class="form-row"> - <el-form-item label="鎮h�呮墍鍦ㄧ梾鍖哄悕绉�" prop="patWardDesc"> - <el-input v-model="formData.patWardDesc" placeholder="璇疯緭鍏ユ偅鑰呮墍鍦ㄧ梾鍖哄悕绉�" /> +--> + <el-form-item label="鐥呭尯鍚嶇О" prop="patWardDesc"> + <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 CheckItemPanel from '@/views/ecg/appointment/CheckItemPanel.vue' +import { getCheckTypeName } from '@/utils/checkTypeFormatter' /** 棰勭害纭 琛ㄥ崟 */ defineOptions({ name: 'AppointmentConfirm' }) -const { t } = useI18n() // 鍥介檯鍖� -const message = useMessage() // 娑堟伅寮圭獥 - -const dialogVisible = ref(false) // 寮圭獥鐨勬槸鍚﹀睍绀� -const dialogTitle = ref('') // 寮圭獥鐨勬爣棰� -const formLoading = ref(false) // 琛ㄥ崟鐨勫姞杞戒腑锛�1锛変慨鏀规椂鐨勬暟鎹姞杞斤紱2锛夋彁浜ょ殑鎸夐挳绂佺敤 -const formType = ref('') // 琛ㄥ崟鐨勭被鍨嬶細create - 鏂板锛泆pdate - 淇敼 - -const loading = ref(true) // 鍒楄〃鐨勫姞杞戒腑 -const list = ref<AppointmentVO[]>([]) // 鍒楄〃鐨勬暟鎹� -const total = ref(0) // 鍒楄〃鐨勬�婚〉鏁� const queryParams = reactive({ - pageNo: 1, - pageSize: 1, - patId: undefined + patId: '' }) -const formData = ref({ - patId: undefined, - patName: undefined, +const appointmentVOList = ref<AppointmentVO[]>([]) + +const formData = ref<AppointmentVO>({ + id: 0, + applyNo: '', + episodeId: '', + patSrc: 0, + patId: '', + patName: '', + tolerance: 0, patGender: 1, // 1 鐢� 2 濂� - patBirthday: undefined, - patMobile: undefined, - patPhone: undefined, - patIdentityId: undefined, - patAddr: undefined, - patDeptCode: undefined, - patDeptDesc: undefined, - patWardCode: undefined, - patWardDesc: undefined, - patBedNo: undefined, - bookId: undefined, - bookTime: undefined, - bookDate: new Date().getTime(), - bookTimeslot: 10001015, - bookCheckType: 10 + patBirthday: new Date(), + patMobile: '', + patPhone: '', + patIdentityId: '', + patAddr: '', + patDeptCode: '', + patDeptDesc: '', + patWardCode: '', + patWardDesc: '', + patBedNo: '', + bookTime: new Date(), + bookDate: new Date(), + bookTimeslot: 9301030, + bookCheckType: getCheckTypeName(100), + paid: 0, + bookSeqNum: 0 }) const formRef = ref() // 琛ㄥ崟 Ref const searchBookInfo = async () => { resetForm() - total.value = 0 - list.value = [] - await getList() - if (total.value === 1) { - formData.value = list.value[0] + if (null === queryParams.patId || '' === queryParams.patId.trim()) return + + 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 } - message.notify("璇峰厛棰勭害!") -} -/** 鏌ヨ鍒楄〃 */ -const getList = async () => { - loading.value = true - try { - const data = await AppointmentApi.getAppointmentPage(queryParams) - list.value = data.list - total.value = data.total - } finally { - loading.value = false - } + ElNotification({ + title: '娓╅Θ鎻愮ず', + message: '璇峰厛棰勭害', + type: 'warning' + }) } - -/** 鎵撳紑寮圭獥 */ -const open = async (type: string, id?: number) => { - dialogVisible.value = true - dialogTitle.value = t('action.' + type) - formType.value = type - resetForm() - // 淇敼鏃讹紝璁剧疆鏁版嵁 - if (id) { - formLoading.value = true - try { - formData.value = await AppointmentApi.getAppointment(id) - } finally { - formLoading.value = false - } - } -} -defineExpose({ open }) // 鎻愪緵 open 鏂规硶锛岀敤浜庢墦寮�寮圭獥 /** 閲嶇疆琛ㄥ崟 */ const resetForm = () => { + appointmentVOList.value.length = 0 formData.value = { - patId: undefined, - patName: undefined, + id: 0, + applyNo: '', + episodeId: '', + patSrc: 0, + patId: '', + patName: '', + tolerance: 0, patGender: 1, // 1 鐢� 2 濂� - patBirthday: undefined, - patMobile: undefined, - patPhone: undefined, - patIdentityId: undefined, - patAddr: undefined, - patDeptCode: undefined, - patDeptDesc: undefined, - patWardCode: undefined, - patWardDesc: undefined, - patBedNo: undefined, - bookId: undefined, - bookTime: undefined, - bookDate: new Date().getTime(), - bookTimeslot: 10001015, - bookCheckType: 10 + patBirthday: new Date(), + patMobile: '', + patPhone: '', + patIdentityId: '', + patAddr: '', + patDeptCode: '', + patDeptDesc: '', + patWardCode: '', + patWardDesc: '', + patBedNo: '', + bookTime: new Date(), + bookDate: new Date(), + 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> @@ -234,4 +230,8 @@ .two-column-form .form-row .el-form-item { width: 48%; } + +.el-form-item { + margin-bottom: 5px; +} </style> -- Gitblit v1.9.3