From 8dfce4d85ea0f2445a65b35e50830460a9e07c9e Mon Sep 17 00:00:00 2001
From: eight <641137800@qq.com>
Date: 星期一, 18 十一月 2024 17:57:46 +0800
Subject: [PATCH] 医生允许坐多个工位

---
 src/views/ecg/doctor/DevInstall.vue                |   15 ++--
 src/views/ecg/room/RoomLoginSelect.vue             |   94 ++++++++++++++++++++++++------
 src/components/RoomBedSelect/src/RoomBedSelect.vue |   36 ++++++++----
 src/store/modules/user.ts                          |    4 
 4 files changed, 108 insertions(+), 41 deletions(-)

diff --git a/src/components/RoomBedSelect/src/RoomBedSelect.vue b/src/components/RoomBedSelect/src/RoomBedSelect.vue
index 79092cc..3a08a56 100644
--- a/src/components/RoomBedSelect/src/RoomBedSelect.vue
+++ b/src/components/RoomBedSelect/src/RoomBedSelect.vue
@@ -1,17 +1,17 @@
 <script lang="ts" setup>
 import { RoomVO } from '@/api/ecg/room'
 import {PropType} from "vue";
-import {useUserStore} from "@/store/modules/user";
-import {DICT_TYPE, getIntDictOptions} from "@/utils/dict";
 import {useCheckTypeStore} from "@/store/modules/checkType";
-const emit = defineEmits(['event-haveseat', 'event-leaveseat'])
+import {UserVO} from "@/store/modules/user";
+
+const emit = defineEmits(['event-haveseat', 'event-leaveseat', 'event-setcurseat'])
 
 defineComponent({
   name: 'RoomBedSelect'
 })
 
-//const  props = defineProps({
-defineProps({
+const  props = defineProps({
+// defineProps({
   title: {
     type: String,
     required: true
@@ -23,12 +23,14 @@
   curBed: {
     type: Object as PropType<RoomVO>,
     required: true
+  },
+  curUser: {
+    type: Object as PropType<UserVO>,
+    required: true
   }
 })
 
 const checkTypeStore = useCheckTypeStore();
-const userStore = useUserStore()
-const curUser = userStore.getUser
 
 const onHaveSeatclick = (newItem: RoomVO) => {
   emit('event-haveseat', newItem)
@@ -36,11 +38,13 @@
 const onLeaveSeatclick = (curItem: RoomVO) => {
   emit('event-leaveseat', curItem)
 }
-
+const onSetCurSeatclick = (curItem: RoomVO) => {
+  emit('event-setcurseat', curItem)
+}
 
 /** 鍒濆鍖� **/
 onMounted(() => {
-    //console.info(props.bedList)
+    console.info(props.bedList)
 })
 
 </script>
@@ -75,9 +79,17 @@
         <el-button v-if="bedItem.docId === null" @click = onHaveSeatclick(bedItem)>
            鍏ュ骇
         </el-button>
-        <el-button v-if="bedItem.docId === curUser.id" @click = onLeaveSeatclick(bedItem)>
-           绂诲骇
-        </el-button>
+        <div v-if="bedItem.docId === curUser.id">
+          <el-button @click = onLeaveSeatclick(bedItem)>
+             绂诲骇
+          </el-button>
+          <span v-if="bedItem.roomId === curBed.roomId && bedItem.bedNo === curBed.bedNo" >
+             褰撳墠
+          </span>
+          <el-button v-else @click = onSetCurSeatclick(bedItem)>
+             璁句负褰撳墠
+          </el-button>
+        </div>
         <el-divider/>
       </div>
     </div>
diff --git a/src/store/modules/user.ts b/src/store/modules/user.ts
index 77443e7..379eb10 100644
--- a/src/store/modules/user.ts
+++ b/src/store/modules/user.ts
@@ -6,7 +6,7 @@
 
 const { wsCache } = useCache()
 
-interface UserVO {
+export interface UserVO {
   id: number
   avatar: string
   nickname: string
@@ -30,7 +30,7 @@
       id: 0,
       avatar: '',
       nickname: '',
-      deptId: 0
+      deptId: 0,
     },
   }),
   getters: {
diff --git a/src/views/ecg/doctor/DevInstall.vue b/src/views/ecg/doctor/DevInstall.vue
index b75e50f..06bbebc 100644
--- a/src/views/ecg/doctor/DevInstall.vue
+++ b/src/views/ecg/doctor/DevInstall.vue
@@ -6,8 +6,9 @@
 import {useUserStore} from "@/store/modules/user";
 import {QueueVO} from "@/api/ecg/queue";
 import {ElNotification} from "element-plus";
+import {useRoomStore} from "@/store/modules/room";
 
-const userStore = useUserStore();
+const roomStore = useRoomStore();
 
 const roomBedVO = ref<RoomBedVO>({
     roomId: null,
@@ -128,12 +129,12 @@
   finishFlag.value = true
   passFlag.value = true
 
-  if (userStore.isSetRoom) {
-    roomBedVO.value.roomId = userStore.room!.roomId
-    roomBedVO.value.roomName = userStore.room!.roomName
-    roomBedVO.value.bedNo = userStore.room!.bedNo
-    roomBedVO.value.checkTypes = userStore.room!.checkTypes
-    roomBedVO.value.opType = userStore.room!.opType
+  if (roomStore.isSetRoom) {
+    roomBedVO.value.roomId = roomStore.room!.roomId
+    roomBedVO.value.roomName = roomStore.room!.roomName
+    roomBedVO.value.bedNo = roomStore.room!.bedNo
+    roomBedVO.value.checkTypes = roomStore.room!.checkTypes
+    roomBedVO.value.opType = roomStore.room!.opType
 
     timerRunFlag = true
     doctorTimer()
diff --git a/src/views/ecg/room/RoomLoginSelect.vue b/src/views/ecg/room/RoomLoginSelect.vue
index b76d0d9..f29fa56 100644
--- a/src/views/ecg/room/RoomLoginSelect.vue
+++ b/src/views/ecg/room/RoomLoginSelect.vue
@@ -2,7 +2,7 @@
   <div style="display: flex; flex-direction: column; align-items: center;">
     <div style="display: flex; flex-wrap: wrap; justify-content: center; margin-bottom: 20px">
       <div class=roomwrap v-for="(value, key) in bedMap" :key="key">
-        <RoomBedSelect :title="key" :bedList="value" :curBed="curSel" @event-haveseat="haveSeat" @event-leaveseat="leaveSeat"/>
+        <RoomBedSelect :title="key" :bedList="value" :curBed="curSel" :curUser='curUser' @event-haveseat="haveSeat" @event-leaveseat="leaveSeat" @event-setcurseat="setCurSeat"/>
       </div>
       <el-empty v-if="isEmptyOpeningBed" description="宸ヤ綅娌℃湁寮�鏀�"/>
     </div>
@@ -66,21 +66,21 @@
 const getList = async () => {
   resetCurSel()
 
-  console.info( "getList before"  )
+  console.info("getList before")
   const data = await RoomApi.getOpeningBedMap()
   bedMap.value = data;
-  console.info( "getList after " + data )
+  console.info("getList after " + data)
 
   isEmptyOpeningBed.value = true
   for (const key in data) {
-      isEmptyOpeningBed.value = false
-      const roomVOArray = data[key] as RoomVO[];
-      roomVOArray.forEach((roomVO) => {
-        if (roomVO.docId === curUser.id) {
-          curSel.value = roomVO
-          roomStore.setRoomInfoAction(curSel.value)
-        }
-      })
+    isEmptyOpeningBed.value = false
+    const roomVOArray = data[key] as RoomVO[];
+    roomVOArray.forEach((roomVO) => {
+      if (roomVO.docId === curUser.id) {
+        curSel.value = roomVO
+        roomStore.setRoomInfoAction(curSel.value)
+      }
+    })
   }
 }
 
@@ -94,19 +94,36 @@
     return
   }
 
+  // curSel.value.opType 0 1 2
+  if (curSel.value.opType === 0) {
+    push({path: "/ecg/doc/routine"})
+  }
+  else if (curSel.value.opType === 1) {
+    push({path: "/ecg/doc/dev-ready"})
+  }
+  else if (curSel.value.opType === 2) {
+    push({path: "/ecg/doc/dev-install"})
+  }
+  else {
+    push({path: route.redirectedFrom?.fullPath})
+  }
+
+/*
   if (isStringEmpty(route.redirectedFrom?.fullPath))
-    push({ path: "/ecg/doctor"})
+    push({ path: "/ecg/doc/dev-ready"})
   else if(route.redirectedFrom?.fullPath === "/roomselect" )
-    push({ path: "/ecg/doctor"})
+    push({ path: "/ecg/doc/dev-ready"})
   else if(route.redirectedFrom?.fullPath === "/ecg/roomselect" )
-    push({ path: "/ecg/doctor"})
+    push({ path: "/ecg/doc/dev-ready"})
   else
     push({ path: route.redirectedFrom?.fullPath})
+*/
 }
 
 const haveSeatConfirm = async (newRoomVO: RoomVO) => {
   if (newRoomVO !== curSel.value) {
     let data;
+/*  淇濈暀杩欏潡閫昏緫
     if (curSel.value.docId !== null) {
       data = await DoctorApi.bedDoctorOff(curSel.value)
       if (data !== 0) {
@@ -118,6 +135,7 @@
         return
       }
     }
+*/
 
     resetCurSel()
     await roomStore.clearRoomInfoAction()
@@ -142,18 +160,34 @@
   }
 
   // curSel.value.opType 0 1 2
-  if (isStringEmpty(route.redirectedFrom?.fullPath)) {
-    push({path: "/ecg/doctor"})
+  if (newRoomVO.opType === 0) {
+    push({path: "/ecg/doc/routine"})
   }
-  else if(route.redirectedFrom?.fullPath === "/roomselect" ) {
-    push({path: "/ecg/doctor"})
+  else if (newRoomVO.opType === 1) {
+    push({path: "/ecg/doc/dev-ready"})
   }
-  else if(route.redirectedFrom?.fullPath === "/ecg/roomselect" ) {
-    push({path: "/ecg/doctor"})
+  else if (newRoomVO.opType === 2) {
+    push({path: "/ecg/doc/dev-install"})
   }
   else {
     push({path: route.redirectedFrom?.fullPath})
   }
+
+/*
+  // curSel.value.opType 0 1 2
+  if (isStringEmpty(route.redirectedFrom?.fullPath)) {
+    push({path: "/ecg/doc/dev-ready"})
+  }
+  else if(route.redirectedFrom?.fullPath === "/roomselect" ) {
+    push({path: "/ecg/doc/dev-ready"})
+  }
+  else if(route.redirectedFrom?.fullPath === "/ecg/roomselect" ) {
+    push({path: "/ecg/doc/dev-ready"})
+  }
+  else {
+    push({path: route.redirectedFrom?.fullPath})
+  }
+*/
 }
 
 const leaveSeatConfirm = async () => {
@@ -204,6 +238,26 @@
   });
 }
 
+// 鍚屾椂鍧愪簡澶氫釜宸ヤ綅鏃讹紝璁惧畾褰撳墠浼氳瘽鐨勫伐浣�
+const setCurSeat = (roomVO: RoomVO) => {
+  roomStore.setRoomInfoAction( roomVO )
+  curSel.value = roomVO
+
+  // curSel.value.opType 0 1 2
+  if (roomVO.opType === 0) {
+    push({path: "/ecg/doc/routine"})
+  }
+  else if (roomVO.opType === 1) {
+    push({path: "/ecg/doc/dev-ready"})
+  }
+  else if (roomVO.opType === 2) {
+    push({path: "/ecg/doc/dev-install"})
+  }
+  else {
+    push({path: route.redirectedFrom?.fullPath})
+  }
+}
+
 const resetCurSel = () => {
     curSel.value.id = null
     curSel.value.roomId = null

--
Gitblit v1.9.3