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