From 53aab22013a0092f5d3a8ad4758166fb355896c7 Mon Sep 17 00:00:00 2001 From: eight <641137800@qq.com> Date: 星期二, 19 十一月 2024 18:24:55 +0800 Subject: [PATCH] 手动预约时间段 选择 --- src/views/ecg/appointment/CheckItemPanel.vue | 70 +++++++++++++++++++++++++++++++---- 1 files changed, 62 insertions(+), 8 deletions(-) diff --git a/src/views/ecg/appointment/CheckItemPanel.vue b/src/views/ecg/appointment/CheckItemPanel.vue index aff0120..4353077 100644 --- a/src/views/ecg/appointment/CheckItemPanel.vue +++ b/src/views/ecg/appointment/CheckItemPanel.vue @@ -2,9 +2,10 @@ import {defineComponent, PropType} from "vue"; import {useCheckTypeStore} from "@/store/modules/checkType"; import {AppointmentApi, AppointmentVO} from "@/api/ecg/appointment"; -import {dateFormatter2, formatDate} from "@/utils/formatTime"; import {formatTimeslot} from "@/utils/formatter"; import {isCurrentDay} from "@/utils/dateUtil"; +import {QueueSequenceApi, QueueSequenceVO} from "@/api/ecg/queuesequence"; +import {formatDate} from "../../../utils/formatTime"; defineComponent({ name: 'CheckItemPanel' @@ -19,14 +20,56 @@ const checkTypeStore = useCheckTypeStore(); +const checkTypeTimeslotList = ref<QueueSequenceVO>() +const bookTimeSlotVip = ref<number>() + const _confirmAppointment = async () => { - const data = await AppointmentApi.confirmAppointment(props.appointment) - ElNotification({ - title: '娓╅Θ鎻愮ず', - message: data, - type: 'warning' - }) + if (!isCurrentDay(props.appointment.bookDate)) { + ElMessageBox.confirm( + '闈炲綋澶╅绾﹂」锛岀‘瀹氳浠婂ぉ妫�鏌ュ悧锛�', + 'Warning', + { + confirmButtonText: '濂界殑', + cancelButtonText: '涓嶇敤', + type: 'warning', + } + ) + .then(async () => { + ElMessage({ + type: 'success', + message: 'Delete completed', + }) + + const tempAppointment = cloneDeep(props.appointment) + tempAppointment.bookTimeslot = bookTimeSlotVip + const data = await AppointmentApi.confirmAppointmentVip(tempAppointment) + ElNotification({ + title: '娓╅Θ鎻愮ず', + message: data, + type: 'warning' + }) + }) + .catch(() => { + ElMessage({ + type: 'info', + message: 'Delete canceled', + }) + }) + } else { + const data = await AppointmentApi.confirmAppointment(props.appointment) + ElNotification({ + title: '娓╅Θ鎻愮ず', + message: data, + type: 'warning' + }) + } } + +onMounted( async () => { + const data = await QueueSequenceApi.getTimeslotByCheckType(props.appointment.bookCheckType) + console.info( data ) + checkTypeTimeslotList.value = data +}) </script> @@ -34,7 +77,18 @@ <el-card style="width: 200px" shadow="hover" > <template #header>{{checkTypeStore.getCheckTypeName(appointment.bookCheckType)}}</template> <div>{{formatDate(appointment.bookDate, 'YYYY-MM-DD')}}</div> - <div>{{formatTimeslot(appointment.bookTimeslot)}}</div> + + <div v-if="isCurrentDay(appointment.bookDate)">{{formatTimeslot(appointment.bookTimeslot)}}</div> + <el-select v-else v-model="bookTimeSlotVip" placeholder="璇烽�夋嫨棰勭害鏃堕棿娈�"> + <el-option + v-for="item in checkTypeTimeslotList" + :key="item.id" + :label="formatTimeslot(item.timeSlot)" + :value="item.timeSlot" + :disabled="item.queueVipNo === item.queueVipFull" + /> + </el-select> + <el-divider/> <el-button :type="isCurrentDay(appointment.bookDate)?'primary':'warning'" @click="_confirmAppointment"><Icon icon="ep:refresh" class="mr-5px" /> 鎺掗槦 </el-button> </el-card> -- Gitblit v1.9.3