From 1446994d504819c367e1ff667360eadb314f9ac6 Mon Sep 17 00:00:00 2001
From: yxh <172933527@qq.com>
Date: 星期日, 18 十月 2026 16:52:18 +0800
Subject: [PATCH] 修改了诊室工号

---
 src/views/ecg/queue/index.vue |  194 ++++++++++++++++++++++++++++--------------------
 1 files changed, 112 insertions(+), 82 deletions(-)

diff --git a/src/views/ecg/queue/index.vue b/src/views/ecg/queue/index.vue
index 6e071dd..a4152ac 100644
--- a/src/views/ecg/queue/index.vue
+++ b/src/views/ecg/queue/index.vue
@@ -36,7 +36,7 @@
         <el-input v-model="queryParams.roomId" placeholder="璇疯緭鍏ヨ瘖瀹ょ紪鍙�" clearable @keyup.enter="handleQuery"
           class="!w-240px" />
       </el-form-item>
-      <el-form-item label="璇婄枟搴婂彿" prop="bedNo">
+      <el-form-item label="璇婂宸ヤ綅" prop="bedNo">
         <el-input v-model="queryParams.bedNo" placeholder="璇疯緭鍏ヨ瘖鐤楀簥鍙�" clearable @keyup.enter="handleQuery"
           class="!w-240px" />
       </el-form-item>
@@ -74,58 +74,31 @@
 
   <!-- 鍒楄〃 -->
   <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 v-loading="loading" :data="list" :stripe="true" :show-overflow-tooltip="true"
+      :row-class-name="queueRowClass">
       <!--      <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">
+      <el-table-column label="鐢宠鍗曞彿" align="center" prop="applyNo" min-width="110px" />
+      <el-table-column label="妫�鏌ラ」鐩�" align="center" prop="bookCheckType" min-width="150px">
         <template #default="scope">
           {{ getCheckTypeName(scope.row.bookCheckType) }}
         </template>
       </el-table-column>
-      <el-table-column label="鏉ユ簮" align="center" width="90px">
+      <!--
+        鎺掗槦鍙凤紙鏈渶姹傦級锛氬彧淇濈暀 seq_num 涓�涓彿锛屾樉绀轰负銆屾鏌ラ」鐩墠缂� + 鍙枫�嶃��
+        鍘熸潵鐨勩�屾帓闃熷簭鍙�(bookSeqNum)銆嶅垪宸插垹闄� 鈥斺�� 瀹冨拰銆屾鏌ュ簭鍙�(seqNum)銆嶅苟瀛樻鏄彿娣蜂贡鐨勬潵婧愩��
+        鍙锋寜妫�鏌ラ」鐩悇鑷紪鍙凤紝涓嶅悓妫�鏌ラ」鐩細鍑虹幇鐩稿悓鏁板瓧锛屾晠鐢ㄥ墠缂�鍖哄垎銆�
+      -->
+      <el-table-column label="鎺掗槦搴忓彿" align="center" prop="seqNum">
         <template #default="scope">
-          <!-- 浼樺厛鐢ㄩ绾﹀崟骞抽摵鍊硷紝鍥為��鍒� patDetails 蹇収 -->
-          <dict-tag :type="DICT_TYPE.ECG_PAT_SOURCE" :value="scope.row.patSrc ?? scope.row.patDetails?.source ?? 0" />
+          {{ getCheckTypeSeqPrefix(scope.row.bookCheckType) }}{{ scope.row.seqNum ?? '-' }}
+        </template>
+      </el-table-column>
+      <!-- <el-table-column label="杩囧彿鏍囪" align="center" prop="passed" /> -->
+      <el-table-column label="鎮h�呯紪鍙�" align="center" prop="patId" />
+      <el-table-column label="濮撳悕" align="center" min-width="200px">
+        <template #default="scope">
+          {{ scope.row.patName }} <dict-tag :type="DICT_TYPE.SYSTEM_USER_SEX" :value="scope.row.patGender" />{{ formatAge(scope.row.patBirthday) }}
+          <dict-tag :type="DICT_TYPE.ECG_PAT_SOURCE" :value="scope.row.patSrc" />
         </template>
       </el-table-column>
       <el-table-column label="棰勭害鏃舵" align="center" prop="bookTimeslot" min-width="100px">
@@ -133,12 +106,36 @@
           <dict-tag :type="DICT_TYPE.ECG_BOOK_TIMESLOT" :value="scope.row.bookTimeslot" />
         </template>
       </el-table-column>
-      <el-table-column label="鐘舵��" align="center" prop="status">
+      <el-table-column label="鐘舵��" align="center" prop="status" width="90px">
         <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="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" />
+      <!-- VIP锛氭樉绀恒�屾槸/鍚︺�嶄腑鏂囷紙鍘熷厛鐩存帴鏄剧ず 0/1锛夈�傚瓧鍏� infra_boolean_string = true/鏄�乫alse/鍚� -->
+      <el-table-column label="VIP" align="center" width="80px">
+        <template #default="scope">
+          <dict-tag :type="DICT_TYPE.INFRA_BOOLEAN_STRING" :value="Number(scope.row.isVip) === 1" />
+        </template>
+      </el-table-column>
+      <el-table-column label="寮�鍗曞尰甯�" align="center" prop="doctor" min-width="100px">
+        <template #default="scope">{{ scope.row.doctor || '-' }}</template>
+      </el-table-column>
+      <!-- 闇�姹�1锛氬尰鍢卞彿锛圚IS observationRequest.id.item[root=2.16.156.10011.1.28]锛夈��
+           璇ヨ妭鐐瑰湪瑙勮寖涓潪蹇呴』椤癸紝鍘嗗彶鏁版嵁锛堟柊澧炲垪涔嬪墠閲囬泦鐨勶級涓虹┖锛屾樉绀� '-'銆� -->
+      <el-table-column label="鍖诲槺鍙�" align="center" prop="doctorAdviceNo" min-width="110px">
+        <template #default="scope">
+          {{ scope.row.doctorAdviceNo || '-' }}
+        </template>
+      </el-table-column>
+      <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="episodeId" min-width="110px" />
       <!-- 鏈垪鏍囩鐢便�屽氨璇婂崱鍙枫�嶆敼涓恒�岄棬璇婂彿銆嶏紙缁忕‘璁わ級銆傚師鍥狅紙璇﹁銆婇儴缃叉竻鍗曘��5.1锛夛細
            HIS 鍦ㄥ崱鍙锋Ы浣嶄紶绌猴紝medical_card 鍏ㄥ簱 159,116 琛�**鏃犱竴闈炵┖**锛�
@@ -152,23 +149,6 @@
           </el-tag>
         </template>
       </el-table-column>
-      <!-- 闇�姹�1锛氬尰鍢卞彿锛圚IS observationRequest.id.item[root=2.16.156.10011.1.28]锛夈��
-           璇ヨ妭鐐瑰湪瑙勮寖涓潪蹇呴』椤癸紝鍘嗗彶鏁版嵁锛堟柊澧炲垪涔嬪墠閲囬泦鐨勶級涓虹┖锛屾樉绀� '-'銆� -->
-      <el-table-column label="鍖诲槺鍙�" align="center" prop="doctorAdviceNo" min-width="110px">
-        <template #default="scope">
-          {{ scope.row.doctorAdviceNo || '-' }}
-        </template>
-      </el-table-column>
-      <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" min-width="110px">
-        <template #default="scope">{{ formatDateOnly(scope.row.patBirthday) }}</template>
-      </el-table-column>
-      <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" min-width="110px">
         <template #default="scope">{{ scope.row.patWardDesc || scope.row.patDetails?.wardDesc || '-' }}</template>
       </el-table-column>
@@ -179,35 +159,47 @@
           {{ scope.row.patBedNo || scope.row.patDetails?.bedNo || '-' }}
         </template>
       </el-table-column>
+
+      <el-table-column label="鍑虹敓鏃ユ湡" align="center" min-width="110px">
+        <template #default="scope">{{ formatDateOnly(scope.row.patBirthday) }}</template>
+      </el-table-column>
       <el-table-column label="鎮h�呯數璇�" align="center" min-width="120px">
         <template #default="scope">
           {{ scope.row.patMobile || scope.row.patPhone || scope.row.patDetails?.mobile || '-' }}
         </template>
-      </el-table-column>
-      <el-table-column label="鐧昏鏃堕棿" align="center" min-width="150px">
-        <template #default="scope">{{ formatDateTime(scope.row.registerDate) }}</template>
-      </el-table-column>
+      </el-table-column>      
       <el-table-column label="寮�鍗曟棩鏈�" align="center" min-width="150px">
         <template #default="scope">{{ formatDateTime(scope.row.doctorTime) }}</template>
       </el-table-column>
       <el-table-column label="璺濅粖澶╂暟" align="center" width="90px">
         <template #default="scope">{{ formatDaysFromOrder(scope.row.doctorTime) }}</template>
       </el-table-column>
-      <el-table-column label="寮�鍗曞尰甯�" align="center" prop="doctor" min-width="100px">
-        <template #default="scope">{{ scope.row.doctor || '-' }}</template>
+      <el-table-column label="杩囨湡鏍囪" align="center" prop="expired" />
+      <el-table-column label="鐧昏鏃堕棿" align="center" min-width="150px">
+        <template #default="scope">{{ formatDateTime(scope.row.registerDate) }}</template>
       </el-table-column>
-
-      <el-table-column label="澶氳�愯嵂" width="150" align="center" prop="tolerance">
+      <el-table-column label="鍒涘缓鏃堕棿" align="center" prop="createTime" :formatter="dateFormatter" width="180px" />
+      <!-- 鎿嶄綔鍒楋細鍥哄畾鍦ㄥ垪琛ㄦ渶鍚庝綅缃紙fixed="right" 淇濊瘉濮嬬粓璐村湪鏈�鍙充晶锛�
+           鎸夐挳閰嶈壊涓庛�岄绾﹁褰曘�嶆ā鍧楃殑鎿嶄綔鍒椾繚鎸佷竴鑷达細
+             鍔犳�� / 杩囧彿 鈫� 鍚岃妯″潡銆岀紪杈戙�嶆寜閽紙type=primary plain锛�
+             鍙洖        鈫� 鍚岃妯″潡銆屽垹闄ゃ�嶆寜閽紙type=danger  plain锛� -->
+      <el-table-column label="鎿嶄綔" fixed="right" align="center" width="180px">
         <template #default="scope">
-          <!-- 闇�姹�6锛氬鑰愯蛋瀛楀吀锛汵ULL 鎸�"鏃�"鏄剧ず锛圦12锛� -->
-          <dict-tag :type="DICT_TYPE.ECG_TOLERANCE" :value="scope.row.tolerance ?? 0" />
+          <el-button type="primary" plain size="small" @click="handleJump(scope.row)" v-if="scope.row.status === 10"
+            v-hasPermi="['ecg:queue:jump']">
+            {{ scope.row.jumpFlag === 0 ? "鍔犳��" : "鍙栨秷鍔犳��" }}
+          </el-button>          
+          <el-button type="primary" plain size="small" @click="passWaitingPatient(scope.row)"
+            v-if="scope.row.status === 10" v-hasPermi="['ecg:queue:pass']">
+            杩囧彿
+          </el-button>
+          <el-button type="danger" plain size="small" @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>
         </template>
       </el-table-column>
-      <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>
     <!-- 鍒嗛〉 -->
     <Pagination :total="total" v-model:page="queryParams.pageNo" v-model:limit="queryParams.pageSize"
@@ -230,7 +222,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";
+import { getCheckTypeName, getCheckTypeSeqPrefix } from "../../../utils/checkTypeFormatter";
 // 闇�姹�1锛氭偅鑰呬俊鎭� 18 椤圭殑鍏叡鏍煎紡鍖栵紙骞撮緞銆佽窛浠婂ぉ鏁扮瓑锛�
 import { formatAge, formatDaysFromOrder, formatDateTime, formatDateOnly, resolveCardNo } from '@/utils/patientInfo'
 
@@ -385,4 +377,42 @@
   console.info("queue onActivated...")
   handleQuery()
 })
+
+/**
+ * 闃熷垪琛屾牱寮忥細鎶娿�屽凡杩囧彿銆嶇殑璁板綍鏁磋鏍囩孩锛屾柟渚垮尰鐢熶竴鐪艰瘑鍒��
+ *
+ * 涓轰粈涔堟寜琛岄珮浜�屼笉鏄彧缁欑姸鎬佹爣绛句笂鑹诧細
+ *   路 瀛楀吀 ecg_queue_status 閲� 13 涓姸鎬�**閮芥病鏈夐厤 color_type**锛�
+ *     鎵�浠� dict-tag 娓叉煋鍑烘潵鍏ㄦ槸榛樿鐏拌壊鏍囩锛屽郊姝ゆ病鏈夊尯鍒嗗害锛�
+ *   路 杩囧彿鏄渶闇�瑕佽娉ㄦ剰鐨勭姸鎬侊紙鎮h�呴敊杩囦簡鍙彿锛夛紝鏁磋鏍囪壊姣斿皬鏍囩鏇撮啋鐩��
+ *
+ * 宸茶繃鍙风姸鎬佸�硷紙瀛楀吀 ecg_queue_status锛夛細
+ *   3 = 宸茶繃鍙�-鎺掗槦銆�5 = 宸茶繃鍙枫��7 = 宸茶繃鍙�-瀹夎
+ */
+const PASSED_STATUSES = [3, 5, 7]
+const queueRowClass = ({ row }: { row: QueueVO }) => {
+  return PASSED_STATUSES.includes(Number(row.status)) ? 'queue-row-passed' : ''
+}
 </script>
+
+<style scoped lang="scss">
+/* 宸茶繃鍙凤細鏁磋娴呯孩搴� + 宸︿晶绾㈣壊绔栨潯锛屾壂涓�鐪煎氨鑳藉畾浣� */
+:deep(.el-table .queue-row-passed) {
+  /* el-table 鐨勮鑳屾櫙鍙栬嚜璇ュ彉閲忥紝瑕嗗啓瀹冨彲璁╄搴曡壊鏁翠綋鍙樼孩 */
+  --el-table-tr-bg-color: var(--el-color-danger-light-9);
+
+  td.el-table__cell {
+    background-color: var(--el-color-danger-light-9);
+  }
+
+  /* 宸︿晶绔栨潯鐢� border-left 鑰岄潪 box-shadow锛氫笌 el-table 鐨勫崟鍏冩牸杈规妯″瀷鏇村吋瀹� */
+  td.el-table__cell:first-child {
+    border-left: 4px solid var(--el-color-danger);
+  }
+
+  /* 榧犳爣鎮仠鏃朵繚鎸佺孩鑹插熀璋冿紝閬垮厤琚� el-table 鐨� hover 鑳屾櫙瑕嗙洊 */
+  &:hover>td.el-table__cell {
+    background-color: var(--el-color-danger-light-8) !important;
+  }
+}
+</style>

--
Gitblit v1.9.3