|
|
@@ -448,6 +448,46 @@ function initCharts() {
|
|
|
const yAxisMin = Math.floor(minY - range * 0.1);
|
|
|
const yAxisMax = Math.ceil(maxY + range * 0.1);
|
|
|
|
|
|
+ // 计算所有数据点的平均值
|
|
|
+ let totalPrice = 0;
|
|
|
+ let totalCount = 0;
|
|
|
+
|
|
|
+ chartList.value[index].series.forEach(series => {
|
|
|
+ series.data.forEach(item => {
|
|
|
+ const price = item[1];
|
|
|
+ totalPrice += price;
|
|
|
+ totalCount++;
|
|
|
+ });
|
|
|
+ });
|
|
|
+
|
|
|
+ const averagePrice = totalCount > 0 ? totalPrice / totalCount : 0;
|
|
|
+
|
|
|
+ // 创建平均线数据
|
|
|
+ const averageLine = {
|
|
|
+ name: '平均价',
|
|
|
+ type: 'line',
|
|
|
+ markLine: {
|
|
|
+ symbol: 'none',
|
|
|
+ label: {
|
|
|
+ position: 'middle',
|
|
|
+ formatter: '平均价: ' + averagePrice.toFixed(2) + ' 元'
|
|
|
+ },
|
|
|
+ data: [
|
|
|
+ {
|
|
|
+ yAxis: averagePrice,
|
|
|
+ lineStyle: {
|
|
|
+ color: '#FF0000',
|
|
|
+ width: 2,
|
|
|
+ type: 'dashed'
|
|
|
+ }
|
|
|
+ }
|
|
|
+ ]
|
|
|
+ }
|
|
|
+ };
|
|
|
+
|
|
|
+ // 合并原系列数据和平均线
|
|
|
+ const allSeries = [...chartList.value[index].series, averageLine];
|
|
|
+
|
|
|
// 配置图表选项
|
|
|
const option = {
|
|
|
title: {
|
|
|
@@ -473,7 +513,7 @@ function initCharts() {
|
|
|
}
|
|
|
},
|
|
|
legend: {
|
|
|
- data: chartList.value[index].series.map(item => item.name), // 显示品名
|
|
|
+ data: [...chartList.value[index].series.map(item => item.name), '平均价'], // 显示品名和平均价
|
|
|
top: '10%'
|
|
|
},
|
|
|
grid: {
|
|
|
@@ -512,7 +552,7 @@ function initCharts() {
|
|
|
show: false
|
|
|
}
|
|
|
},
|
|
|
- series: chartList.value[index].series
|
|
|
+ series: allSeries
|
|
|
};
|
|
|
|
|
|
// 设置图表选项
|