From 7e5b617ad4e0d1c38db96ef680529399aaaa8afd Mon Sep 17 00:00:00 2001 From: wisonic-s Date: Sat, 26 Nov 2022 17:25:18 +0800 Subject: [PATCH] =?UTF-8?q?fix(=E8=A7=86=E5=9B=BE-AntV=E6=8A=98=E7=BA=BF?= =?UTF-8?q?=E5=9B=BE):=20=E4=BF=AE=E5=A4=8D=E5=A4=9A=E7=BB=B4=E5=BA=A6?= =?UTF-8?q?=E6=8A=98=E7=BA=BF=E5=9B=BE=E7=BA=BF=E6=9D=A1=E6=96=AD=E5=BC=80?= =?UTF-8?q?=E7=AD=96=E7=95=A5=E7=9A=84=E6=8E=92=E5=BA=8F=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 修复多维度折线图在线条断开的策略下时间排序异常 https://www.tapd.cn/55578866/bugtrace/bugs/view/1155578866001020335 --- frontend/src/views/chart/chart/util.js | 28 +++++++++++++------------- 1 file changed, 14 insertions(+), 14 deletions(-) diff --git a/frontend/src/views/chart/chart/util.js b/frontend/src/views/chart/chart/util.js index 82b180c06f..0905c41bab 100644 --- a/frontend/src/views/chart/chart/util.js +++ b/frontend/src/views/chart/chart/util.js @@ -3422,12 +3422,10 @@ export function handleEmptyDataStrategy(strategy, chart, data, options) { const multiDimension = yaxis?.length >= 2 || extAxis?.length > 0 switch (strategy) { case 'breakLine': { + options.connectNulls = false if (multiDimension) { // 多维度线条断开 - handleBreakLineMultiDimension(chart, data, options) - } else { - // 单维度线条断开 - options.connectNulls = false + handleBreakLineMultiDimension(chart, data) } break } @@ -3446,8 +3444,7 @@ export function handleEmptyDataStrategy(strategy, chart, data, options) { } } -function handleBreakLineMultiDimension(chart, data, options) { - options.connectNulls = false +function handleBreakLineMultiDimension(chart, data) { const dimensionInfoMap = new Map() const subDimensionSet = new Set() for (let i = 0; i < data.length; i++) { @@ -3464,15 +3461,18 @@ function handleBreakLineMultiDimension(chart, data, options) { let insertCount = 0 dimensionInfoMap.forEach((dimensionInfo, field) => { if (dimensionInfo.set.size < subDimensionSet.size) { - const toBeFillDimension = [...subDimensionSet].filter(item => !dimensionInfo.set.has(item)) - toBeFillDimension.forEach(dimension => { - data.splice(dimensionInfo.index + insertCount, 0, { - field, - value: null, - category: dimension - }) + let subInsertIndex = 0 + subDimensionSet.forEach(dimension => { + if (!dimensionInfo.set.has(dimension)) { + data.splice(dimensionInfo.index + insertCount + subInsertIndex, 0, { + field, + value: null, + category: dimension + }) + } + subInsertIndex++ }) - insertCount += toBeFillDimension.size + insertCount += subDimensionSet.size - dimensionInfo.set.size } }) }