From f030d8a9607cef32ee41e01d96817c7e47681602 Mon Sep 17 00:00:00 2001 From: WXL <1785969728@qq.com> Date: 星期五, 30 五月 2025 15:18:47 +0800 Subject: [PATCH] 11 --- src/views/ecg/queue/index.vue | 151 ++++++++++++++++++++++++++++++++----------------- 1 files changed, 98 insertions(+), 53 deletions(-) diff --git a/src/views/ecg/queue/index.vue b/src/views/ecg/queue/index.vue index 254e0bd..e8c0f84 100644 --- a/src/views/ecg/queue/index.vue +++ b/src/views/ecg/queue/index.vue @@ -67,6 +67,7 @@ </el-form-item> <el-form-item label="鎺掗槦鐘舵��" prop="status"> <el-select + multiple v-model="queryParams.status" placeholder="璇烽�夋嫨鎺掗槦鐘舵��" clearable @@ -129,32 +130,88 @@ <!-- 鍒楄〃 --> <ContentWrap> <el-table v-loading="loading" :data="list" :stripe="true" :show-overflow-tooltip="true"> + <el-table-column label="鎿嶄綔" align="center" min-width="120px"> + <template #default="scope"> +<!-- <el-button + link + type="primary" + @click="openAppointmentForm('preview', scope.row.patId, scope.row.bookCheckType)" + v-hasPermi="['ecg:appointment:preview']" + > + 鏌ョ湅 + </el-button>--> + <!-- + <el-button + link + type="danger" + @click="handleDelete(scope.row.id)" + v-hasPermi="['ecg:queue:delete']" + > + 鍒犻櫎 + </el-button> + --> + <el-button + link + type="danger" + @click="handleJump(scope.row)" + v-if="scope.row.status === 10" + v-hasPermi="['ecg:queue:jump']" + > + {{scope.row.jumpFlag === 0? "鍔犳��" : "鍙栨秷鍔犳��"}} + </el-button> + <el-button + link + type="danger" + @click="recall(scope.row)" + v-if="scope.row.status === 3 || scope.row.status === 5 || scope.row.status === 7" + v-hasPermi="['ecg:queue:recall']" + > + 鍙洖 + </el-button> + <el-button + link + type="danger" + @click="passWaitingPatient(scope.row)" + v-if="scope.row.status === 10" + v-hasPermi="['ecg:queue:pass']" + > + 杩囧彿 + </el-button> + </template> + </el-table-column> <!-- <el-table-column label="id" align="center" prop="id" />--> + <el-table-column label="灏辫瘖娴佹按鍙�" align="center" prop="episodeId" min-width="110px"/> + <el-table-column label="鐢宠鍙�" align="center" prop="applyNo" min-width="110px"/> <el-table-column label="鎮h�呯紪鍙�" align="center" prop="patId" /> - <el-table-column label="鎮h�呭鍚�" align="center" min-width="120px"> + <el-table-column label="鎮h�呭鍚�" align="center" min-width="160px"> <template #default="scope"> {{scope.row.patName}} ({{genderFormat(scope.row.patGender)}}) + <dict-tag :type="DICT_TYPE.ECG_PAT_SOURCE" :value="scope.row.patDetails?.source" /> </template> </el-table-column> - <el-table-column label="妫�鏌ョ被鍨�" align="center" prop="bookCheckType" > + <el-table-column label="妫�鏌ョ被鍨�" align="center" prop="bookCheckType" min-width="100px"> <template #default="scope"> - {{checkTypeStore.getCheckTypeName(scope.row.bookCheckType)}} + {{getCheckTypeName(scope.row.bookCheckType)}} </template> </el-table-column> - <el-table-column label="鎮h�呰鎯�" align="center" prop="patDetails" /> - <el-table-column label="棰勭害鏃舵" align="center" prop="bookTimeslot" > + <el-table-column label="鎮h�呰鎯�" align="center" prop="patDetails" min-width="300px"> + <template #default="scope"> + <span>{{scope.row.patDetails?.mobile}} {{scope.row.patDetails?.wardDesc}} {{scope.row.patDetails?.bedNo}}</span> + </template> + </el-table-column> + <el-table-column label="棰勭害鏃舵" align="center" prop="bookTimeslot" min-width="100px"> <template #default="scope"> <dict-tag :type="DICT_TYPE.ECG_BOOK_TIMESLOT" :value="scope.row.bookTimeslot" /> </template> </el-table-column> - <el-table-column label="棰勭害鍙�" align="center" prop="bookSeqNum" /> - <el-table-column label="鎺掗槦鍙�" align="center" prop="seqNum" /> - <el-table-column label="VIP" align="center" prop="isVip" /> <el-table-column label="鐘舵��" align="center" prop="status" > <template #default="scope"> <dict-tag :type="DICT_TYPE.ECG_QUEUE_STATUS" :value="scope.row.status" /> </template> </el-table-column> + <el-table-column label="棰勭害鍙�" align="center" prop="bookSeqNum" /> + <el-table-column label="鎺掗槦鍙�" align="center" prop="seqNum" /> + <el-table-column label="VIP" align="center" prop="isVip" /> <el-table-column label="杩囧彿鏍囪" align="center" prop="passed" /> <el-table-column label="杩囨湡鏍囪" align="center" prop="expired" /> <el-table-column label="璇婂缂栧彿" align="center" prop="roomId" /> @@ -167,46 +224,6 @@ :formatter="dateFormatter" width="180px" /> - <el-table-column label="鎿嶄綔" align="center" min-width="120px"> - <template #default="scope"> - <el-button - link - type="primary" - @click="openAppointmentForm('preview', scope.row.patId)" - v-hasPermi="['ecg:appointment:preview']" - > - 鏌ョ湅 - </el-button> -<!-- - <el-button - link - type="danger" - @click="handleDelete(scope.row.id)" - v-hasPermi="['ecg:queue:delete']" - > - 鍒犻櫎 - </el-button> ---> - <el-button - link - type="danger" - @click="handleJump(scope.row)" - v-if="scope.row.status === 10" - v-hasPermi="['ecg:queue:jump']" - > - {{scope.row.jumpFlag === 0? "鍔犳��" : "鍙栨秷鍔犳��"}} - </el-button> - <el-button - link - type="danger" - @click="recall(scope.row)" - v-if="scope.row.status === 5" - v-hasPermi="['ecg:queue:recall']" - > - 鍙洖 - </el-button> - </template> - </el-table-column> </el-table> <!-- 鍒嗛〉 --> <Pagination @@ -233,6 +250,7 @@ import {useCheckTypeStore} from "@/store/modules/checkType"; import AppointmentForm from "@/views/ecg/appointment/AppointmentForm.vue"; import {genderFormat} from "@/utils/stringUtil"; +import {getCheckTypeName} from "../../../utils/checkTypeFormatter"; /** 鎺掗槦 鍒楄〃 */ defineOptions({ name: 'queue' }) @@ -255,7 +273,7 @@ bookTimeslot: undefined, bookCheckType: undefined, seqNum: undefined, - status: undefined, + status: [], passed: undefined, expired: undefined, roomId: undefined, @@ -293,8 +311,8 @@ const openForm = (type: string, id?: number) => { formRef.value.open(type, id) } -const openAppointmentForm = (type: string, patId: string, status: number) => { - formRef.value.openByQueue(type, patId, status) +const openAppointmentForm = (type: string, patId: string, checkType: number) => { + formRef.value.openByQueue(type, patId, checkType) } /** 鍒犻櫎鎸夐挳鎿嶄綔 */ @@ -325,15 +343,37 @@ } catch {} } +const passWaitingPatient = async (item: QueueVO) => { + const patientVO: PatientVO = { + patId: item.patId, + checkType: item.bookCheckType, + } + + const data = await DoctorApi.passWaitingPatient(patientVO); + message.info(data) + // 鍒锋柊鍒楄〃 + await getList() +} + const recall = async (item: QueueVO) => { const patientVO: PatientVO = { roomId: item.roomId, bedNo: item.bedNo, patId: item.patId, - jumpFlag: 0 + checkType: item.bookCheckType, + //jumpFlag: 0, + roomId_operator: item.roomId, // 闃熷垪鐣岄潰 鍙洖鎿嶄綔鏃� 淇濇寔鍘熸潵鐨勫伐浣� + bedNo_operator: item.bedNo, // 闃熷垪鐣岄潰 鍙洖鎿嶄綔鏃� 淇濇寔鍘熸潵鐨勫伐浣� } - const data = await DoctorApi.recallPatient(patientVO); + let data = "" + if (item.status === 3) // 鎺掗槦涓� 鎮h�� 杩囧彿 + data = await DoctorApi.recallPassWaitingPatient(patientVO); + else if (item.status === 5) // 甯歌銆侀鐢� 杩囧彿 + data = await DoctorApi.recallPatient(patientVO); + else if (item.status === 7) + data = await DoctorApi.recallInstallPatient(patientVO); + message.info(data) // 鍒锋柊鍒楄〃 await getList() @@ -358,4 +398,9 @@ onMounted(() => { getList() }) + +onActivated(() => { + console.info("queue onActivated...") + handleQuery() +}) </script> -- Gitblit v1.9.3