From 5df476ae693d7577c7a0031ae12c67558b9832a7 Mon Sep 17 00:00:00 2001
From: WXL (wul) <wl_5969728@163.com>
Date: 星期六, 12 九月 2026 10:48:10 +0800
Subject: [PATCH] 测试完成

---
 src/views/followvisit/zysatisfaction/index.vue |  234 ++++++++++++++++++++++++++++++++++++++--------------------
 1 files changed, 152 insertions(+), 82 deletions(-)

diff --git a/src/views/followvisit/zysatisfaction/index.vue b/src/views/followvisit/zysatisfaction/index.vue
index 551395e..1577d9a 100644
--- a/src/views/followvisit/zysatisfaction/index.vue
+++ b/src/views/followvisit/zysatisfaction/index.vue
@@ -2,9 +2,8 @@
   <div class="app-container">
     <statistics-cards
       :cardlist="cardlist"
-      :ycvalue="ycvalue"
-      :jgvalue="jgvalue"
-      :show-warning-condition="orgname == '鐪佺珛鍚屽痉缈犺嫅闄㈠尯'"
+      :show-extra="false"
+      :show-warning-condition="false"
     />
     <el-row :gutter="20">
       <!--鐢ㄦ埛鏁版嵁-->
@@ -16,14 +15,7 @@
         v-show="showSearch"
         label-width="98px"
       >
-        <el-form-item label="浠诲姟鍚嶇О">
-          <el-input
-            v-model="topqueryParams.taskName"
-            placeholder="璇烽�夋嫨浠诲姟鍚嶇О"
-          ></el-input>
-        </el-form-item>
-
-        <el-form-item label="鍑洪櫌鏃堕棿">
+        <!-- <el-form-item label="鍑洪櫌鏃堕棿">
           <el-date-picker
             v-model="dateRange"
             style="width: 240px"
@@ -33,39 +25,37 @@
             start-placeholder="寮�濮嬫棩鏈�"
             end-placeholder="缁撴潫鏃ユ湡"
           ></el-date-picker>
-        </el-form-item>
+        </el-form-item> -->
 
+        <el-form-item label="瀹屾垚鏃堕棿">
+          <el-date-picker
+            v-model="dateRangefs"
+            style="width: 240px"
+            value-format="yyyy-MM-dd"
+            type="daterange"
+            range-separator="-"
+            start-placeholder="寮�濮嬫棩鏈�"
+            end-placeholder="缁撴潫鏃ユ湡"
+          ></el-date-picker>
+        </el-form-item>
         <el-form-item label="鎮h�呭鍚�" prop="sendname">
           <el-input
             v-model="topqueryParams.sendname"
             placeholder="璇疯緭鍏ユ偅鑰呭鍚�"
           ></el-input>
         </el-form-item>
-        <el-form-item label="璇婃柇鍚嶇О" prop="leavediagname">
-          <el-input
-            v-model="topqueryParams.leavediagname"
-            placeholder="璇疯緭鍏ヨ瘖鏂悕绉�"
-          ></el-input>
-        </el-form-item>
-        <el-form-item label="闅忚浜哄憳" prop="updateBy">
+        <el-form-item label="澶勭悊浜哄憳" prop="updateBy">
           <el-input
             v-model="topqueryParams.updateBy"
-            placeholder="璇疯緭鍏ラ殢璁夸汉鍛�"
+            placeholder="璇疯緭鍏ュ鐞嗕汉鍛�"
           ></el-input>
         </el-form-item>
-        <el-form-item label="涓绘不鍖荤敓" prop="drname">
+        <el-form-item label="鎺ヨ瘖鍖荤敓" prop="drname">
           <el-input
             v-model="topqueryParams.drname"
-            placeholder="璇疯緭鍏ヤ富娌诲尰鐢�"
+            placeholder="璇疯緭鍏ユ帴璇婂尰鐢�"
           ></el-input>
         </el-form-item>
-        <el-form-item label="缁忕鍖荤敓" prop="managementDoctor">
-          <el-input
-            v-model="topqueryParams.managementDoctor"
-            placeholder="璇疯緭鍏ヤ富娌诲尰鐢�"
-          ></el-input>
-        </el-form-item>
-
         <el-form-item label="鎮h�呰寖鍥�" prop="status">
           <el-cascader
             v-model="topqueryParams.scopetype"
@@ -92,7 +82,7 @@
             </el-option>
           </el-select>
         </el-form-item> -->
-        <el-form-item label="闅忚鐘舵��" prop="status">
+        <el-form-item label="澶勭悊鐘舵��" prop="status">
           <el-cascader
             v-model="serviceStatusValue"
             placeholder="璇烽�夋嫨"
@@ -225,15 +215,6 @@
         @selection-change="handleSelectionChange"
       >
         <el-table-column type="selection" width="50" align="center" />
-        <el-table-column
-          label="浠诲姟鍚嶇О"
-          fixed
-          width="150"
-          show-overflow-tooltip
-          align="center"
-          key="taskName"
-          prop="taskName"
-        />
         <!-- <el-table-column label="搴忓彿" fixed align="center" key="id" prop="id" /> -->
         <el-table-column
           label="濮撳悕"
@@ -261,7 +242,7 @@
           </template>
         </el-table-column>
         <el-table-column
-          label="闅忚鐘舵��"
+          label="澶勭悊鐘舵��"
           align="center"
           key="sendstateView"
           prop="sendstateView"
@@ -338,20 +319,13 @@
           </template></el-table-column
         >
         <el-table-column
-          label="涓绘不鍖荤敓"
+          label="鎺ヨ瘖鍖荤敓"
           width="120"
           align="center"
           key="drname"
           prop="drname"
         />
 
-        <el-table-column
-          label="缁忕鍖荤敓"
-          align="center"
-          key="managementDoctor"
-          prop="managementDoctor"
-          width="120"
-        />
         <el-table-column
           label="鍑洪櫌澶╂暟"
           width="120"
@@ -415,16 +389,7 @@
         </el-table-column>
 
         <el-table-column
-          label="璇婃柇鍚嶇О"
-          align="center"
-          key="leavediagname"
-          prop="leavediagname"
-          width="120"
-          :show-overflow-tooltip="true"
-        >
-        </el-table-column>
-        <el-table-column
-          label="闅忚浜哄憳"
+          label="澶勭悊浜哄憳"
           align="center"
           key="updateBy"
           prop="updateBy"
@@ -959,6 +924,8 @@
       ids: [],
       // 闈炲崟涓鐢�
       single: true,
+      jgvalue: 0,
+
       // 闈炲涓鐢�
       multiple: true,
       // 鏄剧ず鎼滅储鏉′欢
@@ -989,7 +956,7 @@
       dynamicTags: ["閫夐」涓�", "閫夐」浜�", "閫夐」涓�"], //閫夐」
       inputVisible: false,
       Labelchange: false,
-      ycvalue: "",
+      ycvalue: 0,
       yfsvalue: "",
       inputValue: "",
       preachform: "",
@@ -1024,25 +991,24 @@
       loading: false,
       cardlist: [
         {
-          name: "鎮h�呮湇鍔℃�婚噺",
-          value: 0,
-        },
-
-        {
-          name: "鏃犻渶闅忚",
+          name: "浣忛櫌鎬婚噺",
           value: 0,
         },
         {
-          name: "闇�闅忚",
+          name: "鍙戦�佷换鍔¢噺",
           value: 0,
         },
         {
-          name: "寰呴殢璁�",
+          name: "寰呭畬鎴�",
           value: 0,
         },
         {
           name: "宸插畬鎴�",
           value: 0,
+        },
+        {
+          name: "瀹屾垚鐜�",
+          value: "0%",
         },
       ],
       // 绾ц仈閫夋嫨鍣ㄧ粦瀹氬��
@@ -1221,6 +1187,8 @@
           },
         },
       },
+      orgname: "",
+
       amendtag: false,
       errtype: "",
       leavehospitaldistrictcode: "",
@@ -1235,6 +1203,8 @@
     this.serviceState = store.getters.serviceState;
     this.checkboxlist = store.getters.checkboxlist;
     this.errtype = this.$route.query.errtype;
+    this.orgname = localStorage.getItem("orgname");
+
     this.leavehospitaldistrictcode =
       this.$route.query.leavehospitaldistrictcode;
     this.sourcetype[0].children = store.getters.belongDepts.map((dept) => {
@@ -1298,14 +1268,19 @@
         this.userList = response.rows[0].serviceSubtaskList;
         this.total = response.total;
         if (refresh) {
-          this.cardlist[0].value =
+          // 浣忛櫌鎬婚噺锛氭殏鏃犲瓧娈碉紝淇濇寔 0
+          // 鍙戦�佷换鍔¢噺 = 鎮h�呮湇鍔℃�婚噺锛堟棤闇�闅忚 + 闇�闅忚锛�
+          this.cardlist[1].value =
             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].wxsf || 0;
           this.ycvalue = response.rows[0].yc;
-          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.cardlist[2].value = response.rows[0].dsf || 0; // 寰呭畬鎴� = 寰呴殢璁�
+          this.cardlist[3].value = response.rows[0].ywc || 0; // 宸插畬鎴� = 宸查殢璁�
+          // 瀹屾垚鐜� = 宸插畬鎴� / (寰呭畬鎴� + 宸插畬鎴�)
+          const dsf = Number(response.rows[0].dsf) || 0;
+          const ywc = Number(response.rows[0].ywc) || 0;
+          const doneTotal = dsf + ywc;
+          this.cardlist[4].value =
+            doneTotal > 0 ? ((ywc / doneTotal) * 100).toFixed(2) + "%" : "0%";
           this.yfsvalue = response.rows[0].yfs;
         }
         this.loading = false;
@@ -1366,13 +1341,17 @@
       }
     },
     affiliation() {
+      this.resetQuerykj();
+
       this.topqueryParams.managementDoctorCode = store.getters.hisUserId;
 
       this.getList(1);
     },
     onthatday() {
-      this.topqueryParams.startSendDateTime = this.getCurrentDate();
-      this.topqueryParams.endSendDateTime = this.getCurrentDate();
+      this.resetQuerykj();
+
+      this.topqueryParams.finishtimeStart = this.getCurrentDate();
+      this.topqueryParams.finishtimeEnd = this.getCurrentDate();
       this.getList(1);
     },
     getCurrentDate() {
@@ -1459,7 +1438,7 @@
         this.options = [];
       }
     },
-    // 褰卞儚闅忚鐘舵�佷慨鏀�
+    // 褰卞儚澶勭悊鐘舵�佷慨鏀�
     handleStatusChange(row) {
       let text = row.status === "0" ? "鍚敤" : "鍋滅敤";
       this.$modal
@@ -1503,10 +1482,10 @@
           store.getters.belongWards.map((obj) => obj.districtCode);
       }
       this.topqueryParams.pageNum = 1;
-      this.topqueryParams.startOutHospTime = this.dateRange[0];
-      this.topqueryParams.endOutHospTime = this.dateRange[1];
-      this.topqueryParams.startSendDateTime = this.dateRangefs[0];
-      this.topqueryParams.endSendDateTime = this.dateRangefs[1];
+      // this.topqueryParams.startOutHospTime = this.dateRange[0];
+      // this.topqueryParams.endOutHospTime = this.dateRange[1];
+      this.topqueryParams.finishtimeStart = this.dateRangefs[0];
+      this.topqueryParams.finishtimeEnd = this.dateRangefs[1];
       this.getList(refresh);
     },
     // 鎮h�呰寖鍥村鐞�
@@ -1546,6 +1525,26 @@
         leavehospitaldistrictcodes: [],
       };
       this.handleQuery(1);
+    },
+    /** 閲嶇疆鎸夐挳鎿嶄綔 */
+    resetQuerykj() {
+      this.dateRange = [];
+      this.dateRangefs = [];
+      this.serviceStatusValue = null;
+      this.topqueryParams = {
+        pageNum: 1,
+        pageSize: 10,
+        sendstate: null,
+
+        sendstateView: null,
+        sort: 2, //0 鍑洪櫌鏃堕棿(姝e簭)    1 鍑洪櫌鏃堕棿(鍊掑簭)   2 鍙戦�佹椂闂�(姝e簭)    3 鍙戦�佹椂闂�(鍊掑簭)
+        serviceType: 6,
+        searchscope: 3,
+        visitCount: 1,
+        scopetype: [],
+        leaveldeptcodes: [],
+        leavehospitaldistrictcodes: [],
+      };
     },
     handleSelectionChange(rows) {
       this.selectedRows = rows.map((row) => {
@@ -1874,8 +1873,8 @@
 <style lang="scss" scoped>
 .el-button--primary.is-plain {
   color: #ffffff;
-  background: #409eff;
-  border-color: #4fabe9;
+  background: #5b7cfa;
+  border-color: #5b7cfa;
 }
 
 .document {
@@ -2071,4 +2070,75 @@
 //     font-size: 24px;
 //   }
 // }
+/* ================= 娓呮柊楂樼骇绠�绾﹂ ================= */
+.app-container {
+  background: #f5f7fb;
+  border-radius: 14px;
+  padding: 20px;
+}
+
+/* 鏌ヨ琛ㄥ崟锛氱櫧鑹插渾瑙掑崱鐗� */
+::v-deep .el-form--inline {
+  background: #ffffff;
+  border-radius: 14px;
+  padding: 22px 22px 8px;
+  margin-bottom: 18px;
+  box-shadow: 0 2px 12px rgba(31, 45, 61, 0.05);
+}
+
+/* 闅愯棌鍒嗗壊绾� */
+::v-deep .el-divider {
+  display: none;
+}
+
+/* 宸ュ叿鏍忓簳閮ㄩ棿璺� */
+.mb8 {
+  margin-bottom: 18px;
+}
+
+/* 鎸夐挳锛氬渾瑙� + 鏌斿拰杩囨浮 */
+::v-deep .el-button {
+  border-radius: 8px;
+  font-weight: 500;
+  transition: all 0.25s ease;
+}
+
+/* 涓绘寜閽細娓呮柊闈涜摑 */
+::v-deep .el-button--primary:not(.is-plain) {
+  background: #5b7cfa;
+  border-color: #5b7cfa;
+}
+::v-deep .el-button--primary:not(.is-plain):hover,
+::v-deep .el-button--primary:not(.is-plain):focus {
+  background: #7593fb;
+  border-color: #7593fb;
+}
+
+/* 琛ㄦ牸锛氱櫧鑹插渾瑙掑崱鐗� + 鏌斿拰琛ㄥご */
+::v-deep .el-table {
+  border-radius: 14px;
+  overflow: hidden;
+  box-shadow: 0 2px 12px rgba(31, 45, 61, 0.05);
+}
+::v-deep .el-table::before {
+  display: none;
+}
+::v-deep .el-table th {
+  background: #f7f9fd !important;
+  color: #3f4d63;
+  font-weight: 600;
+}
+::v-deep .el-table td {
+  padding: 12px 0;
+}
+
+/* 鏍囩鍦嗚 */
+::v-deep .el-tag {
+  border-radius: 6px;
+}
+
+/* 鍒嗛〉闂磋窛 */
+::v-deep .pagination-container {
+  padding-top: 18px;
+}
 </style>

--
Gitblit v1.9.3