<script lang="ts" setup>
|
import { RoomApi, RoomVO } from '@/api/ecg/room'
|
import {PropType} from "vue";
|
import {useUserStore} from "@/store/modules/user";
|
const emit = defineEmits(['haveSeat', 'leaveSeat'])
|
|
defineComponent({
|
name: 'RoomBedSelect'
|
})
|
|
const props = defineProps({
|
title: {
|
type: String,
|
required: true
|
},
|
bedList: {
|
type: Array as PropType<RoomVO[]>,
|
required: true
|
},
|
curBed: {
|
type: Object as PropType<RoomVO>,
|
required: true
|
}
|
})
|
|
const userStore = useUserStore()
|
const curUser = userStore.getUser
|
|
const onHaveSeatclick = (newItem) => {
|
emit('haveSeat', newItem)
|
}
|
const onLeaveSeatclick = (curItem) => {
|
emit('leaveSeat', curItem)
|
}
|
|
/** 初始化 **/
|
onMounted(() => {
|
console.info(props.bedList)
|
})
|
|
</script>
|
|
<template>
|
<el-card style="width: 200px" shadow="hover" >
|
<template #header>{{title}}</template>
|
<div v-for="(bedItem, index) in bedList" :key="index">
|
<div class="deskwarp">
|
<img
|
v-if="curBed.roomId !== bedItem.roomId || curBed.bedNo !== bedItem.bedNo"
|
src="@/assets/room/desk.png"
|
style="width: 100%"
|
/>
|
<img
|
v-else
|
src="@/assets/room/desk-doctor.jpeg"
|
style="width: 100%"
|
/>
|
<div>{{bedItem.bedNo}} {{bedItem.docName}}</div>
|
<el-button v-if="bedItem.docId === null" @click = onHaveSeatclick(bedItem)>
|
入座
|
</el-button>
|
<el-button v-if="bedItem.docId === curUser.id" @click = onLeaveSeatclick(bedItem)>
|
离座
|
</el-button>
|
</div>
|
</div>
|
</el-card>
|
</template>
|
|
<style scoped lang="scss">
|
.card-title {
|
font-size: 14px;
|
font-weight: 600;
|
|
&::before {
|
position: relative;
|
top: 8px;
|
left: -5px;
|
display: inline-block;
|
width: 3px;
|
height: 14px;
|
//background-color: #105cfb;
|
background: var(--el-color-primary);
|
border-radius: 5px;
|
content: '';
|
transform: translateY(-50%);
|
}
|
}
|
|
.deskwarp {
|
display: flex;
|
flex-direction: column;
|
align-items: center;
|
}
|
|
</style>
|