From fb4c89727ccee7c2d60c75ab9e765c8739b27d28 Mon Sep 17 00:00:00 2001 From: eight <641137800@qq.com> Date: 星期三, 20 十一月 2024 10:16:49 +0800 Subject: [PATCH] 手动预约 --- src/views/ecg/appointment/CheckItemPanel.vue | 43 +++++++++++++++++++++++++++++++++---------- 1 files changed, 33 insertions(+), 10 deletions(-) diff --git a/src/views/ecg/appointment/CheckItemPanel.vue b/src/views/ecg/appointment/CheckItemPanel.vue index 8fe2bd4..ea51d69 100644 --- a/src/views/ecg/appointment/CheckItemPanel.vue +++ b/src/views/ecg/appointment/CheckItemPanel.vue @@ -2,9 +2,11 @@ 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"; +import { cloneDeep } from 'lodash-es' defineComponent({ name: 'CheckItemPanel' @@ -19,6 +21,9 @@ const checkTypeStore = useCheckTypeStore(); +const checkTypeTimeslotList = ref<QueueSequenceVO>() +const bookTimeSlotVip = ref<number>() + const _confirmAppointment = async () => { if (!isCurrentDay(props.appointment.bookDate)) { ElMessageBox.confirm( @@ -31,21 +36,22 @@ } ) .then(async () => { - ElMessage({ - type: 'success', - message: 'Delete completed', - }) - const data = await AppointmentApi.confirmAppointmentVip(props.appointment) + const tempAppointment = cloneDeep(props.appointment) + if( undefined !== bookTimeSlotVip.value && null !== bookTimeSlotVip.value ) { + tempAppointment.bookTimeslot = bookTimeSlotVip.value + } + const data = await AppointmentApi.confirmAppointmentVip(tempAppointment) ElNotification({ title: '娓╅Θ鎻愮ず', message: data, - type: 'warning' + type: 'info' }) }) .catch(() => { - ElMessage({ - type: 'info', - message: 'Delete canceled', + ElNotification({ + title: '娓╅Θ鎻愮ず', + message: '纭澶辫触', + type: 'warning' }) }) } else { @@ -58,6 +64,12 @@ } } +onMounted( async () => { + const data = await QueueSequenceApi.getTimeslotByCheckType(props.appointment.bookCheckType) + console.info( data ) + checkTypeTimeslotList.value = data +}) + </script> <template> @@ -65,6 +77,17 @@ <template #header>{{checkTypeStore.getCheckTypeName(appointment.bookCheckType)}}</template> <div>{{formatDate(appointment.bookDate, 'YYYY-MM-DD')}}</div> <div>{{formatTimeslot(appointment.bookTimeslot)}}</div> + + <el-select v-if="!isCurrentDay(appointment.bookDate)" 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