修复组合图标显示问题

This commit is contained in:
luoyp 2023-07-12 09:42:37 +08:00
parent a17426ceef
commit 15c001b5fa

View File

@ -7,7 +7,6 @@
import {ref, computed, watch, PropType, nextTick} from 'vue' import {ref, computed, watch, PropType, nextTick} from 'vue'
import VChart from 'vue-echarts' import VChart from 'vue-echarts'
import { useCanvasInitOptions } from '@/hooks/useCanvasInitOptions.hook' import { useCanvasInitOptions } from '@/hooks/useCanvasInitOptions.hook'
import dataJson from './data.json'
import { use } from 'echarts/core' import { use } from 'echarts/core'
import { CanvasRenderer } from 'echarts/renderers' import { CanvasRenderer } from 'echarts/renderers'
// 线 // 线
@ -18,9 +17,6 @@ import { useChartDataFetch } from '@/hooks'
import { useChartEditStore } from '@/store/modules/chartEditStore/chartEditStore' import { useChartEditStore } from '@/store/modules/chartEditStore/chartEditStore'
import { isPreview } from '@/utils' import { isPreview } from '@/utils'
import { DatasetComponent, GridComponent, TooltipComponent, LegendComponent } from 'echarts/components' import { DatasetComponent, GridComponent, TooltipComponent, LegendComponent } from 'echarts/components'
import isObject from "lodash/isObject";
import cloneDeep from "lodash/cloneDeep";
import {seriesItem} from "@/packages/components/Charts/Bars/BarCommon/config";
const props = defineProps({ const props = defineProps({
themeSetting: { themeSetting: {
@ -42,40 +38,24 @@ const initOptions = useCanvasInitOptions(props.chartConfig.option, props.themeSe
use([DatasetComponent, CanvasRenderer, BarChart, LineChart, GridComponent, TooltipComponent, LegendComponent]) use([DatasetComponent, CanvasRenderer, BarChart, LineChart, GridComponent, TooltipComponent, LegendComponent])
const replaceMergeArr = ref<string[]>() const replaceMergeArr = ref<string[]>()
const option = computed(() => { const option = computed(() => {
return mergeTheme(props.chartConfig.option, props.themeSetting, includes) return mergeTheme(props.chartConfig.option, props.themeSetting, includes)
}) })
watch( watch(
() => props.chartConfig.option.dataset, () => props.chartConfig.option.dataset,
(newData: { dimensions: any }, oldData) => { (newData, oldData) => {
try { if (newData.dimensions.length !== oldData.dimensions.length) {
if (!isObject(newData) || !('dimensions' in newData)) return const seriesArr = []
if (Array.isArray(newData?.dimensions)) { for (let i = 0; i < newData.dimensions.length - 1; i++) {
const seriesArr = [] seriesArr.push(barSeriesItem, lineSeriesItem)
// oldData
// 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) {
if(!oldData || !oldData?.dimensions || !Array.isArray(oldData?.dimensions) || !oldData?.dimensions.length ) {
props.chartConfig.option.series=[]
}
for (let i = 0; i < dimensionsGap; i++) {
seriesArr.push(cloneDeep(seriesItem))
}
props.chartConfig.option.series.push(...seriesArr)
}
replaceMergeArr.value = ['series']
nextTick(() => {
replaceMergeArr.value = []
})
} }
} catch (error) { replaceMergeArr.value = ['series']
console.log(error) props.chartConfig.option.series = seriesArr
nextTick(() => {
replaceMergeArr.value = []
})
} }
}, },
{ {