From d553a4be94d4f6ee162cc353a28b220403909cfc Mon Sep 17 00:00:00 2001
From: yxh <172933527@qq.com>
Date: 星期六, 03 十月 2026 00:58:19 +0800
Subject: [PATCH] ai优化
---
src/views/ecg/queue/index.vue | 236 +++++++++++++++++++---------------------------------------
1 files changed, 79 insertions(+), 157 deletions(-)
diff --git a/src/views/ecg/queue/index.vue b/src/views/ecg/queue/index.vue
index b1d5f8f..6e071dd 100644
--- a/src/views/ecg/queue/index.vue
+++ b/src/views/ecg/queue/index.vue
@@ -1,108 +1,53 @@
<template>
<ContentWrap>
<!-- 鎼滅储宸ヤ綔鏍� -->
- <el-form
- class="-mb-15px"
- :model="queryParams"
- ref="queryFormRef"
- :inline="true"
- label-width="68px"
- >
+ <el-form class="-mb-15px" :model="queryParams" ref="queryFormRef" :inline="true" label-width="68px">
<el-form-item label="鎮h�呯紪鍙�" prop="patId">
- <el-input
- v-model="queryParams.patId"
- placeholder="璇疯緭鍏ユ偅鑰呯紪鍙�"
- clearable
- @keyup.enter="handleQuery"
- class="!w-240px"
- />
+ <el-input v-model="queryParams.patId" placeholder="璇疯緭鍏ユ偅鑰呯紪鍙�" clearable @keyup.enter="handleQuery"
+ class="!w-240px" />
</el-form-item>
<el-form-item label="鎮h�呭鍚�" prop="patName">
- <el-input
- v-model="queryParams.patName"
- placeholder="璇疯緭鍏ユ偅鑰呭鍚�"
- clearable
- @keyup.enter="handleQuery"
- class="!w-240px"
- />
+ <el-input v-model="queryParams.patName" placeholder="璇疯緭鍏ユ偅鑰呭鍚�" clearable @keyup.enter="handleQuery"
+ class="!w-240px" />
</el-form-item>
<el-form-item label="棰勭害鏃舵" prop="bookTimeslot">
- <el-select
- v-model="queryParams.bookTimeslot"
- placeholder="璇疯緭鍏ラ绾︽椂娈�"
- clearable
- class="!w-240px"
- >
- <el-option
- v-for="dict in getIntDictOptions(DICT_TYPE.ECG_BOOK_TIMESLOT)"
- :key="dict.value"
- :label="dict.label"
- :value="dict.value"
- />
+ <el-select v-model="queryParams.bookTimeslot" placeholder="璇疯緭鍏ラ绾︽椂娈�" clearable class="!w-240px">
+ <el-option v-for="dict in getIntDictOptions(DICT_TYPE.ECG_BOOK_TIMESLOT)" :key="dict.value"
+ :label="dict.label" :value="dict.value" />
</el-select>
</el-form-item>
- <el-form-item label="妫�鏌ョ被鍨�" prop="bookCheckType">
- <el-select
- v-model="queryParams.bookCheckType"
- placeholder="璇烽�夋嫨妫�鏌ョ被鍨�"
- clearable
- class="!w-240px"
- >
- <el-option
- v-for="dict in checkTypeStore.getCheckTypeOptions()"
- :key="dict.value"
- :label="dict.label"
- :value="dict.value"
- />
+ <el-form-item label="妫�鏌ラ」鐩�" prop="bookCheckType">
+ <el-select v-model="queryParams.bookCheckType" placeholder="璇烽�夋嫨妫�鏌ラ」鐩�" clearable class="!w-240px">
+ <el-option v-for="dict in checkTypeStore.getCheckTypeOptions()" :key="dict.value" :label="dict.label"
+ :value="dict.value" />
</el-select>
</el-form-item>
<el-form-item label="鎺掗槦搴忓彿" prop="seqNum">
- <el-input
- v-model="queryParams.seqNum"
- placeholder="璇疯緭鍏ユ帓闃熷簭鍙�"
- clearable
- @keyup.enter="handleQuery"
- class="!w-240px"
- />
+ <el-input v-model="queryParams.seqNum" placeholder="璇疯緭鍏ユ帓闃熷簭鍙�" clearable @keyup.enter="handleQuery"
+ class="!w-240px" />
</el-form-item>
<el-form-item label="鎺掗槦鐘舵��" prop="status">
- <el-select
- multiple
- v-model="queryParams.status"
- placeholder="璇烽�夋嫨鎺掗槦鐘舵��"
- clearable
- class="!w-240px"
- >
- <el-option
- v-for="dict in getIntDictOptions(DICT_TYPE.ECG_QUEUE_STATUS)"
- :key="dict.value"
- :label="dict.label"
- :value="dict.value"
- />
+ <el-select multiple v-model="queryParams.status" placeholder="璇烽�夋嫨鎺掗槦鐘舵��" clearable class="!w-240px">
+ <el-option v-for="dict in getIntDictOptions(DICT_TYPE.ECG_QUEUE_STATUS)" :key="dict.value" :label="dict.label"
+ :value="dict.value" />
</el-select>
</el-form-item>
<el-form-item label="璇婂缂栧彿" prop="roomId">
- <el-input
- v-model="queryParams.roomId"
- placeholder="璇疯緭鍏ヨ瘖瀹ょ紪鍙�"
- clearable
- @keyup.enter="handleQuery"
- class="!w-240px"
- />
+ <el-input v-model="queryParams.roomId" placeholder="璇疯緭鍏ヨ瘖瀹ょ紪鍙�" clearable @keyup.enter="handleQuery"
+ class="!w-240px" />
</el-form-item>
<el-form-item label="璇婄枟搴婂彿" prop="bedNo">
- <el-input
- v-model="queryParams.bedNo"
- placeholder="璇疯緭鍏ヨ瘖鐤楀簥鍙�"
- clearable
- @keyup.enter="handleQuery"
- class="!w-240px"
- />
+ <el-input v-model="queryParams.bedNo" placeholder="璇疯緭鍏ヨ瘖鐤楀簥鍙�" clearable @keyup.enter="handleQuery"
+ class="!w-240px" />
</el-form-item>
<el-form-item>
- <el-button @click="handleQuery"><Icon icon="ep:search" class="mr-5px" /> 鎼滅储</el-button>
- <el-button @click="resetQuery"><Icon icon="ep:refresh" class="mr-5px" /> 閲嶇疆</el-button>
-<!--
+ <el-button @click="handleQuery">
+ <Icon icon="ep:search" class="mr-5px" /> 鎼滅储
+ </el-button>
+ <el-button @click="resetQuery">
+ <Icon icon="ep:refresh" class="mr-5px" /> 閲嶇疆
+ </el-button>
+ <!--
<el-button
type="primary"
plain
@@ -112,7 +57,7 @@
<Icon icon="ep:plus" class="mr-5px" /> 鏂板
</el-button>
-->
-<!--
+ <!--
<el-button
type="success"
plain
@@ -132,7 +77,7 @@
<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
+ <!-- <el-button
link
type="primary"
@click="openAppointmentForm('preview', scope.row.patId, scope.row.bookCheckType)"
@@ -150,41 +95,51 @@
鍒犻櫎
</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 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 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 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="id" align="center" prop="id" />-->
+ <el-table-column label="鐢宠鍗曞彿" align="center" prop="applyNo" min-width="110px" />
<el-table-column label="鎺掗槦搴忓彿" align="center" prop="seqNum" />
<el-table-column label="棰勭害鍙�" align="center" prop="bookSeqNum" />
+ <el-table-column label="杩囧彿鏍囪" align="center" prop="passed" />
<el-table-column label="鎮h�呯紪鍙�" align="center" prop="patId" />
+ <el-table-column label="鎮h�呭鍚�" align="center" prop="patName" min-width="90px" /><el-table-column label="妫�鏌ラ」鐩�"
+ align="center" prop="bookCheckType" min-width="100px">
+ <template #default="scope">
+ {{ getCheckTypeName(scope.row.bookCheckType) }}
+ </template>
+ </el-table-column>
+ <el-table-column label="鏉ユ簮" align="center" width="90px">
+ <template #default="scope">
+ <!-- 浼樺厛鐢ㄩ绾﹀崟骞抽摵鍊硷紝鍥為��鍒� patDetails 蹇収 -->
+ <dict-tag :type="DICT_TYPE.ECG_PAT_SOURCE" :value="scope.row.patSrc ?? scope.row.patDetails?.source ?? 0" />
+ </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="status">
+ <template #default="scope">
+ <dict-tag :type="DICT_TYPE.ECG_QUEUE_STATUS" :value="scope.row.status" />
+ </template>
+ </el-table-column>
+ <el-table-column label="VIP" align="center" prop="isVip" />
+ <el-table-column label="灏辫瘖鍙�" align="center" prop="episodeId" min-width="110px" />
<!-- 鏈垪鏍囩鐢便�屽氨璇婂崱鍙枫�嶆敼涓恒�岄棬璇婂彿銆嶏紙缁忕‘璁わ級銆傚師鍥狅紙璇﹁銆婇儴缃叉竻鍗曘��5.1锛夛細
HIS 鍦ㄥ崱鍙锋Ы浣嶄紶绌猴紝medical_card 鍏ㄥ簱 159,116 琛�**鏃犱竴闈炵┖**锛�
瀹炴祴璇ュ垪 99.9% 鏄剧ず鐨勬槸 outpatient_no锛�65% 褰㈠韬唤璇併��35% 涓洪棬璇婂彿锛夈��
@@ -204,16 +159,8 @@
{{ scope.row.doctorAdviceNo || '-' }}
</template>
</el-table-column>
- <el-table-column label="鎮h�呭鍚�" align="center" prop="patName" min-width="90px" />
<el-table-column label="鎬у埆" align="center" prop="patGender" width="70px">
<template #default="scope">{{ genderFormat(scope.row.patGender) }}</template>
- </el-table-column>
- <el-table-column label="鏉ユ簮" align="center" width="90px">
- <template #default="scope">
- <!-- 浼樺厛鐢ㄩ绾﹀崟骞抽摵鍊硷紝鍥為��鍒� patDetails 蹇収 -->
- <dict-tag :type="DICT_TYPE.ECG_PAT_SOURCE"
- :value="scope.row.patSrc ?? scope.row.patDetails?.source ?? 0" />
- </template>
</el-table-column>
<el-table-column label="鍑虹敓鏃ユ湡" align="center" min-width="110px">
<template #default="scope">{{ formatDateOnly(scope.row.patBirthday) }}</template>
@@ -221,11 +168,7 @@
<el-table-column label="骞撮緞" align="center" width="80px">
<template #default="scope">{{ formatAge(scope.row.patBirthday) }}</template>
</el-table-column>
- <el-table-column label="妫�鏌ョ被鍨�" align="center" prop="bookCheckType" min-width="100px">
- <template #default="scope">
- {{getCheckTypeName(scope.row.bookCheckType)}}
- </template>
- </el-table-column>
+
<el-table-column label="鐥呭尯" align="center" min-width="110px">
<template #default="scope">{{ scope.row.patWardDesc || scope.row.patDetails?.wardDesc || '-' }}</template>
</el-table-column>
@@ -253,43 +196,22 @@
<el-table-column label="寮�鍗曞尰甯�" align="center" prop="doctor" min-width="100px">
<template #default="scope">{{ scope.row.doctor || '-' }}</template>
</el-table-column>
- <el-table-column label="棰勭害鏃舵" align="center" prop="bookTimeslot" min-width="100px">
+
+ <el-table-column label="澶氳�愯嵂" width="150" align="center" prop="tolerance">
<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="status" >
- <template #default="scope">
- <dict-tag :type="DICT_TYPE.ECG_QUEUE_STATUS" :value="scope.row.status" />
- </template>
- </el-table-column>
- <el-table-column label="澶氳�愯嵂" width="150" align="center" prop="tolerance" >
- <template #default="scope">
<!-- 闇�姹�6锛氬鑰愯蛋瀛楀吀锛汵ULL 鎸�"鏃�"鏄剧ず锛圦12锛� -->
<dict-tag :type="DICT_TYPE.ECG_TOLERANCE" :value="scope.row.tolerance ?? 0" />
</template>
</el-table-column>
- <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" />
<el-table-column label="璇婂鍚嶇О" align="center" prop="roomName" />
<el-table-column label="璇婄枟搴婂彿" align="center" prop="bedNo" />
- <el-table-column
- label="鍒涘缓鏃堕棿"
- align="center"
- prop="createTime"
- :formatter="dateFormatter"
- width="180px"
- />
+ <el-table-column label="鍒涘缓鏃堕棿" align="center" prop="createTime" :formatter="dateFormatter" width="180px" />
</el-table>
<!-- 鍒嗛〉 -->
- <Pagination
- :total="total"
- v-model:page="queryParams.pageNo"
- v-model:limit="queryParams.pageSize"
- @pagination="getList"
- />
+ <Pagination :total="total" v-model:page="queryParams.pageNo" v-model:limit="queryParams.pageSize"
+ @pagination="getList" />
</ContentWrap>
<!-- 琛ㄥ崟寮圭獥锛氭坊鍔�/淇敼 -->
@@ -303,12 +225,12 @@
import { dateFormatter } from '@/utils/formatTime'
import download from '@/utils/download'
import { QueueApi, QueueVO } from '@/api/ecg/queue'
-import {DICT_TYPE, getIntDictOptions} from '@/utils/dict'
-import {DoctorApi, PatientVO} from "@/api/ecg/doctor";
-import {useCheckTypeStore} from "@/store/modules/checkType";
+import { DICT_TYPE, getIntDictOptions } from '@/utils/dict'
+import { DoctorApi, PatientVO } from "@/api/ecg/doctor";
+import { useCheckTypeStore } from "@/store/modules/checkType";
import AppointmentForm from "@/views/ecg/appointment/AppointmentForm.vue";
-import {genderFormat} from "@/utils/stringUtil";
-import {getCheckTypeName} from "../../../utils/checkTypeFormatter";
+import { genderFormat } from "@/utils/stringUtil";
+import { getCheckTypeName } from "../../../utils/checkTypeFormatter";
// 闇�姹�1锛氭偅鑰呬俊鎭� 18 椤圭殑鍏叡鏍煎紡鍖栵紙骞撮緞銆佽窛浠婂ぉ鏁扮瓑锛�
import { formatAge, formatDaysFromOrder, formatDateTime, formatDateOnly, resolveCardNo } from '@/utils/patientInfo'
@@ -385,11 +307,11 @@
message.success(t('common.delSuccess'))
// 鍒锋柊鍒楄〃
await getList()
- } catch {}
+ } catch { }
}
/** 鎻掗槦鎸夐挳鎿嶄綔 */
-const handleJump = async (item: QueueVO ) => {
+const handleJump = async (item: QueueVO) => {
try {
if (item.jumpFlag === 0)
item.jumpFlag = 1
@@ -400,7 +322,7 @@
message.success(data)
// 鍒锋柊鍒楄〃
await getList()
- } catch {}
+ } catch { }
}
const passWaitingPatient = async (item: QueueVO) => {
--
Gitblit v1.9.3