From a986a8d6fb5e44f7044469f5f420ce0d7b5bf235 Mon Sep 17 00:00:00 2001
From: WXL <wl_5969728@163.com>
Date: 星期三, 26 十一月 2025 11:36:02 +0800
Subject: [PATCH] 11
---
src/views/ecg/doctor/Routine.vue | 134 +++++++++++++++++++++++++++++---------------
1 files changed, 89 insertions(+), 45 deletions(-)
diff --git a/src/views/ecg/doctor/Routine.vue b/src/views/ecg/doctor/Routine.vue
index 3b63189..a5f03fd 100644
--- a/src/views/ecg/doctor/Routine.vue
+++ b/src/views/ecg/doctor/Routine.vue
@@ -1,47 +1,59 @@
<!--甯歌妫�鏌ョ晫闈�-->
<script setup lang="ts">
-import TitlePanel from "@/views/ecg/doctor/components/TitlePanel.vue";
-import QueuePanel from "@/views/ecg/doctor/components/QueuePanel.vue";
-import {DoctorApi, PatientStatisticVO, RoomBedVO} from '@/api/ecg/doctor';
-import {QueueVO} from "@/api/ecg/queue";
-import {ElNotification} from "element-plus";
-import RoutinePanel from "@/views/ecg/doctor/components/RoutinePanel.vue";
-import {useRoomStore} from "@/store/modules/room";
+import TitlePanel from '@/views/ecg/doctor/components/TitlePanel.vue'
+import QueuePanel from '@/views/ecg/doctor/components/QueuePanel.vue'
+import { DoctorApi, PatientStatisticVO, RoomBedVO, } from '@/api/ecg/doctor'
+import { QueueVO } from '@/api/ecg/queue'
+import { ElNotification } from 'element-plus'
+import RoutinePanel from '@/views/ecg/doctor/components/RoutinePanel.vue'
+import { useRoomStore } from '@/store/modules/room'
-const roomStore = useRoomStore();
+const roomStore = useRoomStore()
const roomBedVO: RoomBedVO = {
- roomId: null,
- roomName: null,
- bedNo: null,
- checkTypes: null,
- opType: null
+ roomId: null,
+ roomName: null,
+ bedNo: null,
+ checkTypes: null,
+ opType: null
}
-
+const setappointmentId = ref<string>('');
let onStagePatient: QueueVO = {
- id: 0, patId: "", patName: "", patGender: 0,
- bookTimeslot: 0, bookCheckType: 0, isVip: 0, seqNum: 0, bookSeqNum: 0,
- passed: 0, expired: 0, jumpFlag: 0,
- roomId: 0, roomName: "", bedNo: "", status: 0
+ id: 0,
+ patId: '',
+ patName: '',
+ patGender: 0,
+ bookTimeslot: 0,
+ bookCheckType: 0,
+ isVip: 0,
+ seqNum: 0,
+ bookSeqNum: 0,
+ passed: 0,
+ expired: 0,
+ jumpFlag: 0,
+ roomId: 0,
+ roomName: '',
+ bedNo: '',
+ status: 0
}
const patientStat = ref<PatientStatisticVO>({
- finishedNum: 0,
- readyNum: 0,
- receivedNum: 0,
- passedNum: 0,
- queuingNum: 0
+ finishedNum: 0,
+ readyNum: 0,
+ receivedNum: 0,
+ passedNum: 0,
+ queuingNum: 0
})
-const autoCall = ref<boolean>(false);
+const autoCall = ref<boolean>(false)
const state = ref<boolean>()
const patientList = ref<QueueVO[]>([])
-let timerRunFlag : boolean = false
-const bedControlFlag = ref<boolean>(true);
-const finishFlag = ref<boolean>(true);
-const passFlag = ref<boolean>(true);
+let timerRunFlag: boolean = false
+const bedControlFlag = ref<boolean>(true)
+const finishFlag = ref<boolean>(true)
+const passFlag = ref<boolean>(true)
const finishNextPatient = async () => {
finishFlag.value = true
@@ -52,6 +64,7 @@
// 鐢ㄤ簬瑙e喅 宸︿晶閲嶇疆鍚� 鑾峰彇褰撳墠銆愬氨璇婁腑銆戞偅鑰�
setOnStagePatient(onStagePatient)
+ console.log(onStagePatient, '998')
} finally {
finishFlag.value = false
}
@@ -73,7 +86,7 @@
}
const getOnstagePatient = () => {
- const tempPatient : QueueVO | undefined = patientList.value.find(item => item.status === 30)
+ const tempPatient: QueueVO | undefined = patientList.value.find((item) => item.status === 30)
if (undefined === tempPatient) {
// setOnStagePatient(undefined)
} else if (tempPatient.patId !== onStagePatient.patId) {
@@ -96,10 +109,8 @@
getOnstagePatient()
patientStat.value = await DoctorApi.getPatientStatistic(roomBedVO)
const queueVO2 = await DoctorApi.bedDoctorGet(roomBedVO)
- if (queueVO2.status === 20)
- state.value = true
- else if (queueVO2.status === 30)
- state.value = false
+ if (queueVO2.status === 20) state.value = true
+ else if (queueVO2.status === 30) state.value = false
}
const bedControl = async () => {
@@ -120,8 +131,7 @@
const doctorTimer = () => {
console.log('doctorTimer ...')
initLoad()
- if (timerRunFlag)
- setTimeout(doctorTimer, 5000) // five seconds
+ if (timerRunFlag) setTimeout(doctorTimer, 5000) // five seconds
}
/** 鍒濆鍖� **/
@@ -150,13 +160,30 @@
passFlag.value = false
})
-onUnmounted( () =>{
+onUnmounted(() => {
timerRunFlag = false
})
const onEventRoutine = () => {
- //console.info("onDevRentPanelEvent...")
- onStagePatient.patId = ""
+ //console.info("onDevRentPanelEvent...")
+ onStagePatient = {
+ id: 0,
+ patId: '',
+ patName: '',
+ patGender: 0,
+ bookTimeslot: 0,
+ bookCheckType: 0,
+ isVip: 0,
+ seqNum: 0,
+ bookSeqNum: 0,
+ passed: 0,
+ expired: 0,
+ jumpFlag: 0,
+ roomId: 0,
+ roomName: '',
+ bedNo: '',
+ status: 0
+ }
if (autoCall.value) {
finishNextPatient()
@@ -172,30 +199,47 @@
/** 鎮h�呭彉鏇存搷浣� */
const routimePanelRef = ref()
const setOnStagePatient = (tempPatient: QueueVO | undefined) => {
+ // 瀹夊叏鐨勭┖鍊兼鏌�
+ if (!tempPatient) {
+ console.warn('Received undefined or null patient data');
+ setappointmentId.value = '';
+ return;
+ }
+
+ // 浣跨敤鍙�夐摼閬垮厤 patDetails 涓� undefined 鐨勬儏鍐�
+ const appointmentId = tempPatient.patDetails?.appointmentId;
+ console.log(appointmentId, '9987');
+
+ setappointmentId.value = appointmentId || '';
routimePanelRef.value.setPatient(tempPatient)
}
-
</script>
<template>
<el-container>
<el-header style="background-color: var(--el-color-primary-light-7); font-size: 24px">
- <TitlePanel :titleType=0 :room="roomBedVO" :patientStatistic="patientStat" />
+ <TitlePanel :titleType="0" :room="roomBedVO" :patientStatistic="patientStat" />
</el-header>
- <el-container style="height: 100%;">
+ <el-container style="height: 100%">
<el-main style="border: solid var(--el-color-primary-light-7)">
- <RoutinePanel :room="roomBedVO" ref="routimePanelRef" @event_routine="onEventRoutine"/>
+ <RoutinePanel :room="roomBedVO" :setappointmentId="setappointmentId" ref="routimePanelRef" @event_routine="onEventRoutine" />
</el-main>
<el-aside width="400px" style="border: solid var(--el-color-primary-light-7)">
- <QueuePanel :room="roomBedVO" :queue="patientList" @event_RecallFinish="onEventRecallFinish"/>
+ <QueuePanel
+ :room="roomBedVO"
+ :queue="patientList"
+ @event_RecallFinish="onEventRecallFinish"
+ />
</el-aside>
</el-container>
<el-container class="right-bottom">
<el-checkbox label="鑷姩 " v-model="autoCall" />
<el-button :disabled="finishFlag" type="primary" @click="finishNextPatient">鍙彿</el-button>
<el-button :disabled="passFlag" type="primary" @click="passNextPatient">杩囧彿</el-button>
- <el-button type="primary" @click="callAgain">閲嶅彨</el-button>
- <el-button :disabled="bedControlFlag" type="primary" @click="bedControl">{{state?'鏆傚仠':'鎭㈠'}}</el-button>
+ <el-button type="primary" @click="callAgain">閲嶅彨</el-button>
+ <el-button :disabled="bedControlFlag" type="primary" @click="bedControl">{{
+ state ? '鏆傚仠' : '鎭㈠'
+ }}</el-button>
</el-container>
</el-container>
</template>
--
Gitblit v1.9.3