From 520e68c92b63df9acd1ba6ef6c0752a70cdb2d59 Mon Sep 17 00:00:00 2001 From: zhang_li <2235006734@qqq.com> Date: Mon, 17 Jun 2024 17:22:51 +0800 Subject: [PATCH] =?UTF-8?q?=E6=9B=B4=E6=96=B0=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/hooks/useChartDataFetch.hook.ts | 9 ++++++--- .../components/Charts/Bars/BarCommon/index.vue | 18 ++++++++++++++++-- src/utils/utils.ts | 3 ++- 3 files changed, 24 insertions(+), 6 deletions(-) diff --git a/src/hooks/useChartDataFetch.hook.ts b/src/hooks/useChartDataFetch.hook.ts index 0138d1b..5b4e48e 100644 --- a/src/hooks/useChartDataFetch.hook.ts +++ b/src/hooks/useChartDataFetch.hook.ts @@ -39,7 +39,7 @@ export const useChartDataFetch = ( } } - const requestIntervalFn = () => { + const requestIntervalFn =async () => { const chartEditStore = useChartEditStore() // 全局数据 @@ -75,10 +75,11 @@ export const useChartDataFetch = ( if (res) { try { const filter = targetComponent.filter + res.data = res.source echartsUpdateHandle(newFunctionHandle(res?.data, res, filter)) // 更新回调函数 if (updateCallback) { - updateCallback(newFunctionHandle(res?.data, res, filter)) + updateCallback(newFunctionHandle(res?.data, res, filter),res) } } catch (error) { console.error(error) @@ -87,7 +88,9 @@ export const useChartDataFetch = ( } // 立即调用 - fetchFn() + await fetchFn() + + // fetchFn() // 定时时间 const time = targetInterval && targetInterval.value ? targetInterval.value : globalRequestInterval.value // 单位 diff --git a/src/packages/components/Charts/Bars/BarCommon/index.vue b/src/packages/components/Charts/Bars/BarCommon/index.vue index 77f6da0..74c2b84 100644 --- a/src/packages/components/Charts/Bars/BarCommon/index.vue +++ b/src/packages/components/Charts/Bars/BarCommon/index.vue @@ -7,6 +7,7 @@ :update-options="{ replaceMerge: replaceMergeArr }" + :key="key" autoresize > @@ -45,8 +46,16 @@ use([DatasetComponent, CanvasRenderer, BarChart, GridComponent, TooltipComponent const replaceMergeArr = ref() +const dataset1 = ref() +const dataset2 = ref(props.chartConfig.option) +const key = ref(0) const option = computed(() => { - return mergeTheme(props.chartConfig.option, props.themeSetting, includes) + if(dataset1.value){ + dataset2.value.dataset = dataset1.value + } + console.log(3444, mergeTheme(dataset2.value, props.themeSetting, includes)) + key.value++ + return mergeTheme(dataset2.value, props.themeSetting, includes) }) // dataset 无法变更条数的补丁 @@ -74,6 +83,11 @@ watch( deep: false } ) +const { vChartRef } = useChartDataFetch(props.chartConfig, useChartEditStore,(dataset,res)=>{ + dataset1.value = { + source : res.source, + dimensions : res.dimensions, + } +}) -const { vChartRef } = useChartDataFetch(props.chartConfig, useChartEditStore) diff --git a/src/utils/utils.ts b/src/utils/utils.ts index 281f806..0e8cf01 100644 --- a/src/utils/utils.ts +++ b/src/utils/utils.ts @@ -193,7 +193,8 @@ export const newFunctionHandle = ( try { if (!funcStr) return data const fn = new Function('data', 'res', funcStr) - const fnRes = fn(cloneDeep(data), cloneDeep(res)) + const fnRes = fn(res,data) + // const fnRes = fn(cloneDeep(data), cloneDeep(res)) const resHandle = isToString ? toString(fnRes) : fnRes // 成功回调 successCallBack && successCallBack(resHandle)