From 0bd13d89bbe105f3f11ca49fede80a7cbe3624bf Mon Sep 17 00:00:00 2001
From: WXL (wul) <wl_5969728@163.com>
Date: 星期三, 17 九月 2025 11:03:35 +0800
Subject: [PATCH] 电话更新

---
 src/components/PatientSelection/index.vue |  343 +++++++++++++++++++++++++++++++++++++++++++++++++-------
 1 files changed, 296 insertions(+), 47 deletions(-)

diff --git a/src/components/PatientSelection/index.vue b/src/components/PatientSelection/index.vue
index 9fc4498..d63746e 100644
--- a/src/components/PatientSelection/index.vue
+++ b/src/components/PatientSelection/index.vue
@@ -16,13 +16,13 @@
               closables
               @close="handleClose(item)"
             >
-              {{ item.icdname }}
+              {{ item.name }}
             </el-tag>
             <div style="margin-top: 20px; text-align: right">
               鍏遍�夋嫨<span
                 style="font-size: 18px; color: #409eff; margin: 0 10px"
                 >{{ overallCase.length }}</span
-              >鏉℃暟鎹�
+              >浣嶆偅鑰�
             </div>
           </el-card>
         </div>
@@ -36,12 +36,36 @@
               :inline="true"
               label-width="98px"
             >
-              <el-form-item label="鐤剧梾鍚嶇О" prop="name">
+              <el-form-item label="鎮h�咃細">
                 <el-input
-                  v-model="patientqueryParams.icdname"
-                  placeholder="璇疯緭鍏ョ柧鐥呭悕绉�"
-                  @keyup.enter.native="handleAddpatient"
-                />
+                  v-model="patientqueryParams.name"
+                  @keyup.enter.native="handleQuery"
+                ></el-input>
+              </el-form-item>
+              <el-form-item label="鎮h�呯被鍨�">
+                <el-select
+                  v-model="patientqueryParams.allhosp"
+                  placeholder="璇烽�夋嫨鏂板绫诲瀷"
+                >
+                  <el-option
+                    v-for="item in taskoptions"
+                    :label="item.label"
+                    :value="item.value"
+                  >
+                  </el-option>
+                </el-select>
+              </el-form-item>
+              <el-form-item label="鎮h�呰瘖鏂細">
+                <el-input
+                  v-model="patientqueryParams.leavediagname"
+                  @keyup.enter.native="handleQuery"
+                ></el-input>
+              </el-form-item>
+              <el-form-item label="涓绘不鍖荤敓锛�">
+                <el-input
+                  v-model="patientqueryParams.drname"
+                  @keyup.enter.native="handleQuery"
+                ></el-input>
               </el-form-item>
 
               <el-form-item>
@@ -49,7 +73,7 @@
                   type="primary"
                   icon="el-icon-search"
                   size="medium"
-                  @click="handleAddpatient"
+                  @click="handleQuery"
                   >鎼滅储</el-button
                 >
                 <el-button
@@ -60,7 +84,7 @@
                 >
               </el-form-item>
             </el-form>
-            <!-- 閫夋嫨鍣ㄥ畼鍒楄〃 -->
+            <!-- 閫夋嫨鎮h�呭垪琛� -->
             <el-table
               ref="multipleTable"
               :data="donorchargeList"
@@ -68,21 +92,49 @@
               style="width: 100%"
               @selection-change="handleSelectionChange"
             >
-              <el-table-column class="checkall" type="selection" width="55">
-              </el-table-column>
               <el-table-column
-                prop="icdid"
-                label="鐤剧梾缂栧彿"
-                width="100"
-                show-overflow-tooltip
+                fixed="left"
+                class="checkall"
+                type="selection"
+                width="55"
               >
               </el-table-column>
-              <el-table-column label="鐤剧梾鍚嶇О" show-overflow-tooltip>
-                <template slot-scope="scope">{{ scope.row.icdname }}</template>
-              </el-table-column>
+              <div v-for="(item, index) in tableLabel">
+                <el-table-column
+                  v-if="item.label == '鍑洪櫌鏃ユ湡'"
+                  :key="index"
+                  :prop="item.prop"
+                  :width="item.width"
+                  :label="item.label"
+                  :formatter="formatData"
+                >
+                  <template slot-scope="scope">
+                    <span>{{ formatTime(scope.row.endtime) }}</span>
+                  </template>
+                </el-table-column>
+                <el-table-column
+                  v-if="item.label == '鎬у埆'"
+                  :key="index"
+                  :prop="item.prop"
+                  :width="item.width"
+                  :label="item.label"
+                  :formatter="formatData"
+                >
+                  <template slot-scope="scope">
+                    <span>{{ scope.row.sex == 1 ? "鐢�" : "濂�" }}</span>
+                  </template>
+                </el-table-column>
 
-              <el-table-column prop="icdcode" label="鐤剧梾缂栫爜" width="150">
-              </el-table-column>
+                <el-table-column
+                  v-if="item.label != '鎬у埆' && item.label != '鍑洪櫌鏃ユ湡'"
+                  :key="index"
+                  :prop="item.prop"
+                  :width="item.width"
+                  :label="item.label"
+                  :formatter="formatData"
+                >
+                </el-table-column>
+              </div>
             </el-table>
           </el-row>
           <pagination
@@ -90,7 +142,7 @@
             :total="patienttotal"
             :page.sync="patientqueryParams.pageNum"
             :limit.sync="patientqueryParams.pageSize"
-            @pagination="handleAddpatient"
+            @pagination="handleQuery"
           />
         </div>
       </div>
@@ -105,22 +157,71 @@
 </template>
 
 <script>
-import { getillnesslist, deltargetillness } from "@/api/AiCentre/index";
+import {
+  getillnesslist,
+  deltargetillness,
+  getTaskpatientQC,
+  Questionnairetaskgetson,
+  Externallist,
+  Editsingletask,
+} from "@/api/AiCentre/index";
 export default {
   name: "Diseasetotality",
   data() {
     return {
       patienttotal: 0, //
+      allpids: [],
       // 褰撳墠椤甸�変腑鏁版嵁
       multipleSelection: [],
-      // 鎬婚�変腑鏁版嵁
-      // overallCase: [],
+      overallpatin: [],
+      form: {},
       patientqueryParams: {
         pageNum: 1,
         pageSize: 10,
+        allhosp: "4",
+        pids: null,
       },
       donorchargeList: [],
       donorchargeanlList: [], //妗堜緥鍒楄〃
+      taskoptions: [
+        {
+          value: "4",
+          label: "鍑洪櫌鐥呬汉",
+        },
+        {
+          value: "1",
+          label: "鍦ㄩ櫌鐥呬汉",
+        },
+        {
+          value: "2",
+          label: "闂ㄨ瘖鐥呬汉",
+        },
+        {
+          value: "3",
+          label: "浣撴鐥呬汉",
+        },
+        {
+          value: "6",
+          label: "闄㈠鎮h��",
+        },
+        {
+          value: "5",
+          label: "鎵嬫湳鐥呬汉",
+        },
+      ],
+      overallCase:[],
+      tableLabel: [
+        { label: "鍑洪櫌鏃ユ湡", width: "150", prop: "inhosptime" },
+        { label: "鎮h��", width: "", prop: "name" },
+        { label: "鎮h�呰瘖鏂�", width: "", prop: "leavediagname" },
+        { label: "韬唤璇�", width: "200", prop: "idcardno" },
+        { label: "鎬у埆", width: "", prop: "sex" },
+        { label: "骞撮緞", width: "", prop: "age" },
+        { label: "璐d换鎶ゅ+", width: "", prop: "nurseName" },
+        { label: "涓绘不鍖荤敓", width: "", prop: "drname" },
+        { label: "绉戝", width: "240", prop: "dept" },
+        { label: "鐥呭尯", width: "240", prop: "leavehospitaldistrictname" },
+      ],
     };
   },
 
@@ -131,22 +232,7 @@
         return false;
       },
     },
-    // 閫変腑
-    overallCase: {
-      type: Array,
-      required: true,
-      default: () => [],
-    },
-    pids: {
-      type: Array,
-      required: true,
-      default: () => [],
-    },
-    allhosp: {
-      type: String,
-      required: true,
-      default: () => [],
-    },
+
     // 5闂嵎妯℃澘銆�3闅忚妯℃澘銆�6瀹f暀
     type: {
       type: Number,
@@ -165,6 +251,25 @@
   watch: {},
 
   methods: {
+    //   鏁版嵁杩囨护
+    formatData(row, column, cellValue) {
+      if (column.property === "createType") {
+        if (cellValue === 1) {
+          return "鑷姩";
+        }
+        return "鎵嬪姩";
+      }
+      if (
+        column.property === "createTime" ||
+        column.property === "inhosptime"
+      ) {
+        if (cellValue === null) {
+          return "";
+        }
+        return dayjs(cellValue).format("YYYY-MM-DD ");
+      }
+      return cellValue;
+    },
     handleClosehz() {
       this.$emit("addoption");
     },
@@ -172,7 +277,6 @@
     handleClose(item) {
       console.log(item);
       if (this.multipleSelection.indexOf(item) == -1 && !item.outid) {
-        console.log(1);
         this.overallCase.splice(this.overallCase.indexOf(item), 1);
       } else if (item.outid) {
         this.$modal
@@ -200,17 +304,118 @@
       }
     },
     resetQuery() {
-      this.patientqueryParams.icdname = null;
+      this.patientqueryParams.name = null;
       this.handleAddpatient();
     },
     // 瑙﹀彂鏌ヨ浜嬩欢
-    handleAddpatient(row) {
+    handleAddpatients() {
       this.$emit("kkoption");
 
       getillnesslist(this.patientqueryParams).then((res) => {
         this.donorchargeList = res.rows;
         this.patienttotal = res.total;
         this.Restorecheck();
+      });
+    },
+    // 瑙﹀彂鏌ヨ浜嬩欢
+    handleAddpatient(taskid) {
+      this.$emit("kkoption");
+      if (taskid != this.taskid) {
+        this.recover();
+      }
+      if (taskid) {
+        this.taskid = taskid;
+        Questionnairetaskgetson({ taskid: this.taskid }).then((res) => {
+          if (res.code == 200) {
+            this.form = res.data;
+            this.overallpatin = this.form.patTaskRelevances.concat();
+            this.allpids = [];
+            this.overallpatin.forEach((item) => {
+              this.allpids.push(item.patid);
+            });
+            if (this.allpids[0]) {
+              this.patientqueryParams.pids = this.allpids;
+            } else {
+              this.patientqueryParams.pids = null;
+            }
+            this.handleQuery();
+          }
+        });
+      }
+    },
+    handleQuery() {
+      // 鑾峰彇澶栭儴鎮h��
+      if (this.patientqueryParams.allhosp == 6) {
+        this.Externallist();
+        return;
+      }
+      console.log(11);
+
+      if (this.patientqueryParams.allhosp == 4) {
+        this.tableLabel = [
+          // { label: "鍏ラ櫌鏃ユ湡", width: "170", prop: "starttime" },
+          { label: "鍑洪櫌鏃ユ湡", width: "150", prop: "endtime" },
+          { label: "鎮h��", width: "", prop: "name" },
+          { label: "鎮h�呰瘖鏂�", width: "", prop: "leavediagname" },
+          { label: "韬唤璇�", width: "200", prop: "idcardno" },
+          { label: "鎬у埆", width: "", prop: "sex" },
+          { label: "骞撮緞", width: "", prop: "age" },
+          { label: "鍑洪櫌澶╂暟", width: "", prop: "endDay" },
+          { label: "璐d换鎶ゅ+", width: "", prop: "nurseName" },
+          { label: "鍖荤敓", width: "", prop: "drname" },
+          { label: "绉戝", width: "180", prop: "dept" },
+          { label: "鐥呭尯", width: "150", prop: "leavehospitaldistrictname" },
+        ];
+      } else if (this.patientqueryParams.allhosp == 1) {
+        this.tableLabel = [
+          { label: "鍏ラ櫌鏃ユ湡", width: "150", prop: "starttime" },
+          { label: "鎮h��", width: "", prop: "name" },
+          { label: "鎮h�呰瘖鏂�", width: "", prop: "leavediagname" },
+          { label: "韬唤璇�", width: "200", prop: "idcardno" },
+          { label: "鎬у埆", width: "", prop: "sex" },
+          { label: "骞撮緞", width: "", prop: "age" },
+          { label: "鍑洪櫌澶╂暟", width: "", prop: "endDay" },
+          { label: "璐d换鎶ゅ+", width: "", prop: "nurseName" },
+          { label: "鍖荤敓", width: "", prop: "drname" },
+          { label: "绉戝", width: "180", prop: "dept" },
+          { label: "鐥呭尯", width: "150", prop: "leavehospitaldistrictname" },
+        ];
+      }
+      console.log(this.patientqueryParams.allhosp);
+
+      // 鑾峰彇鎮h�呮暟鎹�
+      getTaskpatientQC(this.patientqueryParams).then((response) => {
+        this.donorchargeList = response.rows;
+        this.donorchargeList.forEach((item) => {
+          if (item.endtime) {
+            item.endDay = this.daysBetween(item.endtime);
+          }
+        });
+        this.Restorecheck();
+
+        this.patienttotal = response.total;
+      });
+    },
+    // 鑾峰彇澶栭儴鎮h�呭鍏ュ垪琛�
+    Externallist() {
+      this.tableLabel = [
+        { label: "鎮h��", width: "", prop: "name" },
+        { label: "韬唤璇�", width: "200", prop: "idcardno" },
+        { label: "鎬у埆", width: "", prop: "sex" },
+        { label: "骞撮緞", width: "", prop: "age" },
+        { label: "鍑洪櫌澶╂暟", width: "", prop: "endDay" },
+      ];
+      this.patientqueryParams.pageSize = 1000;
+
+      Externallist(this.patientqueryParams).then((response) => {
+        this.donorchargeList = response.rows;
+        this.donorchargeList.forEach((item) => {
+          if (item.endtime) {
+            item.endDay = this.daysBetween(item.endtime);
+          }
+        });
+        // this.dialogVisiblepatient = true;
+        this.patienttotal = response.total;
       });
     },
     // 澶氶�夋閫変腑鏁版嵁
@@ -241,8 +446,19 @@
       }
       // 璧嬪�肩粰鏁翠綋閫変腑鏁扮粍
       this.multipleSelection.forEach((item) => {
-
-        if (this.overallCase.every((obj) => obj.icdname != item.icdname)) {
+        if (this.overallCase.every((obj) => obj.name != item.name)) {
+          item.isoperation = 1;
+          item.patid = item.id;
+          item.hospType = this.patientqueryParams.allhosp;
+          item.sfzh = item.idcardno;
+          item.deptCode = item.deptcode;
+          item.deptName = item.dept;
+          item.admindate = item.inhosptime;
+          item.diagname = item.leavediagname;
+          item.sfzh = item.idcardno;
+          if (this.patientqueryParams.allhosp == 6) {
+            item.patfrom = 1;
+          }
           this.overallCase.push(item);
         }
       });
@@ -251,9 +467,9 @@
     // 鍒囨崲椤靛悗鎭㈠閫変腑
     Restorecheck() {
       console.log(this.overallCase, "this.overallCase");
-      const allid = this.overallCase.map((item) => item.icdname);
+      const allid = this.overallCase.map((item) => item.name);
       const overlap = this.donorchargeList.filter((value) => {
-        return allid.includes(value.icdname);
+        return allid.includes(value.name);
       });
       // 淇濇寔ids鍜屽綋鍓嶉〉闈㈢殑鍚屾鎬�
       this.multipleSelection = overlap;
@@ -277,7 +493,40 @@
       }
     },
     AddDispatchpatients() {
+      console.log(this.overallCase);
+      this.form.patTaskRelevances.push(...this.overallCase);
+      console.log(this.form.patTaskRelevances);
+      this.form.isoperation=2;
+      Editsingletask(this.form).then((res) => {
+        if (res.code == 200) {
+          if (this.form.taskid) {
+            this.$modal.msgSuccess("淇敼鎴愬姛");
+          } else {
+            this.$modal.msgSuccess("鏂板鎴愬姛");
+          }
+          this.recover();
       this.$emit("addoption");
+
+        }
+      });
+      // this.dialogVisiblepatient = false;
+      // this.$emit("addoption");
+    },
+    recover() {
+      this.donorchargeList = [];
+      this.donorchargeanlList = [];
+      this.multipleSelection = [];
+      this.allpids = [];
+      this.overallpatin = [];
+      this.form = {};
+      this.patientqueryParams = {
+        pageNum: 1,
+        pageSize: 10,
+        allhosp: "4",
+        pids: null,
+      };
+      this.overallCase = [];
+      // this.dialogVisiblepatient = false;
     },
   },
 };

--
Gitblit v1.9.3