| | |
| | | <script lang="ts" setup> |
| | | import {BedStatusVO} from "@/views/ecg/room/index"; |
| | | import { RoomApi, RoomVO } from '@/api/ecg/room' |
| | | import { QueueApi } from '@/api/ecg/queue' |
| | | import {PropType} from "vue"; |
| | | import {DICT_TYPE, getIntDictOptions} from "@/utils/dict"; |
| | | import {useCheckTypeStore} from "@/store/modules/checkType"; |
| | | import {getCheckTypeName} from "../../../utils/checkTypeFormatter"; |
| | | const emit = defineEmits(['refresh']) |
| | | |
| | | defineComponent({ |
| | | name: 'RoomStatus' |
| | | }) |
| | | |
| | | defineProps({ |
| | | const props = defineProps({ |
| | | title: { |
| | | type: String, |
| | | required: true |
| | | }, |
| | | doctorNum: { |
| | | type: Number, |
| | | required: true |
| | | }, |
| | | modelValue: { |
| | | type: Array as PropType<BedStatusVO[]>, |
| | | bedList: { |
| | | type: Array as PropType<RoomVO[]>, |
| | | required: true |
| | | } |
| | | }) |
| | | |
| | | const onclick = (item) => { |
| | | console.error(item); |
| | | item.opStatus = !item.opStatus; |
| | | const checkTypeStore = useCheckTypeStore(); |
| | | |
| | | const openBed = async (item) => { |
| | | await QueueApi.bedOpen(item) |
| | | emit('refresh') |
| | | } |
| | | |
| | | const closeBed = async (item) => { |
| | | await QueueApi.bedClose(item) |
| | | emit('refresh') |
| | | } |
| | | |
| | | /** 初始化 **/ |
| | | onMounted(() => { |
| | | }) |
| | | |
| | | </script> |
| | | |
| | | <template> |
| | | <el-card style="width: 180px" shadow="hover" > |
| | | <el-card style="width: 200px" shadow="hover" > |
| | | <template #header>{{title}}</template> |
| | | <div v-for="(bedItem, index) in modelValue" :key="index"> |
| | | <img v-if="bedItem.opStatus" |
| | | src="@/assets/room/doctor.png" |
| | | style="width: 100%" |
| | | @click = onclick(bedItem) |
| | | /> |
| | | <img v-if="!bedItem.opStatus" |
| | | src="@/assets/room/doctor-off.jpeg" |
| | | style="width: 100%" |
| | | @click = onclick(bedItem) |
| | | /> |
| | | <div v-for="(bedItem, index) in bedList" :key="index"> |
| | | <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"> |
| | | {{getCheckTypeName(checkType)}} |
| | | </div> |
| | | <div> |
| | | {{bedItem.opType === 1?"领用":""}} |
| | | {{bedItem.opType === 2?"安装":""}} |
| | | </div> |
| | | <el-divider/> |
| | | </div> |
| | | </div> |
| | | </el-card> |
| | | </template> |
| | |
| | | transform: translateY(-50%); |
| | | } |
| | | } |
| | | |
| | | .deskwarp { |
| | | display: flex; |
| | | flex-direction: column; |
| | | align-items: center; |
| | | } |
| | | |
| | | </style> |