From 396fa3839bc63329feab4e2d143a64e944dd106d Mon Sep 17 00:00:00 2001
From: eight <641137800@qq.com>
Date: 星期四, 19 九月 2024 17:15:22 +0800
Subject: [PATCH] 重叫功能 完成
---
src/views/ecg/callingscreen/bigscreen.vue | 50 +++++--------------------
src/api/ecg/call/index.ts | 55 +++++++++++++++++++++++++++
src/views/ecg/doctor/index.vue | 8 ++--
src/api/ecg/doctor/index.ts | 5 ++
4 files changed, 74 insertions(+), 44 deletions(-)
diff --git a/src/api/ecg/call/index.ts b/src/api/ecg/call/index.ts
new file mode 100644
index 0000000..3b0d2fb
--- /dev/null
+++ b/src/api/ecg/call/index.ts
@@ -0,0 +1,55 @@
+import request from '@/config/axios'
+
+// 鍙彿 VO
+export interface CallVO {
+ id: number // id
+ patId: string // 鎮h�呯紪鍙�
+ patName: string // 鎮h�呭鍚�
+ patGender: number // 鎮h�呮�у埆
+ seqNum: number // 鎺掗槦搴忓彿
+ passed: number // 杩囧彿鏍囪
+ expired: number // 棰勭害杩囨湡鏍囪
+ called: number // 鍙彿鐘舵�� 0 鏈挱 1 宸叉挱
+ jumpFlag: number // 鎻掗槦鏍囪
+ roomId: number // 璇婂缂栧彿
+ roomName: string // 璇婂鍚嶇О
+ bedNo: string // 璇婄枟搴婄紪鍙�
+}
+
+// 鍙彿 API
+export const CallApi = {
+ // 鏌ヨ鍙彿鍒嗛〉
+ getCallPage: async (params: any) => {
+ return await request.get({ url: `/ecg/call/page`, params })
+ },
+
+ // 鏌ヨ鍙彿璇︽儏
+ getCall: async (id: number) => {
+ return await request.get({ url: `/ecg/call/get?id=` + id })
+ },
+
+ // 鏂板鍙彿
+ createCall: async (data: CallVO) => {
+ return await request.post({ url: `/ecg/call/create`, data })
+ },
+
+ // 淇敼鍙彿
+ updateCall: async (data: CallVO) => {
+ return await request.put({ url: `/ecg/call/update`, data })
+ },
+
+ // 鍒犻櫎鍙彿
+ deleteCall: async (id: number) => {
+ return await request.delete({ url: `/ecg/call/delete?id=` + id })
+ },
+
+ // 瀵煎嚭鍙彿 Excel
+ exportCall: async (params) => {
+ return await request.download({ url: `/ecg/call/export-excel`, params })
+ },
+
+ // 鑾峰彇涓嬩竴鍙彿
+ getNextCall: async () => {
+ return await request.get({ url: `/ecg/call/next` })
+ }
+}
diff --git a/src/api/ecg/doctor/index.ts b/src/api/ecg/doctor/index.ts
index 4f6e59a..893ad83 100644
--- a/src/api/ecg/doctor/index.ts
+++ b/src/api/ecg/doctor/index.ts
@@ -58,6 +58,11 @@
return await request.get({ url: `/ecg/doctor/pass-next-patient`, params })
},
+ // 閲嶅彨
+ callAgainPatient: async (params: RoomBedVO) => {
+ return await request.get({ url: `/ecg/doctor/call-again`, params })
+ },
+
// 鍙栧垵濮嬫偅鑰呭垪琛�
getPatientList: async (params: RoomBedVO) => {
return await request.get({ url: `/ecg/doctor/get-patient-list`, params })
diff --git a/src/views/ecg/callingscreen/bigscreen.vue b/src/views/ecg/callingscreen/bigscreen.vue
index 7387ef3..a59b1b8 100644
--- a/src/views/ecg/callingscreen/bigscreen.vue
+++ b/src/views/ecg/callingscreen/bigscreen.vue
@@ -1,7 +1,7 @@
<script setup lang="ts">
-import dayjs from 'dayjs'
import {ScreenApi, statusMap, CallingVO} from "@/api/ecg/screen";
+import {CallApi, CallVO} from "@/api/ecg/call";
defineOptions({ name: 'bigscreen' })
@@ -9,9 +9,7 @@
const listWaiting = ref<CallingVO[]>([]) // 鍒楄〃鐨勬暟鎹�
const listPassed = ref<CallingVO[]>([]) //
-let curSpeakPat : CallingVO | undefined = undefined;
-let curSpeakSeqNum : number = 0
-let curWorkDay : Date | undefined = undefined
+let curSpeakPat : CallVO | null = null;
const getList = async () => {
const data = await ScreenApi.getBigScreenData()
@@ -23,7 +21,7 @@
const startScrolling = () => {
setInterval(() => {
getList();
- if ( curSpeakPat === undefined ) {
+ if ( curSpeakPat === null ) {
initiateSpeak()
}
}, 5000); // 姣廥绉掓粴鍔ㄤ竴娆�
@@ -35,35 +33,16 @@
const onSpeachEndEvent = async (event) => {
console.log("Speech ended... " + event.currentTarget.text);
- await ScreenApi.markCalled(curSpeakPat!.patId)
+ curSpeakPat!.called = 1
+ await CallApi.updateCall(curSpeakPat!)
initiateSpeak()
}
-const getNextSpeak = () => {
- if (listReady.value.length === 0) {
- return undefined;
- }
-
- // 澶勭悊姣忓ぉ 鍙嶈浆鐨勬儏鍐�
- if ( curWorkDay === undefined) {
- curSpeakSeqNum = 0;
- curWorkDay = new Date()
- } else if (!isSameDate(dayjs(listReady.value[0].bookDate).toDate(), curWorkDay)) {
- curSpeakSeqNum = 0;
- curWorkDay = dayjs(listReady.value[0].bookDate).toDate()
- }
-
- return listReady.value.find( item => item.status === 30 && item.called === 0 && item.seqNum > curSpeakSeqNum)
-}
-
-const initiateSpeak = () => {
- const queuePat = getNextSpeak()
- if (queuePat !== undefined) {
- curSpeakPat = queuePat
- curSpeakSeqNum = curSpeakPat.seqNum
- speak("璇枫��" + queuePat.patName + "鍒�" + queuePat.roomName + "灏辫瘖");
- } else {
- curSpeakPat = undefined
+const initiateSpeak = async () => {
+ curSpeakPat = await CallApi.getNextCall()
+ console.info( curSpeakPat )
+ if (curSpeakPat !== null) {
+ speak("璇枫��" + curSpeakPat.patName + "鍒�" + curSpeakPat.roomName + "灏辫瘖");
}
}
@@ -78,15 +57,6 @@
speech.onend = onSpeachEndEvent
speechSynthesis.speak(speech)
-}
-
-const isSameDate = ( date1: Date, date2 : Date) => {
- if (date1.getFullYear() === date2.getFullYear()
- && date1.getMonth() === date2.getMonth()
- && date1.getDate() === date2.getDate())
- return true
- else
- return false
}
const nameDesensitize = (patName) => {
diff --git a/src/views/ecg/doctor/index.vue b/src/views/ecg/doctor/index.vue
index 453c753..9dd31e2 100644
--- a/src/views/ecg/doctor/index.vue
+++ b/src/views/ecg/doctor/index.vue
@@ -58,6 +58,10 @@
}
}
+const callAgain = async () => {
+ await DoctorApi.callAgainPatient(roomBedVO)
+}
+
const getOnstagePatient = () => {
const tempPatient : QueueVO | undefined = patientList.value.find(item => item.status === 30)
if (undefined === tempPatient) {
@@ -146,10 +150,6 @@
const devInstallPanelRef = ref()
const setOnStagePatient = (tempPatient: QueueVO | undefined) => {
devInstallPanelRef.value.setPatient(tempPatient)
-}
-
-const callAgain = () => {
-
}
</script>
--
Gitblit v1.9.3