| <template> | 
|   <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> | 
|   <el-button @click="startBiz" :disabled = "startBizFlag"> 手动开诊 </el-button> | 
|   <el-button @click="resetRoom" :disabled = "resetRoomFlag"> 重置诊室 </el-button> | 
|   <el-button @click="resetSchedule" :disabled="resetScheduleFlag"> 重置定时任务 </el-button> | 
|   <el-button @click="refresh" :disabled="refreshFlag"> 刷新 </el-button> | 
| </template> | 
|   | 
| <script setup lang="ts"> | 
| import {RoomStatus} from "@/components/RoomStatus" | 
| import { RoomApi, RoomVO } from '@/api/ecg/room' | 
| import { QueueApi } from '@/api/ecg/queue' | 
|   | 
| defineOptions({ name: 'RoomStatusSetting' }) | 
|   | 
| const bedMap = ref() // 列表的数据 | 
|   | 
| const startBizFlag = ref<boolean>(false) | 
| const resetRoomFlag = ref<boolean>(false) | 
| const resetScheduleFlag = ref<boolean>(false) | 
| const refreshFlag = ref<boolean>(false) | 
|   | 
| /** 查询列表 */ | 
| const getList = async () => { | 
|     const data = await RoomApi.getAllBedMap() | 
|     bedMap.value = data as Map<String, RoomVO[]> | 
| } | 
|   | 
| const startBiz = async () => { | 
|   startBizFlag.value = true | 
|   await QueueApi.startBiz(); | 
|   startBizFlag.value = false | 
| } | 
|   | 
| const resetRoom = async () => { | 
|   resetRoomFlag.value = true | 
|   await RoomApi.resetRoom(); | 
|   getList() | 
|   resetRoomFlag.value = false | 
| } | 
|   | 
| const resetSchedule = async () => { | 
|   resetScheduleFlag.value = true | 
|   await QueueApi.resetSchedule(); | 
|   resetScheduleFlag.value = false | 
| } | 
|   | 
| const refresh = async () => { | 
|   refreshFlag.value = true | 
|   getList() | 
|   refreshFlag.value = false | 
| } | 
|   | 
| /** 初始化 **/ | 
| onMounted(() => { | 
|     getList() | 
| }) | 
|   | 
| </script> | 
|   | 
| <style scoped lang="scss"> | 
| .wrap { | 
|   margin-right: 20px; | 
| } | 
| </style> |