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/sfstatistics/percentage/components/FirstFollowUp.vue |  298 ++++++++++++++++++++++++++++++++++------------------------
 1 files changed, 174 insertions(+), 124 deletions(-)

diff --git a/src/views/sfstatistics/percentage/components/FirstFollowUp.vue b/src/views/sfstatistics/percentage/components/FirstFollowUp.vue
index bcd91ea..89b4de0 100644
--- a/src/views/sfstatistics/percentage/components/FirstFollowUp.vue
+++ b/src/views/sfstatistics/percentage/components/FirstFollowUp.vue
@@ -236,6 +236,7 @@
                   width="120"
                   key="successRate"
                   prop="successRate"
+                  :render-header="Tooltipcgl"
                 >
                   <template slot-scope="scope">
                     <span class="success-rate">{{
@@ -253,6 +254,7 @@
                   width="120"
                   key="followUpRate"
                   prop="followUpRate"
+                  :render-header="Tooltipsfl"
                 />
                 <el-table-column
                   v-if="orgname != '涓芥按甯備腑鍖婚櫌'"
@@ -261,6 +263,7 @@
                   width="120"
                   key="rate"
                   prop="rate"
+                  :render-header="Tooltipjsl"
                 >
                   <template slot-scope="scope">
                     <el-button
@@ -543,6 +546,7 @@
             width="120"
             key="successRate"
             prop="successRate"
+            :render-header="Tooltipcgl"
           >
             <template slot-scope="scope">
               <span class="success-rate">{{
@@ -560,6 +564,7 @@
             width="120"
             key="followUpRate"
             prop="followUpRate"
+            :render-header="Tooltipsfl"
           />
           <el-table-column
             v-if="orgname != '涓芥按甯備腑鍖婚櫌'"
@@ -568,6 +573,7 @@
             width="120"
             key="rate"
             prop="rate"
+            :render-header="Tooltipjsl"
           >
             <template slot-scope="scope">
               <el-button
@@ -863,7 +869,45 @@
         return indexA - indexB;
       });
     },
-
+    Tooltipcgl(h, { column }) {
+      return h(
+        "el-tooltip",
+        {
+          props: {
+            content: "闅忚鎴愬姛/(闇�闅忚-寰呴殢璁�)",
+            placement: "top",
+            effect: "dark",
+          },
+        },
+        [h("span", column.label)]
+      );
+    },
+    Tooltipjsl(h, { column }) {
+      return h(
+        "el-tooltip",
+        {
+          props: {
+            content: "(搴旈殢璁挎椂闂�+浠诲姟鍛ㄦ湡)灏忎簬瀹屾垚鏃堕棿鍗充负瓒呮椂;(闇�闅忚-瓒呮椂)/闇�闅忚",
+            placement: "top",
+            effect: "dark",
+          },
+        },
+        [h("span", column.label)]
+      );
+    },
+    Tooltipsfl(h, { column }) {
+      return h(
+        "el-tooltip",
+        {
+          props: {
+            content: "(闅忚鎴愬姛+棣栨闅忚澶辫触)/棣栨搴旈殢璁�",
+            placement: "top",
+            effect: "dark",
+          },
+        },
+        [h("span", column.label)]
+      );
+    },
     sortChineseNumber(aRow, bRow) {
       const a = aRow.leavehospitaldistrictname;
       const b = bRow.leavehospitaldistrictname;
@@ -1181,138 +1225,144 @@
     },
     // 涓昏〃瀵煎嚭
     async exportTable() {
-  try {
-    let dateRangeString = "";
-    let sheetNameSuffix = "";
+      try {
+        let dateRangeString = "";
+        let sheetNameSuffix = "";
 
-    // 鍒ゆ柇鏄惁鏄附姘村競涓尰闄�
-    const isLishuiHospital = this.orgname == "涓芥按甯備腑鍖婚櫌";
+        // 鍒ゆ柇鏄惁鏄附姘村競涓尰闄�
+        const isLishuiHospital = this.orgname == "涓芥按甯備腑鍖婚櫌";
 
-    if (
-      this.queryParams.dateRange &&
-      this.queryParams.dateRange.length === 2
-    ) {
-      const startDateStr = this.queryParams.dateRange[0];
-      const endDateStr = this.queryParams.dateRange[1];
+        if (
+          this.queryParams.dateRange &&
+          this.queryParams.dateRange.length === 2
+        ) {
+          const startDateStr = this.queryParams.dateRange[0];
+          const endDateStr = this.queryParams.dateRange[1];
 
-      if (isLishuiHospital) {
-        // 涓芥按甯備腑鍖婚櫌锛氬彧鏄剧ず骞存湀
-        const formatMonthOnly = (dateTimeStr) => {
-          const date = new Date(dateTimeStr);
-          const year = date.getFullYear();
-          const month = date.getMonth() + 1;
-          return `${year}骞�${month}鏈坄;
+          if (isLishuiHospital) {
+            // 涓芥按甯備腑鍖婚櫌锛氬彧鏄剧ず骞存湀
+            const formatMonthOnly = (dateTimeStr) => {
+              const date = new Date(dateTimeStr);
+              const year = date.getFullYear();
+              const month = date.getMonth() + 1;
+              return `${year}骞�${month}鏈坄;
+            };
+            const startDateFormatted = formatMonthOnly(startDateStr);
+            const endDateFormatted = formatMonthOnly(endDateStr);
+            dateRangeString = `${startDateFormatted}鑷�${endDateFormatted}`;
+            sheetNameSuffix = `${startDateFormatted}鑷�${endDateFormatted}`;
+          } else {
+            // 鍏朵粬鍖婚櫌锛氭樉绀哄勾鏈堟棩
+            const formatDateForDisplay = (dateTimeStr) => {
+              return dateTimeStr.split(" ")[0];
+            };
+            const startDateFormatted = formatDateForDisplay(startDateStr);
+            const endDateFormatted = formatDateForDisplay(endDateStr);
+            dateRangeString = `${startDateFormatted}鑷�${endDateFormatted}`;
+            sheetNameSuffix = `${startDateFormatted}鑷�${endDateFormatted}`;
+          }
+        } else {
+          const now = new Date();
+          const currentMonth = now.getMonth() + 1;
+          const currentYear = now.getFullYear();
+
+          if (isLishuiHospital) {
+            // 涓芥按甯備腑鍖婚櫌锛氭樉绀哄勾鏈�
+            dateRangeString = `${currentYear}骞�${currentMonth}鏈坄;
+            sheetNameSuffix = `${currentYear}骞�${currentMonth}鏈坄;
+          } else {
+            // 鍏朵粬鍖婚櫌锛氭樉绀烘湀浠�
+            dateRangeString = `${currentMonth}鏈坄;
+            sheetNameSuffix = `${currentMonth}鏈坄;
+          }
+        }
+
+        // 鏍规嵁 serviceType 鐢熸垚闅忚绫诲瀷鍚嶇О
+        let serviceTypeName = "棣栨鍑洪櫌闅忚"; // 鏂囦欢鍚嶄娇鐢ㄧ殑鍚嶇О
+        let sheetTypeName = "棣栨闅忚"; // 宸ヤ綔琛ㄤ娇鐢ㄧ殑鍚嶇О锛堢畝鍖栫増锛�
+
+        if (
+          this.queryParams.serviceType &&
+          Array.isArray(this.queryParams.serviceType) &&
+          this.queryParams.serviceType.length > 0
+        ) {
+          if (this.tasktypes && Array.isArray(this.tasktypes)) {
+            // 杩囨护鍑哄尮閰嶇殑闅忚绫诲瀷
+            const matchedTypes = this.tasktypes.filter((task) =>
+              this.queryParams.serviceType.includes(task.value)
+            );
+
+            if (matchedTypes.length === 1) {
+              // 鍗曚釜绫诲瀷
+              const label = matchedTypes[0].label;
+              serviceTypeName = `棣栨${label}`;
+              sheetTypeName = `棣栨${label}`;
+            } else if (matchedTypes.length > 1) {
+              // 澶氫釜绫诲瀷
+              const typeNames = matchedTypes.map((task) => task.label);
+
+              // 鏂囦欢鍚嶏細鐢ㄦ枩鏉犲垎闅�
+              serviceTypeName = `棣栨${typeNames.join("/")}`;
+
+              // 宸ヤ綔琛ㄥ悕锛氫娇鐢ㄧ涓�涓被鍨嬫垨绠�鍖栧悕绉�
+              if (matchedTypes.length <= 2) {
+                // 濡傛灉鍙湁2涓被鍨嬶紝閮芥樉绀�
+                sheetTypeName = `棣栨${typeNames[0]}绛塦;
+              } else {
+                // 濡傛灉瓒呰繃2涓被鍨嬶紝鍙樉绀虹涓�涓�
+                sheetTypeName = `棣栨${typeNames[0]}绛塦;
+              }
+            } else if (this.queryParams.serviceType.length > 0) {
+              // 濡傛灉娌℃湁鍖归厤鐨勶紝浣跨敤鍘熷鍊�
+              const typeStr = this.queryParams.serviceType.join("/");
+              serviceTypeName = `棣栨${typeStr}`;
+              sheetTypeName = "棣栨闅忚";
+            }
+          } else if (this.queryParams.serviceType.length > 0) {
+            // 濡傛灉娌℃湁 tasktypes锛屼娇鐢ㄥ師濮嬪��
+            const typeStr = this.queryParams.serviceType.join("/");
+            serviceTypeName = `棣栨${typeStr}`;
+            sheetTypeName = "棣栨闅忚";
+          }
+        }
+
+        const excelName = `${serviceTypeName}缁熻琛╛${dateRangeString}.xlsx`;
+
+        // 娓呯悊宸ヤ綔琛ㄥ悕绉帮紝绉婚櫎闈炴硶瀛楃
+        const cleanSheetName = (name) => {
+          // Excel宸ヤ綔琛ㄥ悕涓嶈兘鍖呭惈鐨勫瓧绗�: * ? : \ / [ ]
+          return name.replace(/[*?:\\/[\]]/g, " ");
         };
-        const startDateFormatted = formatMonthOnly(startDateStr);
-        const endDateFormatted = formatMonthOnly(endDateStr);
-        dateRangeString = `${startDateFormatted}鑷�${endDateFormatted}`;
-        sheetNameSuffix = `${startDateFormatted}鑷�${endDateFormatted}`;
-      } else {
-        // 鍏朵粬鍖婚櫌锛氭樉绀哄勾鏈堟棩
-        const formatDateForDisplay = (dateTimeStr) => {
-          return dateTimeStr.split(" ")[0];
-        };
-        const startDateFormatted = formatDateForDisplay(startDateStr);
-        const endDateFormatted = formatDateForDisplay(endDateStr);
-        dateRangeString = `${startDateFormatted}鑷�${endDateFormatted}`;
-        sheetNameSuffix = `${startDateFormatted}鑷�${endDateFormatted}`;
-      }
-    } else {
-      const now = new Date();
-      const currentMonth = now.getMonth() + 1;
-      const currentYear = now.getFullYear();
 
-      if (isLishuiHospital) {
-        // 涓芥按甯備腑鍖婚櫌锛氭樉绀哄勾鏈�
-        dateRangeString = `${currentYear}骞�${currentMonth}鏈坄;
-        sheetNameSuffix = `${currentYear}骞�${currentMonth}鏈坄;
-      } else {
-        // 鍏朵粬鍖婚櫌锛氭樉绀烘湀浠�
-        dateRangeString = `${currentMonth}鏈坄;
-        sheetNameSuffix = `${currentMonth}鏈坄;
-      }
-    }
-
-    // 鏍规嵁 serviceType 鐢熸垚闅忚绫诲瀷鍚嶇О
-    let serviceTypeName = "棣栨鍑洪櫌闅忚"; // 鏂囦欢鍚嶄娇鐢ㄧ殑鍚嶇О
-    let sheetTypeName = "棣栨闅忚"; // 宸ヤ綔琛ㄤ娇鐢ㄧ殑鍚嶇О锛堢畝鍖栫増锛�
-
-    if (this.queryParams.serviceType && Array.isArray(this.queryParams.serviceType) && this.queryParams.serviceType.length > 0) {
-      if (this.tasktypes && Array.isArray(this.tasktypes)) {
-        // 杩囨护鍑哄尮閰嶇殑闅忚绫诲瀷
-        const matchedTypes = this.tasktypes.filter(task =>
-          this.queryParams.serviceType.includes(task.value)
+        const worksheetName = cleanSheetName(
+          `${sheetTypeName}缁熻_${sheetNameSuffix}`
         );
 
-        if (matchedTypes.length === 1) {
-          // 鍗曚釜绫诲瀷
-          const label = matchedTypes[0].label;
-          serviceTypeName = `棣栨${label}`;
-          sheetTypeName = `棣栨${label}`;
-        } else if (matchedTypes.length > 1) {
-          // 澶氫釜绫诲瀷
-          const typeNames = matchedTypes.map(task => task.label);
-
-          // 鏂囦欢鍚嶏細鐢ㄦ枩鏉犲垎闅�
-          serviceTypeName = `棣栨${typeNames.join("/")}`;
-
-          // 宸ヤ綔琛ㄥ悕锛氫娇鐢ㄧ涓�涓被鍨嬫垨绠�鍖栧悕绉�
-          if (matchedTypes.length <= 2) {
-            // 濡傛灉鍙湁2涓被鍨嬶紝閮芥樉绀�
-            sheetTypeName = `棣栨${typeNames[0]}绛塦;
-          } else {
-            // 濡傛灉瓒呰繃2涓被鍨嬶紝鍙樉绀虹涓�涓�
-            sheetTypeName = `棣栨${typeNames[0]}绛塦;
-          }
-        } else if (this.queryParams.serviceType.length > 0) {
-          // 濡傛灉娌℃湁鍖归厤鐨勶紝浣跨敤鍘熷鍊�
-          const typeStr = this.queryParams.serviceType.join("/");
-          serviceTypeName = `棣栨${typeStr}`;
-          sheetTypeName = "棣栨闅忚";
+        if (!this.tableData || this.tableData.length === 0) {
+          this.$message.warning(`鏆傛棤${serviceTypeName}鏁版嵁鍙鍑篳);
+          return false;
         }
-      } else if (this.queryParams.serviceType.length > 0) {
-        // 濡傛灉娌℃湁 tasktypes锛屼娇鐢ㄥ師濮嬪��
-        const typeStr = this.queryParams.serviceType.join("/");
-        serviceTypeName = `棣栨${typeStr}`;
-        sheetTypeName = "棣栨闅忚";
+
+        const workbook = new ExcelJS.Workbook();
+        const worksheet = workbook.addWorksheet(worksheetName);
+
+        // 鏋勫缓琛ㄦ牸
+        this.buildExportSheet(worksheet, sheetNameSuffix);
+
+        const buffer = await workbook.xlsx.writeBuffer();
+        const blob = new Blob([buffer], {
+          type: "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet",
+        });
+        saveAs(blob, excelName);
+
+        this.$message.success("瀵煎嚭鎴愬姛");
+        return true;
+      } catch (error) {
+        console.error("瀵煎嚭澶辫触:", error);
+        this.$message.error(`瀵煎嚭澶辫触: ${error.message}`);
+        return false;
       }
-    }
-
-    const excelName = `${serviceTypeName}缁熻琛╛${dateRangeString}.xlsx`;
-
-    // 娓呯悊宸ヤ綔琛ㄥ悕绉帮紝绉婚櫎闈炴硶瀛楃
-    const cleanSheetName = (name) => {
-      // Excel宸ヤ綔琛ㄥ悕涓嶈兘鍖呭惈鐨勫瓧绗�: * ? : \ / [ ]
-      return name.replace(/[*?:\\/[\]]/g, ' ');
-    };
-
-    const worksheetName = cleanSheetName(`${sheetTypeName}缁熻_${sheetNameSuffix}`);
-
-    if (!this.tableData || this.tableData.length === 0) {
-      this.$message.warning(`鏆傛棤${serviceTypeName}鏁版嵁鍙鍑篳);
-      return false;
-    }
-
-    const workbook = new ExcelJS.Workbook();
-    const worksheet = workbook.addWorksheet(worksheetName);
-
-    // 鏋勫缓琛ㄦ牸
-    this.buildExportSheet(worksheet, sheetNameSuffix);
-
-    const buffer = await workbook.xlsx.writeBuffer();
-    const blob = new Blob([buffer], {
-      type: "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet",
-    });
-    saveAs(blob, excelName);
-
-    this.$message.success("瀵煎嚭鎴愬姛");
-    return true;
-  } catch (error) {
-    console.error("瀵煎嚭澶辫触:", error);
-    this.$message.error(`瀵煎嚭澶辫触: ${error.message}`);
-    return false;
-  }
-},
+    },
     // 瀛愯〃瀵煎嚭
     /** 瀵煎嚭鍖荤敓瀛愯〃 */
     async exportDoctorTable(row) {

--
Gitblit v1.9.3