From a9d2b856e0f6be6475319c2dc36bf405c2f908fc Mon Sep 17 00:00:00 2001
From: WXL (wul) <wl_5969728@163.com>
Date: 星期二, 22 九月 2026 14:04:52 +0800
Subject: [PATCH] 测试完成

---
 src/views/sfstatistics/percentage/components/ChartDialog.vue |   93 ++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 93 insertions(+), 0 deletions(-)

diff --git a/src/views/sfstatistics/percentage/components/ChartDialog.vue b/src/views/sfstatistics/percentage/components/ChartDialog.vue
index f8deb36..bf27f7d 100644
--- a/src/views/sfstatistics/percentage/components/ChartDialog.vue
+++ b/src/views/sfstatistics/percentage/components/ChartDialog.vue
@@ -210,6 +210,28 @@
           { value: careData.inProgress, name: "鎶ょ悊杩涜涓�" },
           { value: careData.notStarted, name: "鎶ょ悊鏈紑濮�" },
         ];
+      } else if (this.activeTab === "combined") {
+        legendData = ["寰呴殢璁�", "闅忚鎴愬姛", "闅忚澶辫触"];
+        const followUpData = {
+          pending: 0,
+          success: 0,
+          fail: 0,
+        };
+
+        this.data.forEach((item) => {
+          followUpData.pending +=
+            (item.pendingFollowUp || 0) + (item.pendingFollowUpAgain || 0);
+          followUpData.success +=
+            (item.followUpSuccess || 0) + (item.followUpSuccessAgain || 0);
+          followUpData.fail +=
+            (item.followUpFail || 0) + (item.followUpFailAgain || 0);
+        });
+
+        seriesData = [
+          { value: followUpData.pending, name: "寰呴殢璁�" },
+          { value: followUpData.success, name: "闅忚鎴愬姛" },
+          { value: followUpData.fail, name: "闅忚澶辫触" },
+        ];
       }
 
       return { legendData, seriesData };
@@ -536,6 +558,77 @@
             },
           },
         ];
+      } else if (this.activeTab === "combined") {
+        title = "缁煎悎闅忚";
+        yAxisName1 = "浜烘";
+        legendData = ["鍑洪櫌浜烘", "棣栨瀹屾垚", "鍐嶆瀹屾垚", "闅忚鐜�(%)", "鎺ㄩ�佺巼(%)"];
+        colors = ["#5470C6", "#91CC75", "#FAC858", "#EE6666", "#9A60B4"];
+
+        const dischargeData = this.data.map((item) => item.dischargeCount || 0);
+        const firstSuccessData = this.data.map(
+          (item) => item.followUpSuccess || 0
+        );
+        const againSuccessData = this.data.map(
+          (item) => item.followUpSuccessAgain || 0
+        );
+        const followUpRateData = this.data.map((item) => {
+          const success = Number(item.followUpSuccess) || 0;
+          const nonFollowUp = Number(item.nonFollowUp) || 0;
+          const followUpNeeded = Number(item.followUpNeeded) || 0;
+          const denominator = followUpNeeded + nonFollowUp;
+          return denominator > 0
+            ? Number((((success + nonFollowUp) / denominator) * 100).toFixed(2))
+            : 0;
+        });
+        const pushRateData = this.data.map((item) => {
+          const successAgain = Number(item.followUpSuccessAgain) || 0;
+          const nonFollowUp = Number(item.nonFollowUp) || 0;
+          const followUpNeeded = Number(item.followUpNeeded) || 0;
+          const denominator = followUpNeeded + nonFollowUp;
+          return denominator > 0
+            ? Number(((successAgain / denominator) * 100).toFixed(2))
+            : 0;
+        });
+
+        series = [
+          {
+            name: "鍑洪櫌浜烘",
+            type: "bar",
+            barWidth: "25%",
+            data: dischargeData,
+            itemStyle: { borderRadius: [4, 4, 0, 0] },
+          },
+          {
+            name: "棣栨瀹屾垚",
+            type: "bar",
+            barWidth: "25%",
+            data: firstSuccessData,
+            itemStyle: { borderRadius: [4, 4, 0, 0] },
+          },
+          {
+            name: "鍐嶆瀹屾垚",
+            type: "bar",
+            barWidth: "25%",
+            data: againSuccessData,
+            itemStyle: { borderRadius: [4, 4, 0, 0] },
+          },
+          {
+            name: "闅忚鐜�(%)",
+            type: "line",
+            yAxisIndex: 1,
+            data: followUpRateData,
+            symbolSize: 8,
+            lineStyle: { width: 3 },
+          },
+          {
+            name: "鎺ㄩ�佺巼(%)",
+            type: "line",
+            yAxisIndex: 1,
+            data: pushRateData,
+            symbolSize: 8,
+            lineStyle: { width: 3, type: "dotted" },
+          },
+        ];
       }
 
       return {

--
Gitblit v1.9.3