Merge pull request #3889 from dataease/pr@dev@fix_breakline_time_sort

fix(视图-AntV折线图): 修复多维度折线图线条断开策略的排序问题
This commit is contained in:
xuwei-fit2cloud 2022-11-28 09:58:15 +08:00 committed by GitHub
commit 762c369eec
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -3422,12 +3422,10 @@ export function handleEmptyDataStrategy(strategy, chart, data, options) {
const multiDimension = yaxis?.length >= 2 || extAxis?.length > 0 const multiDimension = yaxis?.length >= 2 || extAxis?.length > 0
switch (strategy) { switch (strategy) {
case 'breakLine': { case 'breakLine': {
options.connectNulls = false
if (multiDimension) { if (multiDimension) {
// 多维度线条断开 // 多维度线条断开
handleBreakLineMultiDimension(chart, data, options) handleBreakLineMultiDimension(chart, data)
} else {
// 单维度线条断开
options.connectNulls = false
} }
break break
} }
@ -3446,8 +3444,7 @@ export function handleEmptyDataStrategy(strategy, chart, data, options) {
} }
} }
function handleBreakLineMultiDimension(chart, data, options) { function handleBreakLineMultiDimension(chart, data) {
options.connectNulls = false
const dimensionInfoMap = new Map() const dimensionInfoMap = new Map()
const subDimensionSet = new Set() const subDimensionSet = new Set()
for (let i = 0; i < data.length; i++) { for (let i = 0; i < data.length; i++) {
@ -3464,15 +3461,18 @@ function handleBreakLineMultiDimension(chart, data, options) {
let insertCount = 0 let insertCount = 0
dimensionInfoMap.forEach((dimensionInfo, field) => { dimensionInfoMap.forEach((dimensionInfo, field) => {
if (dimensionInfo.set.size < subDimensionSet.size) { if (dimensionInfo.set.size < subDimensionSet.size) {
const toBeFillDimension = [...subDimensionSet].filter(item => !dimensionInfo.set.has(item)) let subInsertIndex = 0
toBeFillDimension.forEach(dimension => { subDimensionSet.forEach(dimension => {
data.splice(dimensionInfo.index + insertCount, 0, { if (!dimensionInfo.set.has(dimension)) {
field, data.splice(dimensionInfo.index + insertCount + subInsertIndex, 0, {
value: null, field,
category: dimension value: null,
}) category: dimension
})
}
subInsertIndex++
}) })
insertCount += toBeFillDimension.size insertCount += subDimensionSet.size - dimensionInfo.set.size
} }
}) })
} }