Merge pull request #3889 from dataease/pr@dev@fix_breakline_time_sort
fix(视图-AntV折线图): 修复多维度折线图线条断开策略的排序问题
This commit is contained in:
commit
762c369eec
@ -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
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user