From cf4347a734b5add44352846a68bb5cfbb0b19e02 Mon Sep 17 00:00:00 2001 From: wisonic-s Date: Wed, 27 Mar 2024 14:23:47 +0800 Subject: [PATCH] =?UTF-8?q?fix(=E8=A7=86=E5=9B=BE):=20=E6=8A=98=E7=BA=BF?= =?UTF-8?q?=E5=9B=BE=E8=B6=8B=E5=8A=BF=E7=BA=BF=E6=98=BE=E7=A4=BA=E9=94=99?= =?UTF-8?q?=E8=AF=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../views/chart/chart/common/common_antv.js | 21 ++++++++++--------- 1 file changed, 11 insertions(+), 10 deletions(-) diff --git a/core/frontend/src/views/chart/chart/common/common_antv.js b/core/frontend/src/views/chart/chart/common/common_antv.js index 619097caff..b7e5d0794b 100644 --- a/core/frontend/src/views/chart/chart/common/common_antv.js +++ b/core/frontend/src/views/chart/chart/common/common_antv.js @@ -1293,20 +1293,21 @@ export function configPlotTrendLine(chart, plot) { }) const trendResultData = {} const totalData = [] - const trendLineMap = senior.trendLine.reduce((p, n) => { + const trendLineMap = senior.trendLine.reduce((p, n, i) => { const fieldData = originFieldDataMap[n.fieldId] if (!fieldData?.length) { return p } const regAlgo = REGRESSION_ALGO_MAP[n.algoType]() - .x((_, i) => i) + .x((_, i) => i + 1) .y(d => d) const result = regAlgo(fieldData) - trendResultData[n.fieldId] = result + const trendId = `${n.fieldId}|${i}` + trendResultData[trendId] = result result.forEach(item => { - totalData.push({ index: item[0], value: item[1], color: n.color, field: n.fieldId }) + totalData.push({ trendId, index: item[0], value: item[1], color: n.color, field: n.fieldId }) }) - p[n.fieldId] = n + p[trendId] = n return p }, {}) if (!totalData.length) { @@ -1314,9 +1315,9 @@ export function configPlotTrendLine(chart, plot) { } const regLine = plot.chart.createView() plot.once('afterrender', () => { - for (const fieldId in trendResultData) { - const trendLine = trendLineMap[fieldId] - const trendData = trendResultData[fieldId] + for (const trendId in trendResultData) { + const trendLine = trendLineMap[trendId] + const trendData = trendResultData[trendId] regLine.annotation().text({ content: trendLine.name, position: [0, trendData[0][1]], @@ -1334,8 +1335,8 @@ export function configPlotTrendLine(chart, plot) { regLine.line() .position('index*value') .color('color', color => color) - .style('field',field => { - const trend = trendLineMap[field] + .style('trendId',trendId => { + const trend = trendLineMap[trendId] return { stroke: trend?.color ?? 'grey', lineDash: trend?.lineType ? getLineDash(trend.lineType) : [0, 0]