From feb5a669dced68415bc7e32f237f77bf9842fe8b Mon Sep 17 00:00:00 2001
From: WXL (wul) <wl_5969728@163.com>
Date: 星期三, 03 六月 2026 17:42:18 +0800
Subject: [PATCH] 测试完成

---
 src/views/sfstatistics/percentage/components/SecondFollowUp.vue |  191 +++++++++++++++++++++++++++++++++--------------
 1 files changed, 135 insertions(+), 56 deletions(-)

diff --git a/src/views/sfstatistics/percentage/components/SecondFollowUp.vue b/src/views/sfstatistics/percentage/components/SecondFollowUp.vue
index c3a6bae..2a6b8e7 100644
--- a/src/views/sfstatistics/percentage/components/SecondFollowUp.vue
+++ b/src/views/sfstatistics/percentage/components/SecondFollowUp.vue
@@ -253,7 +253,6 @@
                   prop="followUpRateAgain"
                 />
                 <el-table-column
-                  v-if="orgname != '涓芥按甯備腑鍖婚櫌'"
                   label="浜哄伐"
                   align="center"
                   key="manualAgain"
@@ -277,7 +276,6 @@
                   </template>
                 </el-table-column>
                 <el-table-column
-                  v-if="orgname != '涓芥按甯備腑鍖婚櫌'"
                   label="璇煶"
                   align="center"
                   key="voiceAgain"
@@ -301,7 +299,6 @@
                   </template>
                 </el-table-column>
                 <el-table-column
-                  v-if="orgname != '涓芥按甯備腑鍖婚櫌'"
                   label="鐭俊"
                   align="center"
                   key="smsAgain"
@@ -325,7 +322,6 @@
                   </template>
                 </el-table-column>
                 <el-table-column
-                  v-if="orgname != '涓芥按甯備腑鍖婚櫌'"
                   label="寰俊"
                   align="center"
                   key="weChatAgain"
@@ -552,7 +548,6 @@
             prop="followUpRateAgain"
           />
           <el-table-column
-            v-if="orgname != '涓芥按甯備腑鍖婚櫌'"
             label="浜哄伐"
             align="center"
             key="manualAgain"
@@ -575,7 +570,6 @@
             </template>
           </el-table-column>
           <el-table-column
-            v-if="orgname != '涓芥按甯備腑鍖婚櫌'"
             label="璇煶"
             align="center"
             key="voiceAgain"
@@ -594,7 +588,6 @@
             </template>
           </el-table-column>
           <el-table-column
-            v-if="orgname != '涓芥按甯備腑鍖婚櫌'"
             label="鐭俊"
             align="center"
             key="smsAgain"
@@ -617,7 +610,6 @@
             </template>
           </el-table-column>
           <el-table-column
-            v-if="orgname != '涓芥按甯備腑鍖婚櫌'"
             label="寰俊"
             align="center"
             key="weChatAgain"
@@ -649,6 +641,7 @@
 import { getSfStatistics } from "@/api/system/user";
 import ExcelJS from "exceljs";
 import { saveAs } from "file-saver";
+import store from "@/store";
 
 export default {
   name: "SecondFollowUp",
@@ -680,6 +673,7 @@
       loading: false,
       expands: [],
       ids: [],
+      tasktypes: store.getters.tasktypes,
     };
   },
   methods: {
@@ -1113,58 +1107,143 @@
       return rate.toFixed(2) + "%";
     },
     async exportTable() {
-      try {
-        let dateRangeString = "";
-        let sheetNameSuffix = "";
+  try {
+    let dateRangeString = "";
+    let sheetNameSuffix = "";
 
-        if (
-          this.queryParams.dateRange &&
-          this.queryParams.dateRange.length === 2
-        ) {
-          const startDateStr = this.queryParams.dateRange[0];
-          const endDateStr = this.queryParams.dateRange[1];
-          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;
-          dateRangeString = `${currentMonth}鏈坄;
-          sheetNameSuffix = `${currentMonth}鏈坄;
-        }
+    // 鍒ゆ柇鏄惁鏄附姘村競涓尰闄�
+    const isLishuiHospital = this.orgname == "涓芥按甯備腑鍖婚櫌";
 
-        const excelName = `鍐嶆鍑洪櫌闅忚缁熻琛╛${dateRangeString}.xlsx`;
-        const worksheetName = `鍐嶆闅忚缁熻_${sheetNameSuffix}`;
+    if (
+      this.queryParams.dateRange &&
+      this.queryParams.dateRange.length === 2
+    ) {
+      const startDateStr = this.queryParams.dateRange[0];
+      const endDateStr = this.queryParams.dateRange[1];
 
-        if (!this.tableData || this.tableData.length === 0) {
-          this.$message.warning("鏆傛棤鍐嶆闅忚鏁版嵁鍙鍑�");
-          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;
+      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 = "鍐嶆闅忚"; // 宸ヤ綔琛ㄤ娇鐢ㄧ殑鍚嶇О锛堢畝鍖栫増锛�
+    console.log(this.queryParams.serviceType);
+
+    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 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) {
       try {

--
Gitblit v1.9.3