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