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/FirstFollowUp.vue |  201 +++++++++++++++++++++++++++++++++-----------------
 1 files changed, 132 insertions(+), 69 deletions(-)

diff --git a/src/views/sfstatistics/percentage/components/FirstFollowUp.vue b/src/views/sfstatistics/percentage/components/FirstFollowUp.vue
index b463732..bcd91ea 100644
--- a/src/views/sfstatistics/percentage/components/FirstFollowUp.vue
+++ b/src/views/sfstatistics/percentage/components/FirstFollowUp.vue
@@ -275,7 +275,6 @@
                   </template>
                 </el-table-column>
                 <el-table-column
-                  v-if="orgname != '涓芥按甯備腑鍖婚櫌'"
                   label="浜哄伐"
                   align="center"
                   key="manual"
@@ -299,7 +298,6 @@
                   </template>
                 </el-table-column>
                 <el-table-column
-                  v-if="orgname != '涓芥按甯備腑鍖婚櫌'"
                   label="璇煶"
                   align="center"
                   key="voice"
@@ -323,7 +321,6 @@
                   </template>
                 </el-table-column>
                 <el-table-column
-                  v-if="orgname != '涓芥按甯備腑鍖婚櫌'"
                   label="鐭俊"
                   align="center"
                   key="sms"
@@ -347,7 +344,6 @@
                   </template>
                 </el-table-column>
                 <el-table-column
-                  v-if="orgname != '涓芥按甯備腑鍖婚櫌'"
                   label="寰俊"
                   align="center"
                   key="weChat"
@@ -586,7 +582,6 @@
             </template>
           </el-table-column>
           <el-table-column
-            v-if="orgname != '涓芥按甯備腑鍖婚櫌'"
             label="浜哄伐"
             align="center"
             key="manual"
@@ -604,13 +599,7 @@
               </el-button>
             </template>
           </el-table-column>
-          <el-table-column
-            v-if="orgname != '涓芥按甯備腑鍖婚櫌'"
-            label="璇煶"
-            align="center"
-            key="voice"
-            prop="voice"
-          >
+          <el-table-column label="璇煶" align="center" key="voice" prop="voice">
             <template slot-scope="scope">
               <el-button
                 size="medium"
@@ -623,13 +612,7 @@
               </el-button>
             </template>
           </el-table-column>
-          <el-table-column
-            v-if="orgname != '涓芥按甯備腑鍖婚櫌'"
-            label="鐭俊"
-            align="center"
-            key="sms"
-            prop="sms"
-          >
+          <el-table-column label="鐭俊" align="center" key="sms" prop="sms">
             <template slot-scope="scope">
               <el-button
                 size="medium"
@@ -641,7 +624,6 @@
             </template>
           </el-table-column>
           <el-table-column
-            v-if="orgname != '涓芥按甯備腑鍖婚櫌'"
             label="寰俊"
             align="center"
             key="weChat"
@@ -719,6 +701,7 @@
 
 <script>
 import { getSfStatisticsHyperlink } from "@/api/AiCentre/index";
+import store from "@/store";
 
 import { getSfStatistics, selectTimelyRate } from "@/api/system/user";
 import ExcelJS from "exceljs";
@@ -755,6 +738,7 @@
       expands: [],
       ids: [],
       patientqueryParams: { pn: 1, ps: 10 },
+      tasktypes: store.getters.tasktypes,
     };
   },
   methods: {
@@ -1197,58 +1181,138 @@
     },
     // 涓昏〃瀵煎嚭
     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 = "棣栨闅忚"; // 宸ヤ綔琛ㄤ娇鐢ㄧ殑鍚嶇О锛堢畝鍖栫増锛�
+
+    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) {
@@ -1769,7 +1833,6 @@
       this.patientqueryParams.serviceTypes = queryParams.serviceType
         ? queryParams.serviceType.join(",")
         : null;
-      console.log(2);
 
       return selectTimelyRate(this.patientqueryParams);
     },

--
Gitblit v1.9.3