From 0167539b4f44c7540f8de9ac80a60e0022fdb38d Mon Sep 17 00:00:00 2001 From: wisonic-s Date: Wed, 3 Apr 2024 18:35:56 +0800 Subject: [PATCH] =?UTF-8?q?fix(=E5=9B=BE=E8=A1=A8):=20=E4=BF=AE=E5=A4=8D?= =?UTF-8?q?=E4=B8=8B=E9=92=BB=E5=90=8E=E5=8A=A0=E8=BD=BD=E5=9B=BE=E6=A0=87?= =?UTF-8?q?=E6=9C=AA=E6=B6=88=E5=A4=B1=E5=AF=BC=E8=87=B4=E7=82=B9=E5=87=BB?= =?UTF-8?q?=E4=BA=8B=E4=BB=B6=E5=A4=B1=E6=95=88?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../views/components/ChartComponentG2Plot.vue | 47 +++++++++---------- 1 file changed, 22 insertions(+), 25 deletions(-) diff --git a/core/core-frontend/src/views/chart/components/views/components/ChartComponentG2Plot.vue b/core/core-frontend/src/views/chart/components/views/components/ChartComponentG2Plot.vue index cdd2833a93..2c407e8100 100644 --- a/core/core-frontend/src/views/chart/components/views/components/ChartComponentG2Plot.vue +++ b/core/core-frontend/src/views/chart/components/views/components/ChartComponentG2Plot.vue @@ -68,12 +68,12 @@ let chartData = shallowRef>({ const containerId = 'container-' + showPosition.value + '-' + view.value.id const viewTrack = ref(null) -const calcData = (view, callback) => { +const calcData = async (view, callback) => { if (view.tableId || view['dataFrom'] === 'template') { isError.value = false const v = JSON.parse(JSON.stringify(view)) getData(v) - .then(res => { + .then(async res => { if (res.code && res.code !== 0) { isError.value = true errMsg.value = res.msg @@ -92,7 +92,8 @@ const calcData = (view, callback) => { } } dvMainStore.setViewDataDetails(view.id, chartData.value) - renderChart(res, callback) + await renderChart(res) + callback?.() } }) .catch(() => { @@ -100,13 +101,13 @@ const calcData = (view, callback) => { }) } else { if (view.type === 'map') { - renderChart(view, callback) + await renderChart(view) } callback?.() } } let curView -const renderChart = async (view, callback?) => { +const renderChart = async view => { if (!view) { return } @@ -122,11 +123,10 @@ const renderChart = async (view, callback?) => { recursionTransObj(customStyleTrans, chart.customStyle, scale.value, terminal.value) switch (chartView.library) { case ChartLibraryType.L7_PLOT: - renderL7Plot(chart, chartView as L7PlotChartView, callback) + await renderL7Plot(chart, chartView as L7PlotChartView) break case ChartLibraryType.G2_PLOT: renderG2Plot(chart, chartView as G2PlotChartView) - callback?.() break default: break @@ -149,30 +149,25 @@ const dynamicAreaId = ref('') const country = ref('') const appStore = useAppStoreWithOut() const isDataEaseBi = computed(() => appStore.getIsDataEaseBi) -let mapTimer const chartContainer = ref(null) -const renderL7Plot = (chart, chartView: L7PlotChartView, callback?) => { +const renderL7Plot = async (chart, chartView: L7PlotChartView) => { const map = parseJson(chart.customAttr).map let areaId = map.id country.value = areaId.slice(0, 3) if (dynamicAreaId.value) { areaId = dynamicAreaId.value } - mapTimer && clearTimeout(mapTimer) - mapTimer = setTimeout(async () => { - myChart?.destroy() - if (chartContainer.value) { - chartContainer.value.textContent = '' - } - myChart = await chartView.drawChart({ - chartObj: myChart, - container: containerId, - chart, - areaId, - action - }) - callback?.() - }, 500) + myChart?.destroy() + if (chartContainer.value) { + chartContainer.value.textContent = '' + } + myChart = await chartView.drawChart({ + chartObj: myChart, + container: containerId, + chart, + areaId, + action + }) } const action = param => { @@ -270,6 +265,7 @@ defineExpose({ let resizeObserver const TOLERANCE = 0.01 const RESIZE_MONITOR_CHARTS = ['map', 'bubble-map'] +let mapTimer: number onMounted(() => { const containerDom = document.getElementById(containerId) const { offsetWidth, offsetHeight } = containerDom @@ -286,7 +282,8 @@ onMounted(() => { } preSize[0] = size.inlineSize preSize[1] = size.blockSize - renderChart(curView) + mapTimer && clearTimeout(mapTimer) + mapTimer = setTimeout(() => renderChart(curView), 500) }) resizeObserver.observe(containerDom) })