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/patient/physical/index.vue |  401 ++++++++++++++++++++++++++++++--------------------------
 1 files changed, 213 insertions(+), 188 deletions(-)

diff --git a/src/views/patient/physical/index.vue b/src/views/patient/physical/index.vue
index 46341dd..b298216 100644
--- a/src/views/patient/physical/index.vue
+++ b/src/views/patient/physical/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,21 +47,22 @@
             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-select v-model="topqueryParams.sendstate" placeholder="璇烽�夋嫨">
-            <el-option
-              v-for="item in topicoptions"
-              :key="item.value"
-              :label="item.label"
-              :value="item.value"
-            >
-            </el-option>
-          </el-select>
+        <el-form-item label="闅忚鐘舵��" prop="status">
+          <el-cascader
+            v-model="serviceStatusValue"
+            placeholder="璇烽�夋嫨"
+            :options="serviceStatusOptions"
+            :props="cascaderProps"
+            @change="handleServiceStatusChange"
+            clearable
+          ></el-cascader>
         </el-form-item>
 
         <el-form-item>
@@ -138,8 +83,7 @@
         <el-col :span="1.5">
           <el-button
             type="primary"
-            plain
-            icon="el-icon-plus"
+                        icon="el-icon-plus"
             size="medium"
             @click="handleAdd"
             >鏂板</el-button
@@ -154,7 +98,6 @@
                 icon="el-icon-upload2"
                 size="medium"
                 @click="handleExport"
-                v-hasPermi="['system:user:export']"
                 >瀵煎嚭</el-button
               >
             </div>
@@ -192,7 +135,7 @@
       <el-table
         v-loading="loading"
         :data="userList"
-        height="660"
+        height="808"
         :row-class-name="tableRowClassName"
         @selection-change="handleSelectionChange"
       >
@@ -230,39 +173,35 @@
           </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">
-            <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.sendstateView == 1">
+                <el-tag type="primary" :disable-transitions="false"
+                  >寰呴殢璁�</el-tag
+                >
+              </div>
+              <div v-if="scope.row.sendstateView == 2">
+                <el-tag type="success" :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>
           </template>
         </el-table-column>
         <!-- <el-table-column
@@ -290,12 +229,12 @@
         <el-table-column
           label="闅忚浜哄憳"
           align="center"
-          key="createBy"
-          prop="createBy"
+          key="updateBy"
+          prop="updateBy"
           width="120"
         />
         <el-table-column
-          label="闅忚鏃堕棿"
+          label="闅忚瀹屾垚鏃堕棿"
           sortable
           align="center"
           prop="finishtime"
@@ -334,13 +273,13 @@
         >
         <el-table-column
           label="搴旈殢璁挎棩鏈�"
-          width="200"
+          width="146"
           align="center"
-          key="longSendTime"
-          prop="longSendTime"
+          key="visitTime"
+          prop="visitTime"
         >
           <template slot-scope="scope">
-            <span>{{ formatTime(scope.row.longSendTime) }}</span>
+            <span>{{ formatTime(scope.row.visitTime) }}</span>
           </template></el-table-column
         >
         <el-table-column
@@ -429,6 +368,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"
@@ -656,11 +643,12 @@
 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 {
       // 閬僵灞�
@@ -730,41 +718,62 @@
         },
       ],
       loading: false,
+      serviceStatusValue: 10,
+      cascaderProps: {
+        expandTrigger: "hover", // 鎮仠灞曞紑
+        checkStrictly: true, // 鉁� 鍏抽敭锛氬厑璁搁�変腑浠绘剰涓�绾�
+        emitPath: false, // 鉁� 鍙繑鍥為�変腑鐨勫�硷紝涓嶈繑鍥炶矾寰勬暟缁�
+      },
+      // 闅忚鐘舵�佺骇鑱旈�夋嫨鍣�
+      serviceStatusOptions: [
+        {
+          value: null,
+          label: "鍏ㄩ儴",
+        },
+        {
+          value: 10, // 涓�绾э細寰呴殢璁�
+          label: "寰呴殢璁�",
+          children: [
+            { value: 1, label: "琚鍙�" },
+            { value: 2, label: "寰呭彂閫�" },
+            { value: 3, label: "宸插彂閫�" },
+            { value: 5, label: "鍙戦�佸け璐�" },
+            { value: 7, label: "瓒呮椂" },
+          ],
+        },
+        {
+          value: 20, // 涓�绾э細宸插畬鎴�
+          label: "宸插畬鎴�",
+          children: [{ value: 6, label: "宸插畬鎴�" }],
+        },
+        {
+          value: 30, // 涓�绾э細鏃犻渶闅忚
+          label: "鏃犻渶闅忚",
+          children: [{ value: 4, label: "涓嶆墽琛�" }],
+        },
+      ],
       cardlist: [
         {
-          name: "蹇冪數鏈嶅姟鎬婚噺",
-          value: 0,
-        },
-        // {
-        //   name: "鎮h�呰繃婊�",
-        //   value: 0,
-        // },
-        {
-          name: "搴旈殢璁�",
+          name: "鎮h�呮湇鍔℃�婚噺",
           value: 0,
         },
 
-        // {
-        //   name: "寮傚父",
-        //   value: 0,
-        // },
-        // {
-        //   name: "鍙戦�佸け璐�",
-        //   value: 0,
-        // },
+        {
+          name: "鏃犻渶闅忚",
+          value: 0,
+        },
+        {
+          name: "闇�闅忚",
+          value: 0,
+        },
         {
           name: "寰呴殢璁�",
           value: 0,
         },
         {
-          name: "宸查殢璁�",
+          name: "宸插畬鎴�",
           value: 0,
         },
-
-        // {
-        //   name: "琛ㄥ崟宸插彂閫�",
-        //   value: 0,
-        // },
       ],
 
       // 琛ㄥ崟鍙傛暟
@@ -780,39 +789,38 @@
       topqueryParams: {
         pageNum: 1,
         pageSize: 10,
-        serviceType: 1,
-        searchscope: 3,
+        serviceType: 12,
+        sendstate:2,
         scopetype: [],
-        leaveldeptcodes: [],
-        leavehospitaldistrictcodes: [],
+
       },
       propss: { multiple: true },
       options: [],
 
-      topicoptions: [
+       topicoptions: [
         {
-          value: 1,
-          label: "琛ㄥ崟宸查鍙�",
+          value: null,
+          label: "鍏ㄩ儴",
         },
         {
-          value: 2,
+          value: 1,
           label: "寰呴殢璁�",
         },
         {
+          value: 2,
+          label: "闅忚涓�",
+        },
+        {
           value: 3,
-          label: "琛ㄥ崟宸插彂閫�",
+          label: "鏈畬鎴�",
         },
         {
           value: 4,
-          label: "涓嶆墽琛�",
+          label: "宸插畬鎴�",
         },
         {
           value: 5,
-          label: "鍙戦�佸け璐�",
-        },
-        {
-          value: 6,
-          label: "宸插畬鎴�",
+          label: "鏃犻渶闅忚",
         },
       ],
       topicoptionsyj: [
@@ -868,34 +876,28 @@
     /** 鏌ヨ褰卞儚闅忚鏈嶅姟鍒楄〃 */
     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;
-      this.topqueryParams.deptOrDistrict=2,
 
+      // 鎺ュ彈寮傚父璺宠浆
+
+      this.loading = true;
+
+
+
+      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[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[4].value = response.rows[0].dsf;
           // this.cardlist[5].value = response.rows[0].yfs2;
           this.yfsvalue = response.rows[0].yfs;
         }
@@ -983,26 +985,19 @@
     },
     /** 鎼滅储鎸夐挳鎿嶄綔 */
     handleQuery(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);
-      }
+
       this.topqueryParams.pageNum = 1;
       this.topqueryParams.startOutHospTime = this.dateRange[0];
       this.topqueryParams.endOutHospTime = this.dateRange[1];
 
       this.getList(refresh);
     },
-    // 鎮h�呰寖鍥村鐞�
+   // 鎮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 = [];
@@ -1015,14 +1010,45 @@
         this.topqueryParams.searchscope = 3;
       }
     },
+    // 闅忚鐘舵�佸彉鏇村鐞�
+    handleServiceStatusChange(value) {
+      // 娓呯┖閫夋嫨
+      if (value === null || value === undefined || value === "") {
+        this.topqueryParams.sendstateView = null;
+        this.topqueryParams.sendstate = null;
+        return;
+      }
+      console.log(value, "value");
+
+      // 涓�绾ц妭鐐圭殑鍊硷紙澶т簬绛変簬10锛�
+      if (value >= 10) {
+        // 閫変腑浜嗕竴绾�
+        switch (value) {
+          case 10:
+            this.topqueryParams.sendstateView = 1; // 寰呴殢璁�
+            break;
+          case 20:
+            this.topqueryParams.sendstateView = 2; // 宸插畬鎴�
+            break;
+          case 30:
+            this.topqueryParams.sendstateView = 3; // 鏃犻渶闅忚
+            break;
+        }
+        this.topqueryParams.sendstate = null;
+      } else {
+        // 閫変腑浜嗕簩绾э紙鍏蜂綋鐘舵�侊級
+        this.topqueryParams.sendstateView = null;
+        this.topqueryParams.sendstate = value;
+      }
+    },
     /** 閲嶇疆鎸夐挳鎿嶄綔 */
     resetQuery() {
       this.dateRange = [];
       this.topqueryParams = {
         pageNum: 1,
         pageSize: 10,
-        serviceType: 1,
-        searchscope: 2,
+        serviceType: 12,
+        sendstate:2,
       };
       this.handleQuery(1);
     },
@@ -1058,7 +1084,7 @@
         path: "/followvisit/QuestionnaireTask",
         query: {
           type: 2,
-          serviceType: 1,
+          serviceType: 12,
         },
       });
     },
@@ -1161,12 +1187,9 @@
     Seedetails(row) {
       let type = "";
       console.log(row, "rwo");
-      if (row.preachformson) {
-        if (row.preachformson.includes("3")) {
+        if (row.type == 1) {
           type = 1;
-          console.log(type, "rwo");
         }
-      }
       this.$router.push({
         path: "/followvisit/record/detailpage/",
         query: {
@@ -1192,7 +1215,7 @@
       this.topqueryParams.pageNum = null;
       this.topqueryParams.pageSize = null;
       this.download(
-        "smartor/serviceSubtask/export",
+        "smartor/serviceSubtask/patItemExport",
         {
           ...this.topqueryParams,
         },
@@ -1303,10 +1326,12 @@
   }
 }
 ::v-deep.leftvlue .el-card__body {
-  background: #d0e9fd;
+  background: #F2F8FF;
+  color: #324A9B;
 }
 ::v-deep.leftvlue .el-card__body:hover {
-  background: #8dc8f8;
+  background: #3664D9;
+  color: #fff;
   cursor: pointer; /* 榧犳爣鎮诞鏃跺彉涓烘墜褰� */
 }
 ::v-deep.errleftvlue .el-card__body {

--
Gitblit v1.9.3