From 0516a6bf61d07b035e1a7c361d1566963a313fdd Mon Sep 17 00:00:00 2001
From: WXL <1785969728@qq.com>
Date: 星期二, 11 三月 2025 14:34:41 +0800
Subject: [PATCH] 测试完成

---
 src/views/followvisit/discharge/index.vue |  470 +++++++++++++++++++++++++++++++++++++++-------------------
 1 files changed, 318 insertions(+), 152 deletions(-)

diff --git a/src/views/followvisit/discharge/index.vue b/src/views/followvisit/discharge/index.vue
index 7d4f566..dc2c913 100644
--- a/src/views/followvisit/discharge/index.vue
+++ b/src/views/followvisit/discharge/index.vue
@@ -22,6 +22,44 @@
             </div>
           </el-card>
         </el-col>
+        <el-col :span="2.5">
+          <div class="ysfleftvlue">
+            <el-card shadow="hover">
+              <div style="padding: 8px">
+                <span>琛ㄥ崟宸插彂閫�</span>
+                <div
+                  style="
+                    text-align: center;
+                    font-size: 18px;
+                    margin-top: 10px;
+                    font-weight: 600;
+                  "
+                >
+                  {{ yfsvalue }}
+                </div>
+              </div>
+            </el-card>
+          </div>
+        </el-col>
+        <el-col :span="2.5">
+          <div class="errleftvlue">
+            <el-card shadow="hover">
+              <div style="padding: 8px">
+                <span>寮傚父</span>
+                <div
+                  style="
+                    text-align: center;
+                    font-size: 18px;
+                    margin-top: 10px;
+                    font-weight: 600;
+                  "
+                >
+                  {{ ycvalue }}
+                </div>
+              </div>
+            </el-card>
+          </div>
+        </el-col>
       </el-row>
     </div>
     <el-row :gutter="20">
@@ -59,19 +97,15 @@
             placeholder="璇疯緭鍏ユ偅鑰呭鍚�"
           ></el-input>
         </el-form-item>
+
         <el-form-item label="鎮h�呰寖鍥�" prop="status">
-          <el-select
-            v-model="topqueryParams.searchscope"
-            placeholder="璇烽�夋嫨鎮h�呰寖鍥�"
-          >
-            <el-option
-              v-for="item in source"
-              :key="item.value"
-              :label="item.label"
-              :value="item.value"
-            >
-            </el-option>
-          </el-select>
+          <el-cascader
+            v-model="topqueryParams.scopetype"
+            placeholder="榛樿鍏ㄩ儴"
+            :options="sourcetype"
+            :props="{ expandTrigger: 'hover' }"
+            @change="handleChange"
+          ></el-cascader>
         </el-form-item>
 
         <el-form-item label="浠诲姟鐘舵��" prop="status">
@@ -91,7 +125,7 @@
             type="primary"
             icon="el-icon-search"
             size="medium"
-            @click="handleQuery"
+            @click="handleQuery(1)"
             >鎼滅储</el-button
           >
           <el-button icon="el-icon-refresh" size="medium" @click="resetQuery"
@@ -154,6 +188,19 @@
             </div>
           </div>
         </el-col>
+        <el-col :span="1.5">
+          <div class="documentf">
+            <div class="document">
+              <el-button
+                type="success"
+                plain
+                size="medium"
+                @click="buidegetTasklist()"
+                >寰呭姙鏈嶅姟</el-button
+              >
+            </div>
+          </div>
+        </el-col>
       </el-row>
       <el-table
         v-loading="loading"
@@ -187,32 +234,41 @@
           width="120"
         >
           <template slot-scope="scope">
-            <div v-if="scope.row.sendstate == 1">
-              <el-tag type="primary" :disable-transitions="false"
-                >琚鍙�</el-tag
-              >
-            </div>
-            <div v-if="scope.row.sendstate == 2">
-              <el-tag type="primary" :disable-transitions="false"
-                >寰呭彂閫�</el-tag
-              >
-            </div>
-            <div v-if="scope.row.sendstate == 3">
-              <el-tag type="success" :disable-transitions="false"
-                >宸插彂閫佹湭棰嗗彇</el-tag
-              >
-            </div>
-            <div v-if="scope.row.sendstate == 4">
-              <el-tag type="info" :disable-transitions="false">涓嶆墽琛�</el-tag>
-            </div>
-            <div v-if="scope.row.sendstate == 5">
-              <el-tag type="danger" :disable-transitions="false"
-                >鍙戦�佸け璐�</el-tag
-              >
-            </div>
-            <div v-if="scope.row.sendstate == 6">
-              <el-tag type="danger" :disable-transitions="false">宸插畬鎴�</el-tag>
-            </div>
+            <el-tooltip
+              class="item"
+              effect="dark"
+              :content="scope.row.remark"
+              placement="top-start"
+            >
+              <div v-if="scope.row.sendstate == 1">
+                <el-tag type="primary" :disable-transitions="false"
+                  >琛ㄥ崟宸查鍙�</el-tag
+                >
+              </div>
+              <div v-if="scope.row.sendstate == 2">
+                <el-tag type="primary" :disable-transitions="false"
+                  >寰呮墽琛�</el-tag
+                >
+              </div>
+              <div v-if="scope.row.sendstate == 3">
+                <el-tag type="success" :disable-transitions="false"
+                  >琛ㄥ崟宸插彂閫�</el-tag
+                >
+              </div>
+              <div v-if="scope.row.sendstate == 4">
+                <el-tag type="info" :disable-transitions="false">涓嶆墽琛�</el-tag>
+              </div>
+              <div v-if="scope.row.sendstate == 5">
+                <el-tag type="danger" :disable-transitions="false"
+                  >鍙戦�佸け璐�</el-tag
+                >
+              </div>
+              <div v-if="scope.row.sendstate == 6">
+                <el-tag type="danger" :disable-transitions="false"
+                  >宸插畬鎴�</el-tag
+                >
+              </div>
+            </el-tooltip>
           </template>
         </el-table-column>
         <!-- <el-table-column
@@ -285,9 +341,7 @@
           prop="endDay"
         >
           <template slot-scope="scope">
-            <span>{{
-              scope.row.endDay ? scope.row.endDay + "澶�" : "鏃ユ湡缂哄け"
-            }}</span>
+            <span>{{ scope.row.endDay ? scope.row.endDay + "澶�" : "" }}</span>
           </template>
         </el-table-column>
         <el-table-column
@@ -377,7 +431,7 @@
             <span v-for="item in scope.row.preachform">{{ item }}銆� </span>
           </template>
         </el-table-column>
-        <el-table-column
+        <!-- <el-table-column
           label="浠诲姟鍙戦�佹祦绋�"
           align="center"
           key="serviceSubtaskRecordList"
@@ -390,17 +444,17 @@
               >{{ item.remark }}銆�
             </span>
           </template>
-        </el-table-column>
+        </el-table-column> -->
         <el-table-column
           label="浠诲姟缁撴灉璇存槑"
-          width="120"
+          width="200"
           align="center"
           key="remark"
           prop="remark"
         >
           <template slot-scope="scope" v-if="scope.row.remark">
             <el-tag
-              type="success"
+              type="warning"
               v-if="scope.row.sendstate != 5 && scope.row.sendstate != 4"
               >{{ scope.row.remark }}</el-tag
             >
@@ -603,7 +657,7 @@
   resetUserPwd,
   changeUserStatus,
 } from "@/api/system/user";
-import { getTaskservelist } from "@/api/AiCentre/index";
+import { getTaskservelist, buidegetTasklist } from "@/api/AiCentre/index";
 import Treeselect from "@riophae/vue-treeselect";
 import store from "@/store";
 import "@riophae/vue-treeselect/dist/vue-treeselect.css";
@@ -647,7 +701,10 @@
       },
       dynamicTags: ["閫夐」涓�", "閫夐」浜�", "閫夐」涓�"], //閫夐」
       inputVisible: false,
+      ycvalue: "",
+      yfsvalue: "",
       inputValue: "",
+      preachform: "",
       previewVisible: false, //闂ㄨ瘖闅忚棰勮寮规
       radio: "",
       radios: [],
@@ -660,80 +717,61 @@
       },
       value: [],
       list: [],
-      source: [
-        {
-          value: 0,
-          label: "鎵�灞炴偅鑰�",
-        },
+
+      sourcetype: [
         {
           value: 1,
-          label: "绉戝鎮h��",
+          label: "绉戝",
+          children: [],
         },
         {
           value: 2,
-          label: "鐥呭尯鎮h��",
+          label: "鐥呭尯",
+          children: [],
+        },
+        {
+          value: 3,
+          label: "鍏ㄩ儴",
         },
       ],
       loading: false,
       cardlist: [
         {
-          name: "鍏ㄩ儴鏈嶅姟",
+          name: "鍑洪櫌鏈嶅姟鎬婚噺",
+          value: 0,
+        },
+        {
+          name: "鎮h�呰繃婊�",
           value: 0,
         },
         {
           name: "搴旈殢璁�",
           value: 0,
         },
-        {
-          name: "涓嶆墽琛�",
-          value: 0,
-        },
-        {
-          name: "寮傚父",
-          value: 0,
-        },
+
+        // {
+        //   name: "寮傚父",
+        //   value: 0,
+        // },
         {
           name: "鍙戦�佸け璐�",
           value: 0,
         },
         {
-          name: "琚鍙�",
+          name: "寰呮墽琛�",
           value: 0,
         },
         {
-          name: "宸插彂閫佹湭棰嗗彇",
+          name: "宸插彂閫�",
           value: 0,
         },
+
+        // {
+        //   name: "琛ㄥ崟宸插彂閫�",
+        //   value: 0,
+        // },
       ],
-      pickerOptions: {
-        disabledDate(time) {
-          return time.getTime() > Date.now();
-        },
-        shortcuts: [
-          {
-            text: "浠婂ぉ",
-            onClick(picker) {
-              picker.$emit("pick", new Date());
-            },
-          },
-          {
-            text: "鏄ㄥぉ",
-            onClick(picker) {
-              const date = new Date();
-              date.setTime(date.getTime() - 3600 * 1000 * 24);
-              picker.$emit("pick", date);
-            },
-          },
-          {
-            text: "涓�鍛ㄥ墠",
-            onClick(picker) {
-              const date = new Date();
-              date.setTime(date.getTime() - 3600 * 1000 * 24 * 7);
-              picker.$emit("pick", date);
-            },
-          },
-        ],
-      },
+
       // 琛ㄥ崟鍙傛暟
       form: {
         phonenumber: "",
@@ -748,7 +786,10 @@
         pageNum: 1,
         pageSize: 10,
         serviceType: 2,
-        searchscope: 2,
+        searchscope: 3,
+        scopetype: [],
+        leaveldeptcodes: [],
+        leavehospitaldistrictcodes: [],
       },
       propss: { multiple: true },
       options: [],
@@ -756,15 +797,15 @@
       topicoptions: [
         {
           value: 1,
-          label: "琚鍙�",
+          label: "琛ㄥ崟宸查鍙�",
         },
         {
           value: 2,
-          label: "寰呭彂閫�",
+          label: "寰呮墽琛�",
         },
         {
           value: 3,
-          label: "宸插彂閫佹湭棰嗗彇",
+          label: "琛ㄥ崟宸插彂閫�",
         },
         {
           value: 4,
@@ -789,6 +830,8 @@
           label: "姝e父",
         },
       ],
+      errtype: "",
+      leavehospitaldistrictcode: "",
       serviceState: [],
       checkboxlist: [],
       // 琛ㄥ崟鏍¢獙
@@ -799,62 +842,154 @@
   created() {
     this.serviceState = store.getters.serviceState;
     this.checkboxlist = store.getters.checkboxlist;
-
-    this.getList();
+    this.errtype = this.$route.query.errtype;
+    this.leavehospitaldistrictcode =
+      this.$route.query.leavehospitaldistrictcode;
+    this.sourcetype[0].children = store.getters.belongDepts.map((dept) => {
+      return {
+        label: dept.deptName,
+        value: dept.deptCode,
+      };
+    });
+    this.sourcetype[1].children = store.getters.belongWards.map((dept) => {
+      return {
+        label: dept.districtName,
+        value: dept.districtCode,
+      };
+    });
+    if (this.errtype) {
+      this.toleadExport(2);
+    } else {
+      this.getList(1);
+    }
     this.getConfigKey("sys.user.initPassword").then((response) => {
       this.initPassword = response.msg;
     });
   },
   activated() {
-    this.getList();
+    this.getList(1);
   },
   methods: {
     /** 鏌ヨ闂ㄨ瘖闅忚鏈嶅姟鍒楄〃 */
-    getList() {
-      if (this.topqueryParams.searchscope == 1) {
-        this.topqueryParams.leaveldeptcodes = store.getters.belongDepts.map(
-          (obj) => obj.deptCode
-        );
-        this.topqueryParams.leavehospitaldistrictcodes = null;
-      } else if (this.topqueryParams.searchscope == 2) {
-        this.topqueryParams.leavehospitaldistrictcodes =
-          store.getters.belongWards.map((obj) => obj.districtCode);
-        this.topqueryParams.leaveldeptcodes = null;
-      } else {
+    getList(refresh) {
+      // 榛樿鍏ㄩ儴
+      if (this.topqueryParams.searchscope == 3) {
         this.topqueryParams.leaveldeptcodes = store.getters.belongDepts.map(
           (obj) => obj.deptCode
         );
         this.topqueryParams.leavehospitaldistrictcodes =
           store.getters.belongWards.map((obj) => obj.districtCode);
       }
+      // 鎺ュ彈寮傚父璺宠浆
+      if (this.errtype) {
+        this.topqueryParams.leavehospitaldistrictcodes.push(
+          this.leavehospitaldistrictcode
+        );
+        console.log(this.topqueryParams.leavehospitaldistrictcodes, "11");
+      }
       this.loading = true;
+      if (this.topqueryParams.leavehospitaldistrictcodes[0]&&this.topqueryParams.leaveldeptcodes[0]) {
+        this.topqueryParams.deptOrDistrict=2;
+      }else{
+        this.topqueryParams.deptOrDistrict=1;
+      }
       getTaskservelist(this.topqueryParams).then((response) => {
         this.userList = response.rows[0].serviceSubtaskList;
         this.total = response.total;
-        this.cardlist[0].value =
-          Number(response.rows[0].wzx) + Number(response.rows[0].ysf);
-        this.cardlist[1].value = response.rows[0].ysf;
-        this.cardlist[2].value = response.rows[0].wzx;
-        this.cardlist[3].value = response.rows[0].yc;
-        this.cardlist[4].value = response.rows[0].fssb;
-        this.cardlist[5].value = response.rows[0].blq;
-        this.cardlist[6].value = response.rows[0].yfs;
+        if (refresh) {
+          this.cardlist[0].value =
+            Number(response.rows[0].wzx) + Number(response.rows[0].ysf);
+          this.cardlist[1].value = response.rows[0].wzx;
+          this.cardlist[2].value = response.rows[0].ysf;
+          this.ycvalue = response.rows[0].yc;
+          this.cardlist[3].value = response.rows[0].fssb;
+          this.cardlist[4].value = response.rows[0].dfs;
+          this.cardlist[5].value = response.rows[0].yfs2;
+          this.yfsvalue = response.rows[0].yfs;
+        }
         this.loading = false;
         this.userList.forEach((item) => {
-          const idArray = null;
+          let idArray = null;
           if (item.endtime) {
             item.endDay = this.daysBetween(item.endtime);
           }
+
+          if (item.preachform) {
+            if (item.endtime) {
+              item.preachformson = item.preachform;
+              idArray = item.preachform.split(",");
+            }
+
+            item.preachform = idArray.map((value) => {
+              // 鏌ユ壘id瀵瑰簲鐨勫璞�
+              const item = this.checkboxlist.find(
+                (item) => item.value == value
+              );
+              // 濡傛灉鎵惧埌瀵瑰簲鐨刬d锛岃繑鍥瀕abel鍊硷紝鍚﹀垯杩斿洖null
+              return item ? item.label : null;
+            });
+          }
+        });
+        this.total = response.total;
+      });
+    },
+    buidegetTasklist(type) {
+      if (this.topqueryParams.searchscope == 3) {
+        this.topqueryParams.leaveldeptcodes = store.getters.belongDepts.map(
+          (obj) => obj.deptCode
+        );
+        this.topqueryParams.leavehospitaldistrictcodes =
+          store.getters.belongWards.map((obj) => obj.districtCode);
+      }
+      // 鎺ュ彈寮傚父璺宠浆
+      if (this.errtype) {
+        this.topqueryParams.leavehospitaldistrictcodes.push(
+          this.leavehospitaldistrictcode
+        );
+      }
+      let obj = {
+        pageNum: 1,
+        pageSize: 10,
+        leavehospitaldistrictcodes: this.topqueryParams.leavehospitaldistrictcodes,
+        sendstates: [2, 3],
+        leaveldeptcodes: this.topqueryParams.leaveldeptcodes,
+      };
+      buidegetTasklist(obj).then((response) => {
+        this.userList = response.rows[0].serviceSubtaskList;
+        this.total = response.total;
+        if (refresh) {
+          this.cardlist[0].value =
+            Number(response.rows[0].wzx) + Number(response.rows[0].ysf);
+          this.cardlist[1].value = response.rows[0].wzx;
+          this.cardlist[2].value = response.rows[0].ysf;
+          this.ycvalue = response.rows[0].yc;
+          this.cardlist[3].value = response.rows[0].fssb;
+          this.cardlist[4].value = response.rows[0].dfs;
+          this.cardlist[5].value = response.rows[0].yfs2;
+          this.yfsvalue = response.rows[0].yfs;
+        }
+        this.loading = false;
+        this.userList.forEach((item) => {
+          let idArray = null;
           if (item.endtime) {
-            idArray = item.preachform.split(",");
+            item.endDay = this.daysBetween(item.endtime);
           }
 
-          item.preachform = idArray.map((value) => {
-            // 鏌ユ壘id瀵瑰簲鐨勫璞�
-            const item = this.checkboxlist.find((item) => item.value == value);
-            // 濡傛灉鎵惧埌瀵瑰簲鐨刬d锛岃繑鍥瀕abel鍊硷紝鍚﹀垯杩斿洖null
-            return item ? item.label : null;
-          });
+          if (item.preachform) {
+            if (item.endtime) {
+              item.preachformson = item.preachform;
+              idArray = item.preachform.split(",");
+            }
+
+            item.preachform = idArray.map((value) => {
+              // 鏌ユ壘id瀵瑰簲鐨勫璞�
+              const item = this.checkboxlist.find(
+                (item) => item.value == value
+              );
+              // 濡傛灉鎵惧埌瀵瑰簲鐨刬d锛岃繑鍥瀕abel鍊硷紝鍚﹀垯杩斿洖null
+              return item ? item.label : null;
+            });
+          }
         });
         this.total = response.total;
       });
@@ -916,17 +1051,8 @@
       this.resetForm("form");
     },
     /** 鎼滅储鎸夐挳鎿嶄綔 */
-    handleQuery() {
-      if (this.topqueryParams.searchscope == 1) {
-        this.topqueryParams.leaveldeptcodes = store.getters.belongDepts.map(
-          (obj) => obj.deptCode
-        );
-        this.topqueryParams.leavehospitaldistrictcodes = null;
-      } else if (this.topqueryParams.searchscope == 2) {
-        this.topqueryParams.leavehospitaldistrictcodes =
-          store.getters.belongWards.map((obj) => obj.districtCode);
-        this.topqueryParams.leaveldeptcodes = null;
-      } else {
+    handleQuery(refresh) {
+      if (this.topqueryParams.searchscope == 3) {
         this.topqueryParams.leaveldeptcodes = store.getters.belongDepts.map(
           (obj) => obj.deptCode
         );
@@ -937,7 +1063,26 @@
       this.topqueryParams.startOutHospTime = this.dateRange[0];
       this.topqueryParams.endOutHospTime = this.dateRange[1];
 
-      this.getList();
+      this.getList(refresh);
+    },
+    // 鎮h�呰寖鍥村鐞�
+    handleChange(value) {
+      let type = value[0];
+      let code = value.slice(-1)[0];
+      this.topqueryParams.leavehospitaldistrictcodes = [];
+      this.topqueryParams.leaveldeptcodes = [];
+
+      if (type == 1) {
+        this.topqueryParams.leaveldeptcodes.push(code);
+        this.topqueryParams.leavehospitaldistrictcodes = [];
+        this.topqueryParams.searchscope = 1;
+      } else if (type == 2) {
+        this.topqueryParams.leavehospitaldistrictcodes.push(code);
+        this.topqueryParams.leaveldeptcodes = [];
+        this.topqueryParams.searchscope = 2;
+      } else {
+        this.topqueryParams.searchscope = 3;
+      }
     },
     /** 閲嶇疆鎸夐挳鎿嶄綔 */
     resetQuery() {
@@ -946,9 +1091,9 @@
         pageNum: 1,
         pageSize: 10,
         serviceType: 2,
-        searchscope: 2,
+        searchscope: 3,
       };
-      this.handleQuery();
+      this.handleQuery(1);
     },
     // 澶氶�夋閫変腑鏁版嵁
     handleSelectionChange(selection) {
@@ -1012,13 +1157,13 @@
             updateUser(this.form).then((response) => {
               this.$modal.msgSuccess("淇敼鎴愬姛");
               this.open = false;
-              this.getList();
+              this.getList(1);
             });
           } else {
             addUser(this.form).then((response) => {
               this.$modal.msgSuccess("鏂板鎴愬姛");
               this.open = false;
-              this.getList();
+              this.getList(1);
             });
           }
         }
@@ -1033,7 +1178,7 @@
           return delUser(userIds);
         })
         .then(() => {
-          this.getList();
+          this.getList(1);
           this.$modal.msgSuccess("鍒犻櫎鎴愬姛");
         })
         .catch(() => {});
@@ -1046,7 +1191,7 @@
           return console.log("鍋滄鎴愬姛");
         })
         .then(() => {
-          this.getList();
+          this.getList(1);
           this.$modal.msgWarning("鍋滄鎴愬姛");
         })
         .catch(() => {});
@@ -1059,7 +1204,7 @@
           return console.log("寮�鍚垚鍔�");
         })
         .then(() => {
-          this.getList();
+          this.getList(1);
           this.$modal.msgSuccess("寮�鍚垚鍔�");
         })
         .catch(() => {});
@@ -1072,7 +1217,7 @@
           return console.log("閫変腑鎴愬姛");
         })
         .then(() => {
-          this.getList();
+          this.getList(1);
           this.$modal.msgSuccess("閲嶇疆鎴愬姛");
         })
         .catch(() => {});
@@ -1084,8 +1229,12 @@
     // 璺宠浆璇︽儏椤�
     Seedetails(row) {
       let type = "";
-      if (row.preachform == 3) {
-        type = 1;
+      console.log(row, "rwo");
+      if (row.preachformson) {
+        if (row.preachformson.includes("3")) {
+          type = 1;
+          console.log(type, "rwo");
+        }
       }
       this.$router.push({
         path: "/followvisit/record/detailpage/",
@@ -1093,7 +1242,7 @@
           taskid: row.taskid,
           patid: row.patid,
           id: row.id,
-          Voicetype: 1,
+          Voicetype: type,
         },
       });
     },
@@ -1109,8 +1258,10 @@
     },
     /** 瀵煎嚭鎸夐挳鎿嶄綔 */
     handleExport() {
+      this.topqueryParams.pageNum = null;
+      this.topqueryParams.pageSize = null;
       this.download(
-        "system/user/export",
+        "smartor/serviceSubtask/export",
         {
           ...this.topqueryParams,
         },
@@ -1227,6 +1378,21 @@
   background: #8dc8f8;
   cursor: pointer; /* 榧犳爣鎮诞鏃跺彉涓烘墜褰� */
 }
+::v-deep.errleftvlue .el-card__body {
+  background: #fdd0d7;
+}
+::v-deep.errleftvlue .el-card__body:hover {
+  background: #f88d96;
+  cursor: pointer; /* 榧犳爣鎮诞鏃跺彉涓烘墜褰� */
+}
+
+::v-deep.ysfleftvlue .el-card__body {
+  background: #d0fdd8;
+}
+::v-deep.ysfleftvlue .el-card__body:hover {
+  background: #8df8a4;
+  cursor: pointer; /* 榧犳爣鎮诞鏃跺彉涓烘墜褰� */
+}
 .button-bb {
   font-weight: 500;
   background-color: #2ba05c;

--
Gitblit v1.9.3