From ec00c0781c1e61c8cc7b3976cedc248dad7a0697 Mon Sep 17 00:00:00 2001
From: eight <641137800@qq.com>
Date: 星期四, 19 九月 2024 18:32:40 +0800
Subject: [PATCH] update

---
 src/views/ecg/queue/index.vue |  172 ++++++++++++++++++++++++++++++++++----------------------
 1 files changed, 104 insertions(+), 68 deletions(-)

diff --git a/src/views/ecg/queue/index.vue b/src/views/ecg/queue/index.vue
index 07d3827..577befb 100644
--- a/src/views/ecg/queue/index.vue
+++ b/src/views/ecg/queue/index.vue
@@ -26,24 +26,20 @@
           class="!w-240px"
         />
       </el-form-item>
-      <el-form-item label="鎮h�呮�у埆" prop="patGender">
-        <el-select
-          v-model="queryParams.patGender"
-          placeholder="璇烽�夋嫨鎮h�呮�у埆"
-          clearable
-          class="!w-240px"
-        >
-          <el-option label="璇烽�夋嫨瀛楀吀鐢熸垚" value="" />
-        </el-select>
-      </el-form-item>
       <el-form-item label="棰勭害鏃舵" prop="bookTimeslot">
-        <el-input
+        <el-select
           v-model="queryParams.bookTimeslot"
           placeholder="璇疯緭鍏ラ绾︽椂娈�"
           clearable
-          @keyup.enter="handleQuery"
           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
@@ -52,7 +48,12 @@
           clearable
           class="!w-240px"
         >
-          <el-option label="璇烽�夋嫨瀛楀吀鐢熸垚" value="" />
+          <el-option
+            v-for="dict in getIntDictOptions(DICT_TYPE.ECG_CHECK_TYPE)"
+            :key="dict.value"
+            :label="dict.label"
+            :value="dict.value"
+          />
         </el-select>
       </el-form-item>
       <el-form-item label="鎺掗槦搴忓彿" prop="seqNum">
@@ -64,63 +65,37 @@
           class="!w-240px"
         />
       </el-form-item>
-      <el-form-item label="鐘舵��" prop="status">
+      <el-form-item label="鎺掗槦鐘舵��" prop="status">
         <el-select
           v-model="queryParams.status"
-          placeholder="璇烽�夋嫨鐘舵��"
+          placeholder="璇烽�夋嫨鎺掗槦鐘舵��"
           clearable
           class="!w-240px"
         >
-          <el-option label="璇烽�夋嫨瀛楀吀鐢熸垚" value="" />
+          <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="passed">
-        <el-select
-          v-model="queryParams.passed"
-          placeholder="璇烽�夋嫨杩囧彿鏍囪"
-          clearable
-          class="!w-240px"
-        >
-          <el-option label="璇烽�夋嫨瀛楀吀鐢熸垚" value="" />
-        </el-select>
-      </el-form-item>
-      <el-form-item label="棰勭害杩囨湡鏍囪" prop="expired">
-        <el-select
-          v-model="queryParams.expired"
-          placeholder="璇烽�夋嫨棰勭害杩囨湡鏍囪"
-          clearable
-          class="!w-240px"
-        >
-          <el-option label="璇烽�夋嫨瀛楀吀鐢熸垚" value="" />
-        </el-select>
-      </el-form-item>
-      <el-form-item label="璇婂缂栧彿" prop="roomNum">
+      <el-form-item label="璇婂缂栧彿" prop="roomId">
         <el-input
-          v-model="queryParams.roomNum"
+          v-model="queryParams.roomId"
           placeholder="璇疯緭鍏ヨ瘖瀹ょ紪鍙�"
           clearable
           @keyup.enter="handleQuery"
           class="!w-240px"
         />
       </el-form-item>
-      <el-form-item label="璇婄枟搴婄紪鍙�" prop="bedNum">
+      <el-form-item label="璇婄枟搴婂彿" prop="bedNo">
         <el-input
-          v-model="queryParams.bedNum"
-          placeholder="璇疯緭鍏ヨ瘖鐤楀簥缂栧彿"
+          v-model="queryParams.bedNo"
+          placeholder="璇疯緭鍏ヨ瘖鐤楀簥鍙�"
           clearable
           @keyup.enter="handleQuery"
           class="!w-240px"
-        />
-      </el-form-item>
-      <el-form-item label="鍒涘缓鏃堕棿" prop="createTime">
-        <el-date-picker
-          v-model="queryParams.createTime"
-          value-format="YYYY-MM-DD HH:mm:ss"
-          type="daterange"
-          start-placeholder="寮�濮嬫棩鏈�"
-          end-placeholder="缁撴潫鏃ユ湡"
-          :default-time="[new Date('1 00:00:00'), new Date('1 23:59:59')]"
-          class="!w-220px"
         />
       </el-form-item>
       <el-form-item>
@@ -154,14 +129,27 @@
       <el-table-column label="鎮h�呯紪鍙�" align="center" prop="patId" />
       <el-table-column label="鎮h�呭鍚�" align="center" prop="patName" />
       <el-table-column label="鎮h�呮�у埆" align="center" prop="patGender" />
-      <el-table-column label="棰勭害鏃舵" align="center" prop="bookTimeslot" />
-      <el-table-column label="妫�鏌ョ被鍨�" align="center" prop="bookCheckType" />
-      <el-table-column label="鎺掗槦搴忓彿" align="center" prop="seqNum" />
-      <el-table-column label="鐘舵��" align="center" prop="status" />
+      <el-table-column label="棰勭害鏃舵" align="center" prop="bookTimeslot" >
+        <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="bookCheckType" >
+        <template #default="scope">
+          <dict-tag :type="DICT_TYPE.ECG_CHECK_TYPE" :value="scope.row.bookCheckType" />
+        </template>
+      </el-table-column>
+        <el-table-column label="鎺掗槦搴忓彿" align="center" prop="seqNum" />
+      <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="passed" />
       <el-table-column label="杩囨湡鏍囪" align="center" prop="expired" />
-      <el-table-column label="璇婂缂栧彿" align="center" prop="roomNum" />
-      <el-table-column label="璇婄枟搴婂彿" align="center" prop="bedNum" />
+      <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"
@@ -187,6 +175,24 @@
           >
             鍒犻櫎
           </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 === 50"
+            v-hasPermi="['ecg:queue:recall']"
+          >
+            鍙洖
+          </el-button>
         </template>
       </el-table-column>
     </el-table>
@@ -206,8 +212,10 @@
 <script setup lang="ts">
 import { dateFormatter } from '@/utils/formatTime'
 import download from '@/utils/download'
-import { queueApi, queueVO } from '@/api/ecg/queue'
-import queueForm from './queueForm.vue'
+import { QueueApi, QueueVO } from '@/api/ecg/queue'
+import queueForm from './QueueForm.vue'
+import {DICT_TYPE, getIntDictOptions} from '@/utils/dict'
+import {DoctorApi, PatientVO} from "@/api/ecg/doctor";
 
 /** 鎺掗槦 鍒楄〃 */
 defineOptions({ name: 'queue' })
@@ -216,7 +224,7 @@
 const { t } = useI18n() // 鍥介檯鍖�
 
 const loading = ref(true) // 鍒楄〃鐨勫姞杞戒腑
-const list = ref<queueVO[]>([]) // 鍒楄〃鐨勬暟鎹�
+const list = ref<QueueVO[]>([]) // 鍒楄〃鐨勬暟鎹�
 const total = ref(0) // 鍒楄〃鐨勬�婚〉鏁�
 const queryParams = reactive({
   pageNo: 1,
@@ -230,9 +238,8 @@
   status: undefined,
   passed: undefined,
   expired: undefined,
-  roomNum: undefined,
-  bedNum: undefined,
-  createTime: []
+  roomId: undefined,
+  bedNo: undefined,
 })
 const queryFormRef = ref() // 鎼滅储鐨勮〃鍗�
 const exportLoading = ref(false) // 瀵煎嚭鐨勫姞杞戒腑
@@ -241,7 +248,7 @@
 const getList = async () => {
   loading.value = true
   try {
-    const data = await queueApi.getqueuePage(queryParams)
+    const data = await QueueApi.getqueuePage(queryParams)
     list.value = data.list
     total.value = data.total
   } finally {
@@ -273,11 +280,40 @@
     // 鍒犻櫎鐨勪簩娆$‘璁�
     await message.delConfirm()
     // 鍙戣捣鍒犻櫎
-    await queueApi.deletequeue(id)
+    await QueueApi.deletequeue(id)
     message.success(t('common.delSuccess'))
     // 鍒锋柊鍒楄〃
     await getList()
   } catch {}
+}
+
+/** 鎻掗槦鎸夐挳鎿嶄綔 */
+const handleJump = async (item: QueueVO ) => {
+  try {
+    if (item.jumpFlag === 0)
+      item.jumpFlag = 1
+    else
+      item.jumpFlag = 0
+
+    const data = await QueueApi.jumpQueue(item)
+    message.success(data)
+    // 鍒锋柊鍒楄〃
+    await getList()
+  } catch {}
+}
+
+const recall = async (item: QueueVO) => {
+  const patientVO: PatientVO = {
+    roomId: item.roomId,
+    bedNo: item.bedNo,
+    patId: item.patId,
+    jumpFlag: 0
+  }
+
+  const data = await DoctorApi.recallPatient(patientVO);
+  message.info(data)
+  // 鍒锋柊鍒楄〃
+  await getList()
 }
 
 /** 瀵煎嚭鎸夐挳鎿嶄綔 */
@@ -287,7 +323,7 @@
     await message.exportConfirm()
     // 鍙戣捣瀵煎嚭
     exportLoading.value = true
-    const data = await queueApi.exportqueue(queryParams)
+    const data = await QueueApi.exportqueue(queryParams)
     download.excel(data, '鎺掗槦.xls')
   } catch {
   } finally {

--
Gitblit v1.9.3