eight
2024-09-02 a8ed4654962dc8ac13bfd36436b79f25ba2e05de
src/views/ecg/room/RoomStatusSetting.vue
@@ -1,30 +1,90 @@
<template>
  <div style="display: flex; flex-wrap: wrap;">
    <div v-for="(value2, key) in bedMap" :key="key">
    <RoomStatus :title="key" :bedList="value2"/>
  <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>
</template>
<script setup lang="ts">
import {RoomStatus} from "@/components/RoomStatus"
import { RoomApi, RoomVO } from '@/api/ecg/room'
import { RoomApi, RoomVO, MonitorInfo } from '@/api/ecg/room'
import { QueueApi } from '@/api/ecg/queue'
import { getConfigKey } from '@/api/infra/config'
const bedMap = ref<Map<number, RoomVO[]>>() // 列表的数据
defineOptions({ name: 'RoomStatusSetting' })
const bedMap = ref() // 列表的数据
const openingPeriod = ref<string>('')
const monitorInfo = ref<MonitorInfo>({
  queueNum : 0,
  activeQueueNum : 0,
  openingFlag : 0
})
const getOpeningPeriod = async () => {
  const data = await getConfigKey('ecg.openingtime')
  openingPeriod.value = data
}
const getMonitorInfo = async () => {
  const data = await RoomApi.getMonitorInfo()
  monitorInfo.value = data as MonitorInfo
}
/** 查询列表 */
const getList = async () => {
    const data = await RoomApi.getAllBedMap()
    bedMap.value = data as Map<number, RoomVO[]>
    bedMap.value = data as Map<String, RoomVO[]>
}
const startBiz = async () => {
  await RoomApi.startBiz();
  getMonitorInfo()
}
const closeBiz = async () => {
  await RoomApi.closeBiz();
  getMonitorInfo()
}
const resetRoom = async () => {
    await RoomApi.resetRoom();
    getList()
}
const resetSchedule = async () => {
    await QueueApi.resetSchedule();
}
const refresh = () => {
  getList()
  getOpeningPeriod()
  getMonitorInfo()
}
/** 初始化 **/
onMounted(() => {
    getList()
  getList()
  getOpeningPeriod()
  getMonitorInfo()
})
</script>
<style scoped lang="scss">
.wrap {
  margin-right: 20px;
}
</style>