From ae8535b861f9177508d9e5493e0fe9e47978c915 Mon Sep 17 00:00:00 2001
From: WXL (wul) <wl_5969728@163.com>
Date: 星期一, 31 八月 2026 16:58:47 +0800
Subject: [PATCH] 测试完成

---
 src/views/patient/patient/outpatient.vue |   70 +++++++++++++++++++++++++++-------
 1 files changed, 55 insertions(+), 15 deletions(-)

diff --git a/src/views/patient/patient/outpatient.vue b/src/views/patient/patient/outpatient.vue
index 4e97f6c..4ec86cf 100644
--- a/src/views/patient/patient/outpatient.vue
+++ b/src/views/patient/patient/outpatient.vue
@@ -62,6 +62,8 @@
               v-model="queryParams.scopetype"
               placeholder="榛樿鍏ㄩ儴"
               :options="sourcetype"
+              filterable
+              clearable
               :props="{ expandTrigger: 'hover' }"
               @change="handleChange"
             ></el-cascader>
@@ -136,7 +138,7 @@
               size="medium"
               :disabled="single"
               @click="handleUpdate"
-              v-hasPermi="['system:user:edit']"
+
               >淇敼</el-button
             >
           </el-col> -->
@@ -162,6 +164,18 @@
               @click="handleBatchAddTask"
             >
               鎵归噺娣诲姞浠诲姟</el-button
+            >
+          </el-col>
+          <el-col :span="1.5">
+            <el-button
+              type="success"
+              plain
+              icon="el-icon-folder-add"
+              size="medium"
+              :disabled="multiple"
+              @click="handleCreateArchive"
+            >
+              鎮h�呭缓妗�</el-button
             >
           </el-col>
           <el-col :span="19">
@@ -211,7 +225,7 @@
             align="center"
             key="admitdate"
             prop="admitdate"
-            width="160"
+            width="140"
           >
             <template slot-scope="scope">
               <span>{{ formatTime(scope.row.admitdate) }}</span>
@@ -225,6 +239,7 @@
           /> -->
           <el-table-column
             label="鐥呮鍙�"
+            width="100"
             align="center"
             key="outhospno"
             prop="outhospno"
@@ -245,7 +260,7 @@
                     scope.row.idcardno,
                     scope.row.drcode,
                     scope.row.drname,
-                    scope.row.patid,
+                    scope.row.patid
                   )
                 "
                 ><span class="button-textsc">{{
@@ -297,7 +312,6 @@
             align="center"
             key="diagname"
             prop="diagname"
-            width="190"
           />
           <!-- <el-table-column
             label="涓昏堪"
@@ -311,14 +325,12 @@
             align="center"
             key="deptname"
             prop="deptname"
-            width="120"
           />
           <el-table-column
             label="鎺ヨ瘖鍖荤敓"
             align="center"
             key="drname"
             prop="drname"
-            width="120"
           />
           <el-table-column
             label="鏄惁瀛樺湪浠诲姟"
@@ -341,7 +353,6 @@
             label="鎿嶄綔"
             fixed="right"
             align="center"
-            width="160"
             class-name="small-padding fixed-width"
           >
             <template slot-scope="scope">
@@ -354,7 +365,7 @@
                     query: { id: scope.row.patid },
                   })
                 "
-                v-hasPermi="['system:user:edit']"
+
                 ><span class="button-textsc"
                   ><i class="el-icon-zoom-in"></i>鏌ョ湅</span
                 ></el-button
@@ -570,6 +581,13 @@
         <el-button @click="submitclose">鍙� 娑�</el-button>
       </div>
     </el-dialog>
+
+    <!-- 鎮h�呭缓妗e脊绐� -->
+    <ArchiveDialog
+      :visible.sync="archiveDialogVisible"
+      :patients="archivePatients"
+      source-page="outpatient"
+    />
   </div>
 </template>
 
@@ -588,15 +606,21 @@
 import { getToken } from "@/utils/auth";
 import Treeselect from "@riophae/vue-treeselect";
 import "@riophae/vue-treeselect/dist/vue-treeselect.css";
-import { query360PatInfo,query360PatInfonh, getTasklist, addSubtask } from "@/api/AiCentre/index";
+import {
+  query360PatInfo,
+  query360PatInfonh,
+  getTasklist,
+  addSubtask,
+} from "@/api/AiCentre/index";
 
 import store from "@/store";
 import { type } from "jquery";
+import ArchiveDialog from "@/views/patient/archives/components/ArchiveDialog.vue";
 
 export default {
   name: "Userhuanze",
   dicts: ["sys_normal_disable", "sys_user_sex"],
-  components: { Treeselect },
+  components: { Treeselect, ArchiveDialog },
   data() {
     return {
       // 閬僵灞�
@@ -657,6 +681,9 @@
       taskList: [], // 浠诲姟鍒楄〃
       selectedTask: null, // 閫変腑鐨勪换鍔″垪琛�
       batchLoading: false, // 鎵归噺鎻愪氦鍔犺浇鐘舵��
+      // 鎮h�呭缓妗�
+      archiveDialogVisible: false,
+      archivePatients: [],
       deptcode: "",
       Patientrange: [
         {
@@ -668,6 +695,7 @@
           id: 1,
         },
       ],
+      orgName: localStorage.getItem("orgname"),
       postData: {
         XiaoXiTou: {
           FaSongFCSJC: "ZJHES",
@@ -963,7 +991,7 @@
     },
     // 澶氶�夋閫変腑鏁版嵁
     handleSelectionChange(selection) {
-      this.ids = selection.map((item) => item.patid);
+      this.ids = selection.map((item) => item.id);
       this.single = selection.length != 1;
       this.multiple = !selection.length;
     },
@@ -1085,8 +1113,9 @@
       }
       // 妫�鏌ラ�変腑鐨勬偅鑰呬腑鏄惁鏈夊凡鏈変换鍔$殑
       const hasTaskPatients = this.userList.filter(
-        (item) => this.ids.includes(item.patid) && item.serverState == 1
+        (item) => this.ids.includes(item.id) && item.serverState == 1
       );
+      console.log(hasTaskPatients, "hasTaskPatients");
 
       if (hasTaskPatients.length > 0) {
         const patientNames = hasTaskPatients.map((p) => p.patname).join("銆�");
@@ -1098,8 +1127,8 @@
       // 鑾峰彇閫変腑鎮h�呯殑绉戝淇℃伅锛堢敤浜庢牎楠屽悓涓�绉戝锛�
       const patientDepts = new Set();
       let deptcode = "";
-      this.ids.forEach((patId) => {
-        const patient = this.userList.find((item) => item.patid === patId);
+      this.ids.forEach((id) => {
+        const patient = this.userList.find((item) => item.id === id);
         if (patient) {
           patientDepts.add(patient.deptname);
           deptcode = patient.deptcode;
@@ -1114,7 +1143,7 @@
 
       // 鑾峰彇閫変腑鎮h�呭垪琛�
       this.selectedPatients = this.userList.filter((item) =>
-        this.ids.includes(item.patid)
+        this.ids.includes(item.id)
       );
 
       // 鏄剧ず寮圭獥
@@ -1202,6 +1231,17 @@
 
     /** 鎵归噺娣诲姞鎮h�呬换鍔℃帴鍙� */
     batchAddPatientTask(params) {},
+    /** 鎮h�呭缓妗� */
+    handleCreateArchive() {
+      if (this.ids.length === 0) {
+        this.$modal.msgWarning("璇疯嚦灏戦�変腑1鍚嶆偅鑰�");
+        return;
+      }
+      this.archivePatients = this.userList.filter((item) =>
+        this.ids.includes(item.id)
+      );
+      this.archiveDialogVisible = true;
+    },
   },
 };
 </script>

--
Gitblit v1.9.3