From d3c60e18b95b50751f8088fa2d23cd8ff7f173bc Mon Sep 17 00:00:00 2001
From: WXL (wul) <wl_5969728@163.com>
Date: 星期三, 01 七月 2026 11:05:17 +0800
Subject: [PATCH] 测试完成

---
 src/views/followvisit/record/index.vue |  282 +++++++++++++++++++++++++++-----------------------------
 1 files changed, 137 insertions(+), 145 deletions(-)

diff --git a/src/views/followvisit/record/index.vue b/src/views/followvisit/record/index.vue
index 17d4c6b..c485cfd 100644
--- a/src/views/followvisit/record/index.vue
+++ b/src/views/followvisit/record/index.vue
@@ -1,67 +1,11 @@
 <template>
   <div class="app-container">
-    <div class="leftvlue" style="margin-bottom: 20px">
-      <el-row :gutter="10">
-        <el-col :span="2.5" v-for="(item, index) in cardlist" :key="index">
-          <el-card
-            shadow="hover"
-            :body-style="item.router ? ' cursor: pointer' : 'cursor: default'"
-          >
-            <div style="padding: 8px" @click="$router.push(item.router)">
-              <span>{{ item.name }}</span>
-              <div
-                style="
-                  text-align: center;
-                  font-size: 18px;
-                  margin-top: 10px;
-                  font-weight: 600;
-                "
-              >
-                {{ item.value ? item.value : 0 }}
-              </div>
-            </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>
+    <statistics-cards
+      :cardlist="cardlist"
+      :ycvalue="ycvalue"
+      :jgvalue="jgvalue"
+      :show-warning-condition="orgname == '鐪佺珛鍚屽痉缈犺嫅闄㈠尯'"
+    />
     <el-row :gutter="20">
       <!--鐢ㄦ埛鏁版嵁-->
       <el-form
@@ -103,11 +47,13 @@
             v-model="topqueryParams.scopetype"
             placeholder="榛樿鍏ㄩ儴"
             :options="sourcetype"
+            filterable
+            clearable
             :props="{ expandTrigger: 'hover' }"
             @change="handleChange"
           ></el-cascader>
         </el-form-item>
-         <el-form-item label="鏃ユ湡闄愬埗" prop="status">
+        <el-form-item label="鏃ユ湡闄愬埗" prop="status">
           <el-select v-model="endOut" placeholder="璇烽�夋嫨">
             <el-option
               v-for="item in endOuts"
@@ -124,8 +70,11 @@
             placeholder="璇疯緭鍏ヨ瘖鏂悕绉�"
           ></el-input>
         </el-form-item>
-        <el-form-item label="浠诲姟鐘舵��" prop="status">
-          <el-select v-model="topqueryParams.sendstate" placeholder="璇烽�夋嫨">
+        <el-form-item label="鏈嶅姟鐘舵��" prop="status">
+          <el-select
+            v-model="topqueryParams.sendstateView"
+            placeholder="璇烽�夋嫨"
+          >
             <el-option
               v-for="item in topicoptions"
               :key="item.value"
@@ -162,7 +111,7 @@
       </el-form>
       <el-divider></el-divider>
       <el-row :gutter="10" class="mb8">
-        <el-col :span="1.5">
+        <!-- <el-col :span="1.5">
           <el-button
             type="primary"
             icon="el-icon-plus"
@@ -170,7 +119,7 @@
             @click="handleAdd"
             >鏂板</el-button
           >
-        </el-col>
+        </el-col> -->
         <el-col :span="1.5">
           <div class="documentf">
             <div class="document">
@@ -264,7 +213,12 @@
               size="medium"
               type="text"
               @click="
-                gettoken360(scope.row.sfzh, scope.row.drcode, scope.row.drname)
+                gettoken360(
+                  scope.row.sfzh,
+                  scope.row.drcode,
+                  scope.row.drname,
+                  scope.row.patid
+                )
               "
               ><span class="button-textsc">{{
                 scope.row.sendname
@@ -273,45 +227,32 @@
           </template>
         </el-table-column>
         <el-table-column
-          label="浠诲姟鐘舵��"
+          label="闅忚鐘舵��"
           align="center"
-          key="sendstate"
-          prop="sendstate"
+          key="sendstateView"
+          prop="sendstateView"
           width="120"
         >
           <template slot-scope="scope">
-            <el-tooltip
+             <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">
+              <div v-if="scope.row.sendstateView == 1">
                 <el-tag type="primary" :disable-transitions="false"
                   >寰呴殢璁�</el-tag
                 >
               </div>
-              <div v-if="scope.row.sendstate == 3">
+              <div v-if="scope.row.sendstateView == 2">
                 <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>
+              <div v-if="scope.row.sendstateView == 3">
+                <el-tag type="warning" :disable-transitions="false"
+                  >鏃犻渶闅忚</el-tag
                 >
               </div>
             </el-tooltip>
@@ -359,7 +300,7 @@
         </el-table-column>
         <el-table-column
           label="鍑洪櫌鏃ユ湡"
-          width="200"
+          width="146"
           align="center"
           key="endtime"
           prop="endtime"
@@ -370,7 +311,7 @@
         >
         <el-table-column
           label="搴旈殢璁挎棩鏈�"
-          width="200"
+          width="146"
           align="center"
           key="visitTime"
           prop="visitTime"
@@ -473,6 +414,54 @@
           prop="templatename"
           width="200"
         />
+         <el-table-column
+          label="浠诲姟鐘舵��"
+          align="center"
+          key="sendstate"
+          prop="sendstate"
+          width="120"
+        >
+          <template slot-scope="scope">
+            <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="success" :disable-transitions="false"
+                  >宸插畬鎴�</el-tag
+                >
+              </div>
+              <div v-if="scope.row.sendstate == 7">
+                <el-tag type="danger" :disable-transitions="false">瓒呮椂</el-tag>
+              </div>
+            </el-tooltip>
+          </template>
+        </el-table-column>
         <el-table-column
           label="浠诲姟鎵ц鏂瑰紡"
           align="center"
@@ -763,15 +752,17 @@
   getTaskservelist,
   buidegetTasklist,
   query360PatInfo,
+  query360PatInfonh,
 } from "@/api/AiCentre/index";
 import Treeselect from "@riophae/vue-treeselect";
 import store from "@/store";
 import "@riophae/vue-treeselect/dist/vue-treeselect.css";
+import StatisticsCards from "@/components/StatisticsCards";
 
 export default {
   name: "Discharge",
   dicts: ["sys_normal_disable", "sys_user_sex", "sys_yujing", "sys_suggest"],
-  components: { Treeselect },
+  components: { Treeselect,StatisticsCards },
   data() {
     return {
       // 閬僵灞�
@@ -858,7 +849,7 @@
       },
       value: [],
       list: [],
-  endOut: localStorage.getItem("orgname") == "涓芥按甯備腑鍖婚櫌" ? 0 : 1, //0 鍑洪櫌鏃堕棿(姝e簭)    1 鍑洪櫌鏃堕棿(鍊掑簭)   2 鍙戦�佹椂闂�(姝e簭)    3 鍙戦�佹椂闂�(鍊掑簭)  7搴旈殢璁挎棩鏈�(鍊掑簭) 搴旈殢璁挎棩鏈�(姝e簭)
+      endOut: localStorage.getItem("orgname") == "涓芥按甯備腑鍖婚櫌" ? 0 : 1, //0 鍑洪櫌鏃堕棿(姝e簭)    1 鍑洪櫌鏃堕棿(鍊掑簭)   2 鍙戦�佹椂闂�(姝e簭)    3 鍙戦�佹椂闂�(鍊掑簭)  7搴旈殢璁挎棩鏈�(鍊掑簭) 搴旈殢璁挎棩鏈�(姝e簭)
       endOuts: [
         {
           value: 0,
@@ -888,39 +879,26 @@
       loading: false,
       cardlist: [
         {
-          name: "鍑洪櫌鏈嶅姟鎬婚噺",
-          value: 0,
-        },
-        // {
-        //   name: "鎮h�呰繃婊�",
-        //   value: 0,
-        // },
-        {
-          name: "闇�闅忚",
+          name: "鎮h�呮湇鍔℃�婚噺",
           value: 0,
         },
 
-        // {
-        //   name: "寮傚父",
-        //   value: 0,
-        // },
         {
-          name: "鍙戦�佸け璐�",
+          name: "鏃犻渶闅忚",
+          value: 0,
+        },
+        {
+          name: "闇�闅忚",
           value: 0,
         },
         {
           name: "寰呴殢璁�",
           value: 0,
         },
-        // {
-        //   name: "宸插彂閫�",
-        //   value: 0,
-        // },
-
-        // {
-        //   name: "琛ㄥ崟宸插彂閫�",
-        //   value: 0,
-        // },
+        {
+          name: "宸插畬鎴�",
+          value: 0,
+        },
       ],
 
       // 琛ㄥ崟鍙傛暟
@@ -954,31 +932,23 @@
         },
         {
           value: 1,
-          label: "琛ㄥ崟宸查鍙�",
-        },
-        {
-          value: 2,
           label: "寰呴殢璁�",
         },
         {
+          value: 2,
+          label: "闅忚涓�",
+        },
+        {
           value: 3,
-          label: "琛ㄥ崟宸插彂閫�",
+          label: "鏈畬鎴�",
         },
         {
           value: 4,
-          label: "涓嶆墽琛�",
-        },
-         {
-          value: 5,
-          label: "鍙戦�佸け璐�",
-        },
-        {
-          value: 6,
           label: "宸插畬鎴�",
         },
-         {
-          value: 7,
-          label: "瓒呮椂",
+        {
+          value: 5,
+          label: "鏃犻渶闅忚",
         },
       ],
       topicoptionsyj: [
@@ -1067,7 +1037,7 @@
         this.topqueryParams.leavehospitaldistrictcodes =
           store.getters.belongWards.map((obj) => obj.districtCode);
       }
-        if (this.endOut == 0) {
+      if (this.endOut == 0) {
         this.topqueryParams.endSendDateTime = this.formatDateToYYYYMMDDHHMMSS(
           this.getEndOfDay()
         );
@@ -1090,18 +1060,23 @@
       } else {
         this.topqueryParams.deptOrDistrict = 1;
       }
+
+      if (!this.followupAuthority()) {
+        this.$message.warning("鏈厤缃瀹�/鐥呭尯鐩稿叧鏉冮檺涓嶅彲鏌ヨ");
+        return Promise.reject(new Error("鏃犳潈闄愭煡璇�"));
+      }
       getTaskservelist(this.topqueryParams).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);
+            Number(response.rows[0].wxsf) + Number(response.rows[0].xsf) || 0;
           // this.cardlist[1].value = response.rows[0].wzx;
-          this.cardlist[1].value = response.rows[0].ysf;
+          this.cardlist[1].value = response.rows[0].wxsf || 0;
           this.ycvalue = response.rows[0].yc;
-          this.cardlist[2].value = response.rows[0].fssb;
-          this.cardlist[3].value = response.rows[0].dsf;
-          // this.cardlist[4].value = response.rows[0].yfs2;
+          this.cardlist[2].value = response.rows[0].xsf || 0;
+          this.cardlist[3].value = response.rows[0].dsf || 0;
+          this.cardlist[4].value = response.rows[0].ywc || 0;
           this.yfsvalue = response.rows[0].yfs;
         }
         this.loading = false;
@@ -1132,8 +1107,25 @@
     },
 
     //鎮h��360璺宠浆
-    gettoken360(sfzh, drcode, drname) {
-      // this.$modal.msgWarning('360鍔熻兘鏆傛湭寮�閫�');
+    gettoken360(sfzh, drcode, drname, id) {
+      const orgname = localStorage.getItem("orgname");
+      if (orgname == "鍗楀崕澶у闄勫睘绗竴鍖婚櫌") {
+        query360PatInfonh(id).then((res) => {
+          if (res.data) {
+            window.open(res.data, "_blank");
+          } else {
+            this.$modal.msgWarning("360鏌ヨ鏃犵粨鏋�");
+          }
+        });
+        return;
+      } else if (
+        orgname == "绗竴浜烘皯鍖婚櫌婀栨花闄㈠尯" ||
+        orgname == "绗竴浜烘皯鍖婚櫌鍚村北闄㈠尯"
+      ) {
+        let url = `http://192.200.81.189:9100/blj/view?BINGRENID=${id}&YONGHUID=DBA`;
+        window.open(url, "_blank");
+        return;
+      }
 
       this.postData.YeWuXX.BingRenXX.ZhengJianHM = sfzh;
 
@@ -1151,7 +1143,7 @@
       date.setHours(23, 59, 59, 0); // 灏嗘椂闂磋缃负23:59:59.000
       return date;
     },
-     formatDateToYYYYMMDDHHMMSS(date) {
+    formatDateToYYYYMMDDHHMMSS(date) {
       const year = date.getFullYear();
       const month = String(date.getMonth() + 1).padStart(2, "0"); // 鏈堜唤琛ラ浂
       const day = String(date.getDate()).padStart(2, "0"); // 鏃ユ湡琛ラ浂
@@ -1188,7 +1180,7 @@
         this.total = response.total;
         if (refresh) {
           this.cardlist[0].value =
-            Number(response.rows[0].wzx) + Number(response.rows[0].ysf);
+            Number(response.rows[0].wxsf) + Number(response.rows[0].xsf) || 0;
           this.cardlist[1].value = response.rows[0].wzx;
           this.cardlist[2].value = response.rows[0].ysf;
           this.ycvalue = response.rows[0].yc;

--
Gitblit v1.9.3