!151 fix: 柱状图组件动态数据发送请求后,配置会被覆盖成默认配置问题

Merge pull request !151 from szy/fix/bar
This commit is contained in:
奔跑的面条 2023-04-01 12:00:02 +00:00 committed by Gitee
commit 9fd408e8ef

View File

@ -1,15 +1,8 @@
<template> <template>
<v-chart <v-chart ref="vChartRef" :init-options="initOptions" :theme="themeColor" :option="option" :manual-update="isPreview()"
ref="vChartRef"
:init-options="initOptions"
:theme="themeColor"
:option="option"
:manual-update="isPreview()"
:update-options="{ :update-options="{
replaceMerge: replaceMergeArr replaceMerge: replaceMergeArr
}" }" autoresize></v-chart>
autoresize
></v-chart>
</template> </template>
<script setup lang="ts"> <script setup lang="ts">
@ -62,11 +55,20 @@ watch(
if (!isObject(newData) || !('dimensions' in newData)) return if (!isObject(newData) || !('dimensions' in newData)) return
if (Array.isArray(newData?.dimensions)) { if (Array.isArray(newData?.dimensions)) {
const seriesArr = [] const seriesArr = []
for (let i = 0; i < newData.dimensions.length - 1; i++) { // oldData
seriesArr.push(cloneDeep(seriesItem)) // dimensionsYdimensions.length011X
const oldDimensions = Array.isArray(oldData?.dimensions)&&oldData.dimensions.length >= 1 ? oldData.dimensions.length : 1;
const newDimensions = newData.dimensions.length >= 1 ? newData.dimensions.length : 1;
const dimensionsGap = newDimensions - oldDimensions;
if (dimensionsGap < 0) {
props.chartConfig.option.series.splice(newDimensions - 1)
} else if (dimensionsGap > 0) {
for (let i = 0; i < dimensionsGap; i++) {
seriesArr.push(cloneDeep(seriesItem))
}
props.chartConfig.option.series.push(...seriesArr)
} }
replaceMergeArr.value = ['series'] replaceMergeArr.value = ['series']
props.chartConfig.option.series = seriesArr
nextTick(() => { nextTick(() => {
replaceMergeArr.value = [] replaceMergeArr.value = []
}) })