From fca3269349f91fd115c0af6a3fa1b13880bfaa5f Mon Sep 17 00:00:00 2001 From: eight <641137800@qq.com> Date: 星期二, 19 十一月 2024 18:05:21 +0800 Subject: [PATCH] 手动时间段选择 … --- src/views/ecg/appointment/CheckItemPanel.vue | 23 ++++++++++++++++++++--- src/api/ecg/queuesequence/index.ts | 23 +++++++++++++++++++++++ 2 files changed, 43 insertions(+), 3 deletions(-) diff --git a/src/api/ecg/queuesequence/index.ts b/src/api/ecg/queuesequence/index.ts new file mode 100644 index 0000000..0ae1be3 --- /dev/null +++ b/src/api/ecg/queuesequence/index.ts @@ -0,0 +1,23 @@ +import request from '@/config/axios' + +// 鎺掗槦 VO +export interface QueueSequenceVO { + id: number // id + checkType: number // 棰勭害妫�鏌ョ被鍨� + timeSlot: number + queueNo: number + queueVipNo: number + queueFull: number + queueVipFull: number +} + +// 鎺掗槦 API +export const QueueSequenceApi = { + + // 鑾峰緱褰撳ぉ鏈弧鐨刅IP鏃堕棿娈� + getTimeslotByCheckType: async (checkType: number) => { + return await request.get({ url: `/ecg/queue-sequence/get-timeslot-by-checktype`, checkType }) + } + +} + diff --git a/src/views/ecg/appointment/CheckItemPanel.vue b/src/views/ecg/appointment/CheckItemPanel.vue index 8fe2bd4..89423c0 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' @@ -18,6 +19,8 @@ }) const checkTypeStore = useCheckTypeStore(); + +const bookTimeSlotVip = ref<number>() const _confirmAppointment = async () => { if (!isCurrentDay(props.appointment.bookDate)) { @@ -35,7 +38,10 @@ type: 'success', message: 'Delete completed', }) - const data = await AppointmentApi.confirmAppointmentVip(props.appointment) + + const tempAppointment = cloneDeep(props.appointment) + tempAppointment.bookTimeslot = bookTimeSlotVip + const data = await AppointmentApi.confirmAppointmentVip(tempAppointment) ElNotification({ title: '娓╅Θ鎻愮ず', message: data, @@ -64,7 +70,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 QueueSequenceApi.getTimeslotByCheckType(appointment.bookCheckType)" + :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