|
@@ -62,17 +62,30 @@ const option = computed(() => { |
|
@@ -62,17 +62,30 @@ const option = computed(() => { |
62
|
// dataset 无法变更条数的补丁
|
62
|
// dataset 无法变更条数的补丁
|
63
|
watch(
|
63
|
watch(
|
64
|
() => props.chartConfig.option.dataset,
|
64
|
() => props.chartConfig.option.dataset,
|
65
|
- (newData: { dimensions: any }, oldData) => {
|
65
|
+ (newData: any, oldData) => {
|
66
|
try {
|
66
|
try {
|
67
|
if (!isObject(newData) || !('dimensions' in newData)) return
|
67
|
if (!isObject(newData) || !('dimensions' in newData)) return
|
68
|
- if (Array.isArray(newData?.dimensions)) {
|
|
|
69
|
- const seriesArr = []
|
|
|
70
|
- for (let i = 0; i < newData.dimensions.length - 1; i++) {
|
|
|
71
|
- seriesArr.push(cloneDeep(barSeriesItem),cloneDeep(lineSeriesItem))
|
68
|
+ if (Array.isArray((newData as any)?.dimensions)) {
|
|
|
69
|
+ const seriesArr: typeof barSeriesItem[] = []
|
|
|
70
|
+ // 对oldData进行判断,防止传入错误数据之后对旧维度判断产生干扰
|
|
|
71
|
+ // 此处计算的是dimensions的Y轴维度,若是dimensions.length为0或1,则默认为1,排除X轴维度干扰
|
|
|
72
|
+ const oldDimensions =
|
|
|
73
|
+ Array.isArray(oldData?.dimensions) && oldData.dimensions.length >= 1 ? oldData.dimensions.length : 1
|
|
|
74
|
+ const newDimensions = (newData as any).dimensions.length >= 1 ? (newData as any).dimensions.length : 1
|
|
|
75
|
+ const dimensionsGap = newDimensions - oldDimensions
|
|
|
76
|
+ if (dimensionsGap < 0) {
|
|
|
77
|
+ props.chartConfig.option.series.splice(newDimensions - 1)
|
|
|
78
|
+ } else if (dimensionsGap > 0) {
|
|
|
79
|
+ if (!oldData || !oldData?.dimensions || !Array.isArray(oldData?.dimensions) || !oldData?.dimensions.length) {
|
|
|
80
|
+ props.chartConfig.option.series = []
|
|
|
81
|
+ }
|
|
|
82
|
+ for (let i = 0; i < dimensionsGap; i++) {
|
|
|
83
|
+ seriesArr.push(cloneDeep(barSeriesItem))
|
|
|
84
|
+ }
|
|
|
85
|
+ props.chartConfig.option.series.push(...seriesArr)
|
72
|
}
|
86
|
}
|
73
|
- useEchartsMapLegend(props.chartConfig, seriesArr)
|
87
|
+ useEchartsMapLegend(props.chartConfig, props.chartConfig.option.series)
|
74
|
replaceMergeArr.value = ['series']
|
88
|
replaceMergeArr.value = ['series']
|
75
|
- props.chartConfig.option.series = seriesArr
|
|
|
76
|
nextTick(() => {
|
89
|
nextTick(() => {
|
77
|
replaceMergeArr.value = []
|
90
|
replaceMergeArr.value = []
|
78
|
})
|
91
|
})
|