| | |
| | | <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' |
| | |
| | | } |
| | | }) |
| | | |
| | | const onclick = async (item) => { |
| | | item.onstage = !item.onstage; |
| | | 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> |
| | | |
| | |
| | | <el-card style="width: 200px" shadow="hover" > |
| | | <template #header>{{title}}</template> |
| | | <div v-for="(bedItem, index) in bedList" :key="index"> |
| | | <img v-if="bedItem.onstage" |
| | | src="@/assets/room/doctor.png" |
| | | style="width: 100%" |
| | | @click = onclick(bedItem) |
| | | /> |
| | | <img v-if="!bedItem.onstage" |
| | | src="@/assets/room/doctor-off.jpeg" |
| | | style="width: 100%" |
| | | @click = onclick(bedItem) |
| | | /> |
| | | <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> |
| | |
| | | transform: translateY(-50%); |
| | | } |
| | | } |
| | | |
| | | .deskwarp { |
| | | display: flex; |
| | | flex-direction: column; |
| | | align-items: center; |
| | | } |
| | | |
| | | </style> |