From ebee36ca9a39b59d98da3613804791faa8dd2da6 Mon Sep 17 00:00:00 2001
From: WXL <wl_5969728@163.com>
Date: 星期六, 22 十一月 2025 16:20:52 +0800
Subject: [PATCH] 打印完善
---
src/views/ecg/doctor/components/RoutinePanel.vue | 21 +++++-
src/views/ecg/doctor/Routine.vue | 135 +++++++++++++++++++++++++++++----------------
src/api/ecg/doctor/index.ts | 9 ++
3 files changed, 111 insertions(+), 54 deletions(-)
diff --git a/src/api/ecg/doctor/index.ts b/src/api/ecg/doctor/index.ts
index f41ab61..c936d0f 100644
--- a/src/api/ecg/doctor/index.ts
+++ b/src/api/ecg/doctor/index.ts
@@ -144,6 +144,13 @@
// 鍔犳�ユ偅鑰�
patientJump: async (params: PatientVO) => {
return await request.get({ url: `/ecg/doctor/patient-jump`, params })
- }
+ },
+ // 涓嬭浇
+ yddownload: async (id: number | string) => {
+ return await request.get({ url: `/ecg/template/download/${id}` })
+},
+ sgdownload: async (id: number | string) => {
+ return await request.get({ url: `/ecg/template/downloadesophagus/${id}` })
+}
}
diff --git a/src/views/ecg/doctor/Routine.vue b/src/views/ecg/doctor/Routine.vue
index 671c8d0..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,17 +160,29 @@
passFlag.value = false
})
-onUnmounted( () =>{
+onUnmounted(() => {
timerRunFlag = false
})
const onEventRoutine = () => {
- //console.info("onDevRentPanelEvent...")
+ //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
+ 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) {
@@ -177,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>
diff --git a/src/views/ecg/doctor/components/RoutinePanel.vue b/src/views/ecg/doctor/components/RoutinePanel.vue
index e5d93d0..9b31f4a 100644
--- a/src/views/ecg/doctor/components/RoutinePanel.vue
+++ b/src/views/ecg/doctor/components/RoutinePanel.vue
@@ -39,7 +39,6 @@
placeholder="閫夋嫨瑁呮満鏃堕棿"
/>
</el-form-item>
-
</el-col>
<el-col :span="12">
<el-form-item label="妫�鏌ラ」鐩�" prop="">
@@ -49,8 +48,8 @@
<el-input v-model="formData.remark" placeholder="璇疯緭鍏ュ娉�" />
</el-form-item>
<el-form-item label="鏄惁澶氳��" prop="tolerance">
- <el-tag type="info" v-if="formData.tolerance == 0">鍚�</el-tag>
- <el-tag type="danger" v-else>鏄�</el-tag>
+ <el-tag type="info" v-if="formData.tolerance == 0">鍚�</el-tag>
+ <el-tag type="danger" v-else>鏄�</el-tag>
</el-form-item>
</el-col>
</el-row>
@@ -58,6 +57,8 @@
<el-button @click="submitForm" type="primary" :disabled="formLoading">妫�鏌ュ畬鎴�</el-button>
<el-button @click="cancelInstall" :disabled="formLoading">鏀惧純妫�鏌�</el-button>
<el-button @click="resetForm()">閲� 缃�</el-button>
+ <el-button @click="yddownload()">骞虫澘杩愬姩蹇冪數鍥剧煡鎯呭悓鎰忎功</el-button>
+ <el-button @click="sgdownload()">椋熺蹇冭剰鐢电敓鐞嗚瘖鐤楃煡鎯呭悓鎰忎功</el-button>
<el-button
v-if="needAutoFeeConfirm(formData.checkType)"
@click="feeConfirm"
@@ -151,7 +152,7 @@
import { isStringEmpty } from '@/utils/stringUtil'
import { curDayEnd, curDayStart } from '@/utils/dateUtil'
import { QueueVO } from '@/api/ecg/queue'
-import { RoomBedVO } from '@/api/ecg/doctor'
+import { RoomBedVO, DoctorApi } from '@/api/ecg/doctor'
import { Barcode } from '@/components/Barcode'
import { useCheckTypeStore } from '@/store/modules/checkType'
import { getCheckTypeName, needAutoFeeConfirm } from '../../../../utils/checkTypeFormatter'
@@ -163,6 +164,11 @@
room: {
type: Object as PropType<RoomBedVO>,
required: true
+ },
+ setappointmentId: {
+ type: [String, Number],
+ required: false,
+ default: null
}
})
@@ -259,7 +265,12 @@
}
formRef.value?.resetFields()
}
-
+const yddownload = async () => {
+ await DoctorApi.yddownload(props.setappointmentId)
+}
+const sgdownload = async () => {
+ await DoctorApi.sgdownload(props.setappointmentId)
+}
const getRentInfoByPatId = () => {
const tempPatId = formData.value.patId
resetForm()
--
Gitblit v1.9.3