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

---
 src/views/ecg/room/RoomSetting.vue           |   55 ++++++++++++++++++---------
 src/views/ecg/room/RoomForm.vue              |   10 ++++
 src/components/RoomStatus/src/RoomStatus.vue |   22 +++++++++++
 3 files changed, 68 insertions(+), 19 deletions(-)

diff --git a/src/components/RoomStatus/src/RoomStatus.vue b/src/components/RoomStatus/src/RoomStatus.vue
index 7ec1a71..417a93b 100644
--- a/src/components/RoomStatus/src/RoomStatus.vue
+++ b/src/components/RoomStatus/src/RoomStatus.vue
@@ -2,6 +2,7 @@
 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({
@@ -19,6 +20,8 @@
   }
 })
 
+let mapCheckType: Map<number, string> = new Map();
+
 const openBed = async (item) => {
     await QueueApi.bedOpen(item)
     emit('refresh')
@@ -28,6 +31,19 @@
     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>
 
@@ -55,6 +71,12 @@
             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>
diff --git a/src/views/ecg/room/RoomForm.vue b/src/views/ecg/room/RoomForm.vue
index 6853f74..f7afe68 100644
--- a/src/views/ecg/room/RoomForm.vue
+++ b/src/views/ecg/room/RoomForm.vue
@@ -30,6 +30,13 @@
         </el-checkbox-group>
       </el-form-item>
 
+      <el-form-item label="浣滀笟绫诲瀷" prop="opType">
+        <el-radio-group v-model="formData.opType">
+          <el-radio key="1" :label="0"> 妫�鏌� </el-radio>
+          <el-radio key="0" :label="1"> 棰嗙敤 </el-radio>
+        </el-radio-group>
+      </el-form-item>
+
     </el-form>
     <template #footer>
       <el-button @click="submitForm" type="primary" :disabled="formLoading">纭� 瀹�</el-button>
@@ -57,7 +64,8 @@
   roomName: undefined,
   bedNo: undefined,
   ip: undefined,
-  checkTypes: undefined
+  checkTypes: undefined,
+  opType: undefined
 })
 const formRules = reactive({
   roomId: [{ required: true, message: '璇婂缂栧彿涓嶈兘涓虹┖', trigger: 'blur' }],
diff --git a/src/views/ecg/room/RoomSetting.vue b/src/views/ecg/room/RoomSetting.vue
index f95e1bc..cf36c6e 100644
--- a/src/views/ecg/room/RoomSetting.vue
+++ b/src/views/ecg/room/RoomSetting.vue
@@ -1,19 +1,26 @@
 <template>
-  <div style="display: flex; flex-direction: column; align-items: center;">
-  <div>寮�璇婃椂闂达細{{ openingPeriod }}  鐩戞帶淇℃伅: {{ monitorInfo.openingFlag }} {{ monitorInfo.queueNum }} {{ monitorInfo.activeQueueNum }}</div>
-  <div style="display: flex; flex-wrap: wrap; justify-content: center; margin-bottom: 20px">
-    <div class=wrap v-for="(value, key) in bedMap" :key="key">
-      <RoomStatus :title="key" :bedList="value"  @refresh="getList"/>
-    </div>
-  </div>
-  <div>
-    <el-button @click="startBiz" > 鎵嬪姩寮�璇� </el-button>
-    <el-button @click="closeBiz" > 鎵嬪姩闂瘖 </el-button>
-    <el-button @click="resetRoom" > 閲嶇疆璇婂 </el-button>
-    <el-button @click="resetSchedule" > 閲嶇疆瀹氭椂浠诲姟 </el-button>
-    <el-button @click="refresh" > 鍒锋柊 </el-button>
-  </div>
-  </div>
+  <el-container>
+    <el-main>
+      <div style="display: flex; flex-wrap: wrap; justify-content: center; margin-bottom: 20px">
+        <div class=wrap v-for="(value, key) in bedMap" :key="key">
+          <RoomStatus :title="key" :bedList="value"  @refresh="getList"/>
+        </div>
+      </div>
+      <div style="display: flex; flex-wrap: wrap; justify-content: center; margin-bottom: 20px">
+        <el-button @click="startBiz" > 鎵嬪姩寮�璇� </el-button>
+        <el-button @click="closeBiz" > 鎵嬪姩闂瘖 </el-button>
+        <el-button @click="resetRoom" > 閲嶇疆璇婂 </el-button>
+        <el-button @click="resetSchedule" > 閲嶇疆瀹氭椂浠诲姟 </el-button>
+        <el-button @click="refresh" > 鍒锋柊 </el-button>
+      </div>
+    </el-main>
+    <el-aside width="250px">
+      <div>寮�璇婃椂闂达細{{ openingPeriod }}  {{ monitorInfo.openingFlag }} {{monitorInfo.queueNum}} {{monitorInfo.activeQueueNum}}</div>
+      <div v-for="(value, key) in monitorInfo.checkTypeBedInfo" :key="key">
+        {{ mapCheckType.get(Number(key)) }}  {{ value }}
+      </div>
+    </el-aside>
+  </el-container>
 </template>
 
 <script setup lang="ts">
@@ -21,16 +28,19 @@
 import { RoomApi, RoomVO, MonitorInfo } from '@/api/ecg/room'
 import { QueueApi } from '@/api/ecg/queue'
 import { getConfigKey } from '@/api/infra/config'
+import {DICT_TYPE, getIntDictOptions} from "@/utils/dict";
 
 defineOptions({ name: 'RoomSetting' })
 
 const bedMap = ref() // 鍒楄〃鐨勬暟鎹�
+let mapCheckType: Map<number, string> = new Map();
 
 const openingPeriod = ref<string>('')
 const monitorInfo = ref<MonitorInfo>({
-  queueNum : 0,
-  activeQueueNum : 0,
-  openingFlag : 0
+  queueNum: 0,
+  activeQueueNum: 0,
+  openingFlag: 0,
+  checkTypeBedInfo: undefined
 })
 
 const getOpeningPeriod = async () => {
@@ -74,9 +84,18 @@
   getMonitorInfo()
 }
 
+const getCheckTypeList = () => {
+  const data = getIntDictOptions(DICT_TYPE.ECG_CHECK_TYPE)
+  console.info( data )
+  data.forEach((checkTypeItem) => {
+    mapCheckType.set(checkTypeItem.value, checkTypeItem.label)
+  })
+}
+
 /** 鍒濆鍖� **/
 onMounted(() => {
   getList()
+  getCheckTypeList()
   getOpeningPeriod()
   getMonitorInfo()
 })

--
Gitblit v1.9.3