From 32af4c7211d1bf20a44ba1d96a9c7431f44ecfa8 Mon Sep 17 00:00:00 2001 From: eight <641137800@qq.com> Date: 星期三, 28 八月 2024 14:45:06 +0800 Subject: [PATCH] update --- src/views/ecg/doctor/index.vue | 74 +++++++++++++++++++++++++++++-------- 1 files changed, 58 insertions(+), 16 deletions(-) diff --git a/src/views/ecg/doctor/index.vue b/src/views/ecg/doctor/index.vue index a62554d..53046f0 100644 --- a/src/views/ecg/doctor/index.vue +++ b/src/views/ecg/doctor/index.vue @@ -1,37 +1,78 @@ <script setup lang="ts"> import TitlePanel from "@/views/ecg/doctor/components/TitlePanel.vue"; import QueuePanel from "@/views/ecg/doctor/components/QueuePanel.vue"; -import { DoctorApi, RoomBedVO } from '@/api/ecg/doctor'; +import {DoctorApi, PatientStatisticVO, RoomBedVO} from '@/api/ecg/doctor'; import {useUserStore} from "@/store/modules/user"; -import {queueVO} from "@/api/ecg/queue"; +import {queueApi, queueVO} from "@/api/ecg/queue"; const userStore = useUserStore(); const roomBedVO: RoomBedVO = { - roomId: userStore.room.roomId, - bedNo: userStore.room.bedNo + roomId: userStore.room!.roomId, + bedNo: userStore.room!.bedNo } + +const patientStat = ref<PatientStatisticVO>({ + finishedNum: 0, + readyNum: 0, + passedNum: 0, + queuingNum: 0 +}) + +const state = ref<boolean>() const list = ref<queueVO[]>([]) +const bedControlFlag = ref<boolean>(true); +const finishFlag = ref<boolean>(true); +const passFlag = ref<boolean>(true); + const finishNextPatient = async () => { - const data = await DoctorApi.finishNextPatient(roomBedVO) - list.value = data + finishFlag.value = true + list.value = await DoctorApi.finishNextPatient(roomBedVO) + patientStat.value = await DoctorApi.getPatientStatistic(roomBedVO) + finishFlag.value = false } const passNextPatient = async () => { - const data = await DoctorApi.passNextPatient(roomBedVO) - list.value = data + passFlag.value = true + list.value = await DoctorApi.passNextPatient(roomBedVO) + patientStat.value = await DoctorApi.getPatientStatistic(roomBedVO) + passFlag.value = false } -const getPatientList = async () => { - const data = await DoctorApi.getPatientList(roomBedVO) - list.value = data +const initLoad = async () => { + bedControlFlag.value = true + finishFlag.value = true + passFlag.value = true + list.value = await DoctorApi.getPatientList(roomBedVO) + patientStat.value = await DoctorApi.getPatientStatistic(roomBedVO) + const queueVO2 = await queueApi.bedDoctorGet(roomBedVO) + if (queueVO2.status === 20) + state.value = true + else if (queueVO2.status === 30) + state.value = false + + bedControlFlag.value = false + finishFlag.value = false + passFlag.value = false +} + +const bedControl = async () => { + bedControlFlag.value = true + if (state.value) { + await queueApi.bedDoctorPause(roomBedVO) + state.value = false + } else { + await queueApi.bedDoctorResume(roomBedVO) + state.value = true + } + bedControlFlag.value = false } /** 鍒濆鍖� **/ onMounted(() => { - getPatientList() + initLoad() }) </script> @@ -39,7 +80,7 @@ <template> <el-container> <el-header style="background-color: var(--el-color-primary-light-7); font-size: 24px"> - <TitlePanel room="A208"/> + <TitlePanel :patientStatistic="patientStat" /> </el-header> <el-container> <el-main> @@ -49,9 +90,10 @@ <QueuePanel :queue="list"/> </el-aside> </el-container> - <el-container style="justify-content: center;"> - <el-button type="primary" @click="finishNextPatient">瀹屾垚涓嬩竴浣�</el-button> - <el-button type="primary" @click="passNextPatient">杩囧彿涓嬩竴浣�</el-button> + <el-container style="justify-content: center; margin-top: 30px"> + <el-button :disabled="finishFlag" type="primary" @click="finishNextPatient">鍙彿</el-button> + <el-button :disabled="passFlag" type="primary" @click="passNextPatient">杩囧彿</el-button> + <el-button :disabled="bedControlFlag" type="primary" @click="bedControl">{{state?'鏆傚仠':'鎭㈠'}}</el-button> </el-container> </el-container> </template> -- Gitblit v1.9.3