From e84705f4809b57509b8665f0b5db4fc435e08496 Mon Sep 17 00:00:00 2001
From: eight <641137800@qq.com>
Date: 星期四, 10 十月 2024 16:36:59 +0800
Subject: [PATCH] 工位状态 动态查看

---
 src/components/RoomStatus/src/RoomStatus.vue |   80 ++++++++++++++++++++++++++++++----------
 1 files changed, 60 insertions(+), 20 deletions(-)

diff --git a/src/components/RoomStatus/src/RoomStatus.vue b/src/components/RoomStatus/src/RoomStatus.vue
index a240b8c..417a93b 100644
--- a/src/components/RoomStatus/src/RoomStatus.vue
+++ b/src/components/RoomStatus/src/RoomStatus.vue
@@ -1,7 +1,9 @@
 <script lang="ts" setup>
 import { RoomApi, RoomVO } from '@/api/ecg/room'
+import { QueueApi } from '@/api/ecg/queue'
 import {PropType} from "vue";
-
+import {DICT_TYPE, getIntDictOptions} from "@/utils/dict";
+const emit = defineEmits(['refresh'])
 
 defineComponent({
   name: 'RoomStatus'
@@ -18,10 +20,30 @@
   }
 })
 
-const onclick = async (item) => {
-  item.status = !item.status;
-  await RoomApi.updateRoom(item)
+let mapCheckType: Map<number, string> = new Map();
+
+const openBed = async (item) => {
+    await QueueApi.bedOpen(item)
+    emit('refresh')
 }
+
+const closeBed = async (item) => {
+    await QueueApi.bedClose(item)
+    emit('refresh')
+}
+
+const getCheckTypeList = () => {
+  const data = getIntDictOptions(DICT_TYPE.ECG_CHECK_TYPE)
+  console.info( data )
+  data.forEach((checkTypeItem) => {
+    mapCheckType.set(checkTypeItem.value, checkTypeItem.label)
+  })
+}
+
+/** 鍒濆鍖� **/
+onMounted(() => {
+  getCheckTypeList()
+})
 
 </script>
 
@@ -29,22 +51,33 @@
   <el-card style="width: 200px" shadow="hover" >
     <template #header>{{title}}</template>
     <div v-for="(bedItem, index) in bedList" :key="index">
-    <img v-if="bedItem.status === 0"
-        src="@/assets/room/close.jpg"
-        style="width: 100%"
-         @click = onclick(bedItem)
-    />
-    <img v-else-if="bedItem.status === 10"
-        src="@/assets/room/doctor.png"
-        style="width: 100%"
-         @click = onclick(bedItem)
-    />
-    <img v-else-if="bedItem.status === 20"
-        src="@/assets/room/doctor-off.jpeg"
-        style="width: 100%"
-         @click = onclick(bedItem)
-    />
-      {{bedItem.bedNo}} - {{bedItem.doctor_name}}
+      <div class="deskwarp">
+        <img
+            v-if="bedItem.status === 0"
+            src="@/assets/room/close.jpg"
+            style="width: 100%"
+             @click = openBed(bedItem)
+            alt="宸ヤ綅宸插叧闂�"
+        />
+        <img
+            v-else-if="bedItem.status === 10"
+            src="@/assets/room/open.jpg"
+            style="width: 100%"
+             @click = closeBed(bedItem)
+            alt="宸ヤ綅寮�鏀句腑"
+        />
+        <img v-else-if="bedItem.status === 20 || bedItem.status === 30"
+            src="@/assets/room/doctor.png"
+            style="width: 100%"
+        />
+        {{bedItem.bedNo}} {{bedItem.docName}} {{bedItem.status === 30?"-鏆傚仠":""}}
+        <div v-for="(checkType, subIndex) in bedItem.checkTypes" :key="subIndex">
+          {{mapCheckType.get(checkType)}}
+        </div>
+        <div>
+          {{bedItem.opType === 1?"棰嗙敤":""}}
+        </div>
+      </div>
     </div>
   </el-card>
 </template>
@@ -68,4 +101,11 @@
     transform: translateY(-50%);
   }
 }
+
+.deskwarp {
+  display: flex;
+  flex-direction: column;
+  align-items: center;
+}
+
 </style>

--
Gitblit v1.9.3