diff --git a/src/hooks/web/useECharts.ts b/src/hooks/web/useECharts.ts index 21c331a..ce2886f 100644 --- a/src/hooks/web/useECharts.ts +++ b/src/hooks/web/useECharts.ts @@ -12,7 +12,6 @@ import { useMenuSetting } from '@/hooks/setting/useMenuSetting' export function useECharts(elRef: Ref, theme: 'light' | 'dark' | 'default' = 'default') { const { getDarkMode: getSysDarkMode } = useRootSetting() - const { getCollapsed } = useMenuSetting() const getDarkMode = computed(() => { @@ -58,23 +57,26 @@ export function useECharts(elRef: Ref, theme: 'light' | 'dark' | function setOptions(options: EChartsOption, clear = true) { cacheOptions.value = options - if (unref(elRef)?.offsetHeight === 0) { - useTimeoutFn(() => { - setOptions(unref(getOptions)) - }, 30) - return - } - nextTick(() => { - useTimeoutFn(() => { - if (!chartInstance) { - initCharts(getDarkMode.value as 'default') - - if (!chartInstance) return - } - clear && chartInstance?.clear() - - chartInstance?.setOption(unref(getOptions)) - }, 30) + return new Promise((resolve) => { + if (unref(elRef)?.offsetHeight === 0) { + useTimeoutFn(() => { + setOptions(unref(getOptions)) + resolve(null) + }, 30) + } + nextTick(() => { + useTimeoutFn(() => { + if (!chartInstance) { + initCharts(getDarkMode.value as 'default') + + if (!chartInstance) return + } + clear && chartInstance?.clear() + + chartInstance?.setOption(unref(getOptions)) + resolve(null) + }, 30) + }) }) }