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