云
14 小时以前 973574fd62a1a130a1c229f812e70cfe3763b48e
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"