From 973574fd62a1a130a1c229f812e70cfe3763b48e Mon Sep 17 00:00:00 2001
From: 云 <2163098428@qq.com>
Date: 星期三, 14 十月 2026 09:54:10 +0800
Subject: [PATCH] feat(bi): 增加CRM数据展示功能并优化图表组件
---
src/views/bi/dashboard/modules/ChartCard.vue | 11 +++++++++--
1 files changed, 9 insertions(+), 2 deletions(-)
diff --git a/src/views/bi/dashboard/modules/ChartCard.vue b/src/views/bi/dashboard/modules/ChartCard.vue
index 88e4152..93b23c0 100644
--- a/src/views/bi/dashboard/modules/ChartCard.vue
+++ b/src/views/bi/dashboard/modules/ChartCard.vue
@@ -41,12 +41,16 @@
const valueKey = keys[1] || 'value';
const labels = chart.data.map((d: Record<string, unknown>) => String(d[labelKey] || ''));
const values = chart.data.map((d: Record<string, unknown>) => Number(d[valueKey]) || 0);
+ const series = keys.slice(1).map((key) => ({
+ name: keys.length > 2 ? key : chart.name,
+ data: chart.data!.map((row) => Number(row[key]) || 0),
+ }));
switch (chart.chartType) {
case 'bar':
- return getBarChartOptions(labels, [{ name: chart.name, data: values }]);
+ return getBarChartOptions(labels, series, undefined, chart.chartOptions?.horizontal === true);
case 'line':
- return getAreaLineChartOptions(labels, [{ name: chart.name, data: values }]);
+ return getAreaLineChartOptions(labels, series);
case 'pie':
return getDonutPieChartOptions(labels.map((l, i) => ({ name: l, value: values[i] || 0 })));
case 'gauge': {
@@ -125,6 +129,9 @@
<div v-if="chart.error" class="flex h-[240px] items-center justify-center">
<Empty :description="chart.error" />
</div>
+ <div v-else-if="!chart.data?.length" class="flex h-[240px] items-center justify-center">
+ <Empty description="鏆傛棤涓氬姟鏁版嵁" />
+ </div>
<EchartsUI
v-else
ref="chartRef"
--
Gitblit v1.9.3