From 8dfce4d85ea0f2445a65b35e50830460a9e07c9e Mon Sep 17 00:00:00 2001 From: eight <641137800@qq.com> Date: 星期一, 18 十一月 2024 17:57:46 +0800 Subject: [PATCH] 医生允许坐多个工位 --- src/views/ecg/doctor/DevInstall.vue | 15 ++-- src/views/ecg/room/RoomLoginSelect.vue | 94 ++++++++++++++++++++++++------ src/components/RoomBedSelect/src/RoomBedSelect.vue | 36 ++++++++---- src/store/modules/user.ts | 4 4 files changed, 108 insertions(+), 41 deletions(-) diff --git a/src/components/RoomBedSelect/src/RoomBedSelect.vue b/src/components/RoomBedSelect/src/RoomBedSelect.vue index 79092cc..3a08a56 100644 --- a/src/components/RoomBedSelect/src/RoomBedSelect.vue +++ b/src/components/RoomBedSelect/src/RoomBedSelect.vue @@ -1,17 +1,17 @@ <script lang="ts" setup> import { RoomVO } from '@/api/ecg/room' import {PropType} from "vue"; -import {useUserStore} from "@/store/modules/user"; -import {DICT_TYPE, getIntDictOptions} from "@/utils/dict"; import {useCheckTypeStore} from "@/store/modules/checkType"; -const emit = defineEmits(['event-haveseat', 'event-leaveseat']) +import {UserVO} from "@/store/modules/user"; + +const emit = defineEmits(['event-haveseat', 'event-leaveseat', 'event-setcurseat']) defineComponent({ name: 'RoomBedSelect' }) -//const props = defineProps({ -defineProps({ +const props = defineProps({ +// defineProps({ title: { type: String, required: true @@ -23,12 +23,14 @@ curBed: { type: Object as PropType<RoomVO>, required: true + }, + curUser: { + type: Object as PropType<UserVO>, + required: true } }) const checkTypeStore = useCheckTypeStore(); -const userStore = useUserStore() -const curUser = userStore.getUser const onHaveSeatclick = (newItem: RoomVO) => { emit('event-haveseat', newItem) @@ -36,11 +38,13 @@ const onLeaveSeatclick = (curItem: RoomVO) => { emit('event-leaveseat', curItem) } - +const onSetCurSeatclick = (curItem: RoomVO) => { + emit('event-setcurseat', curItem) +} /** 鍒濆鍖� **/ onMounted(() => { - //console.info(props.bedList) + console.info(props.bedList) }) </script> @@ -75,9 +79,17 @@ <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 v-if="bedItem.docId === curUser.id"> + <el-button @click = onLeaveSeatclick(bedItem)> + 绂诲骇 + </el-button> + <span v-if="bedItem.roomId === curBed.roomId && bedItem.bedNo === curBed.bedNo" > + 褰撳墠 + </span> + <el-button v-else @click = onSetCurSeatclick(bedItem)> + 璁句负褰撳墠 + </el-button> + </div> <el-divider/> </div> </div> diff --git a/src/store/modules/user.ts b/src/store/modules/user.ts index 77443e7..379eb10 100644 --- a/src/store/modules/user.ts +++ b/src/store/modules/user.ts @@ -6,7 +6,7 @@ const { wsCache } = useCache() -interface UserVO { +export interface UserVO { id: number avatar: string nickname: string @@ -30,7 +30,7 @@ id: 0, avatar: '', nickname: '', - deptId: 0 + deptId: 0, }, }), getters: { diff --git a/src/views/ecg/doctor/DevInstall.vue b/src/views/ecg/doctor/DevInstall.vue index b75e50f..06bbebc 100644 --- a/src/views/ecg/doctor/DevInstall.vue +++ b/src/views/ecg/doctor/DevInstall.vue @@ -6,8 +6,9 @@ import {useUserStore} from "@/store/modules/user"; import {QueueVO} from "@/api/ecg/queue"; import {ElNotification} from "element-plus"; +import {useRoomStore} from "@/store/modules/room"; -const userStore = useUserStore(); +const roomStore = useRoomStore(); const roomBedVO = ref<RoomBedVO>({ roomId: null, @@ -128,12 +129,12 @@ finishFlag.value = true passFlag.value = true - if (userStore.isSetRoom) { - roomBedVO.value.roomId = userStore.room!.roomId - roomBedVO.value.roomName = userStore.room!.roomName - roomBedVO.value.bedNo = userStore.room!.bedNo - roomBedVO.value.checkTypes = userStore.room!.checkTypes - roomBedVO.value.opType = userStore.room!.opType + if (roomStore.isSetRoom) { + roomBedVO.value.roomId = roomStore.room!.roomId + roomBedVO.value.roomName = roomStore.room!.roomName + roomBedVO.value.bedNo = roomStore.room!.bedNo + roomBedVO.value.checkTypes = roomStore.room!.checkTypes + roomBedVO.value.opType = roomStore.room!.opType timerRunFlag = true doctorTimer() diff --git a/src/views/ecg/room/RoomLoginSelect.vue b/src/views/ecg/room/RoomLoginSelect.vue index b76d0d9..f29fa56 100644 --- a/src/views/ecg/room/RoomLoginSelect.vue +++ b/src/views/ecg/room/RoomLoginSelect.vue @@ -2,7 +2,7 @@ <div style="display: flex; flex-direction: column; align-items: center;"> <div style="display: flex; flex-wrap: wrap; justify-content: center; margin-bottom: 20px"> <div class=roomwrap v-for="(value, key) in bedMap" :key="key"> - <RoomBedSelect :title="key" :bedList="value" :curBed="curSel" @event-haveseat="haveSeat" @event-leaveseat="leaveSeat"/> + <RoomBedSelect :title="key" :bedList="value" :curBed="curSel" :curUser='curUser' @event-haveseat="haveSeat" @event-leaveseat="leaveSeat" @event-setcurseat="setCurSeat"/> </div> <el-empty v-if="isEmptyOpeningBed" description="宸ヤ綅娌℃湁寮�鏀�"/> </div> @@ -66,21 +66,21 @@ const getList = async () => { resetCurSel() - console.info( "getList before" ) + console.info("getList before") const data = await RoomApi.getOpeningBedMap() bedMap.value = data; - console.info( "getList after " + data ) + console.info("getList after " + data) isEmptyOpeningBed.value = true for (const key in data) { - isEmptyOpeningBed.value = false - const roomVOArray = data[key] as RoomVO[]; - roomVOArray.forEach((roomVO) => { - if (roomVO.docId === curUser.id) { - curSel.value = roomVO - roomStore.setRoomInfoAction(curSel.value) - } - }) + isEmptyOpeningBed.value = false + const roomVOArray = data[key] as RoomVO[]; + roomVOArray.forEach((roomVO) => { + if (roomVO.docId === curUser.id) { + curSel.value = roomVO + roomStore.setRoomInfoAction(curSel.value) + } + }) } } @@ -94,19 +94,36 @@ return } + // curSel.value.opType 0 1 2 + if (curSel.value.opType === 0) { + push({path: "/ecg/doc/routine"}) + } + else if (curSel.value.opType === 1) { + push({path: "/ecg/doc/dev-ready"}) + } + else if (curSel.value.opType === 2) { + push({path: "/ecg/doc/dev-install"}) + } + else { + push({path: route.redirectedFrom?.fullPath}) + } + +/* if (isStringEmpty(route.redirectedFrom?.fullPath)) - push({ path: "/ecg/doctor"}) + push({ path: "/ecg/doc/dev-ready"}) else if(route.redirectedFrom?.fullPath === "/roomselect" ) - push({ path: "/ecg/doctor"}) + push({ path: "/ecg/doc/dev-ready"}) else if(route.redirectedFrom?.fullPath === "/ecg/roomselect" ) - push({ path: "/ecg/doctor"}) + push({ path: "/ecg/doc/dev-ready"}) else push({ path: route.redirectedFrom?.fullPath}) +*/ } const haveSeatConfirm = async (newRoomVO: RoomVO) => { if (newRoomVO !== curSel.value) { let data; +/* 淇濈暀杩欏潡閫昏緫 if (curSel.value.docId !== null) { data = await DoctorApi.bedDoctorOff(curSel.value) if (data !== 0) { @@ -118,6 +135,7 @@ return } } +*/ resetCurSel() await roomStore.clearRoomInfoAction() @@ -142,18 +160,34 @@ } // curSel.value.opType 0 1 2 - if (isStringEmpty(route.redirectedFrom?.fullPath)) { - push({path: "/ecg/doctor"}) + if (newRoomVO.opType === 0) { + push({path: "/ecg/doc/routine"}) } - else if(route.redirectedFrom?.fullPath === "/roomselect" ) { - push({path: "/ecg/doctor"}) + else if (newRoomVO.opType === 1) { + push({path: "/ecg/doc/dev-ready"}) } - else if(route.redirectedFrom?.fullPath === "/ecg/roomselect" ) { - push({path: "/ecg/doctor"}) + else if (newRoomVO.opType === 2) { + push({path: "/ecg/doc/dev-install"}) } else { push({path: route.redirectedFrom?.fullPath}) } + +/* + // curSel.value.opType 0 1 2 + if (isStringEmpty(route.redirectedFrom?.fullPath)) { + push({path: "/ecg/doc/dev-ready"}) + } + else if(route.redirectedFrom?.fullPath === "/roomselect" ) { + push({path: "/ecg/doc/dev-ready"}) + } + else if(route.redirectedFrom?.fullPath === "/ecg/roomselect" ) { + push({path: "/ecg/doc/dev-ready"}) + } + else { + push({path: route.redirectedFrom?.fullPath}) + } +*/ } const leaveSeatConfirm = async () => { @@ -204,6 +238,26 @@ }); } +// 鍚屾椂鍧愪簡澶氫釜宸ヤ綅鏃讹紝璁惧畾褰撳墠浼氳瘽鐨勫伐浣� +const setCurSeat = (roomVO: RoomVO) => { + roomStore.setRoomInfoAction( roomVO ) + curSel.value = roomVO + + // curSel.value.opType 0 1 2 + if (roomVO.opType === 0) { + push({path: "/ecg/doc/routine"}) + } + else if (roomVO.opType === 1) { + push({path: "/ecg/doc/dev-ready"}) + } + else if (roomVO.opType === 2) { + push({path: "/ecg/doc/dev-install"}) + } + else { + push({path: route.redirectedFrom?.fullPath}) + } +} + const resetCurSel = () => { curSel.value.id = null curSel.value.roomId = null -- Gitblit v1.9.3