Commit c2cb67a9 authored by 水玉婷's avatar 水玉婷
Browse files

feat:修复折线图及柱状图数据展示问题

parent b2f96e4b
...@@ -493,7 +493,20 @@ const createSingleColumnOption = (chartConfig: any): echarts.EChartsOption => { ...@@ -493,7 +493,20 @@ const createSingleColumnOption = (chartConfig: any): echarts.EChartsOption => {
dataZoom: getDataZoomConfig(xAxisData.length) dataZoom: getDataZoomConfig(xAxisData.length)
}; };
} else { } else {
const seriesData = chartConfig.data.map((item: any) => item[chartConfig.yField]); // 非分组模式下,需要对数据进行聚合,每个X轴数据点对应聚合后的值
const seriesData = xAxisData.map(xValue => {
// 找到对应X轴值的所有数据点
const itemsForX = chartConfig.data.filter((item: any) => item[chartConfig.xField] === xValue);
// 对同一个月的数据进行求和聚合
if (itemsForX.length > 0) {
return itemsForX.reduce((sum: number, item: any) => {
const value = Number(item[chartConfig.yField]) || 0;
return sum + value;
}, 0);
}
return 0;
});
return { return {
...getBaseChartConfig(xAxisData.length), ...getBaseChartConfig(xAxisData.length),
...@@ -547,8 +560,41 @@ const createDualColumnOption = (chartConfig: any): echarts.EChartsOption => { ...@@ -547,8 +560,41 @@ const createDualColumnOption = (chartConfig: any): echarts.EChartsOption => {
dataZoom: getDataZoomConfig(xAxisData.length) dataZoom: getDataZoomConfig(xAxisData.length)
}; };
} else { } else {
const series1Data = chartConfig.data.map((item: any) => item[chartConfig.yFields[0]]); // 非分组模式下,需要对数据进行聚合,每个X轴数据点对应不同的指标值
const series2Data = chartConfig.data.map((item: any) => item[chartConfig.yFields[1]]); // 首先按X轴值分组数据
const groupedData: { [key: string]: any[] } = {};
chartConfig.data.forEach((item: any) => {
const xValue = item[chartConfig.xField];
if (!groupedData[xValue]) {
groupedData[xValue] = [];
}
groupedData[xValue].push(item);
});
// 为每个指标创建对应的数据数组,对同一个月的数据进行求和聚合
const series1Data = xAxisData.map(xValue => {
const itemsForX = groupedData[xValue] || [];
// 对同一个月的数据进行求和聚合
if (itemsForX.length > 0) {
return itemsForX.reduce((sum: number, item: any) => {
const value = Number(item[chartConfig.yFields[0]]) || 0;
return sum + value;
}, 0);
}
return 0;
});
const series2Data = xAxisData.map(xValue => {
const itemsForX = groupedData[xValue] || [];
// 对同一个月的数据进行求和聚合
if (itemsForX.length > 0) {
return itemsForX.reduce((sum: number, item: any) => {
const value = Number(item[chartConfig.yFields[1]]) || 0;
return sum + value;
}, 0);
}
return 0;
});
return { return {
...getBaseChartConfig(xAxisData.length), ...getBaseChartConfig(xAxisData.length),
......
...@@ -499,7 +499,20 @@ const createSingleLineOption = (chartConfig: any): echarts.EChartsOption => { ...@@ -499,7 +499,20 @@ const createSingleLineOption = (chartConfig: any): echarts.EChartsOption => {
dataZoom: getDataZoomConfig(xAxisData.length) dataZoom: getDataZoomConfig(xAxisData.length)
}; };
} else { } else {
const seriesData = chartConfig.data.map((item: any) => item[chartConfig.yField]); // 非分组模式下,需要对数据进行聚合,每个X轴数据点对应聚合后的值
const seriesData = xAxisData.map(xValue => {
// 找到对应X轴值的所有数据点
const itemsForX = chartConfig.data.filter((item: any) => item[chartConfig.xField] === xValue);
// 对同一个月的数据进行求和聚合
if (itemsForX.length > 0) {
return itemsForX.reduce((sum: number, item: any) => {
const value = Number(item[chartConfig.yField]) || 0;
return sum + value;
}, 0);
}
return 0;
});
return { return {
...getBaseChartConfig(), ...getBaseChartConfig(),
...@@ -551,8 +564,41 @@ const createDualLineOption = (chartConfig: any): echarts.EChartsOption => { ...@@ -551,8 +564,41 @@ const createDualLineOption = (chartConfig: any): echarts.EChartsOption => {
dataZoom: getDataZoomConfig(xAxisData.length) dataZoom: getDataZoomConfig(xAxisData.length)
}; };
} else { } else {
const series1Data = chartConfig.data.map((item: any) => item[chartConfig.yFields[0]]); // 非分组模式下,需要对数据进行聚合,每个X轴数据点对应不同的指标值
const series2Data = chartConfig.data.map((item: any) => item[chartConfig.yFields[1]]); // 首先按X轴值分组数据
const groupedData: { [key: string]: any[] } = {};
chartConfig.data.forEach((item: any) => {
const xValue = item[chartConfig.xField];
if (!groupedData[xValue]) {
groupedData[xValue] = [];
}
groupedData[xValue].push(item);
});
// 为每个指标创建对应的数据数组,对同一个月的数据进行求和聚合
const series1Data = xAxisData.map(xValue => {
const itemsForX = groupedData[xValue] || [];
// 对同一个月的数据进行求和聚合
if (itemsForX.length > 0) {
return itemsForX.reduce((sum: number, item: any) => {
const value = Number(item[chartConfig.yFields[0]]) || 0;
return sum + value;
}, 0);
}
return 0;
});
const series2Data = xAxisData.map(xValue => {
const itemsForX = groupedData[xValue] || [];
// 对同一个月的数据进行求和聚合
if (itemsForX.length > 0) {
return itemsForX.reduce((sum: number, item: any) => {
const value = Number(item[chartConfig.yFields[1]]) || 0;
return sum + value;
}, 0);
}
return 0;
});
return { return {
...getBaseChartConfig(), ...getBaseChartConfig(),
......
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment