| | |
| | | import type { EChartsOption } from 'echarts'; |
| | | import type { Ref } from 'vue'; |
| | | |
| | | import { useTimeoutFn } from '/@/hooks/core/useTimeout'; |
| | | import { tryOnUnmounted } from '@vueuse/core'; |
| | | import { unref, Ref, nextTick, watch, computed, ref } from 'vue'; |
| | | import type { EChartsOption } from 'echarts'; |
| | | import { useDebounce } from '/@/hooks/core/useDebounce'; |
| | | import { unref, nextTick, watch, computed, ref } from 'vue'; |
| | | import { useDebounceFn } from '@vueuse/core'; |
| | | import { useEventListener } from '/@/hooks/event/useEventListener'; |
| | | import { useBreakpoint } from '/@/hooks/event/useBreakpoint'; |
| | | |
| | | import echarts from '/@/plugins/echarts'; |
| | | import { useRootSetting } from '../setting/useRootSetting'; |
| | | import echarts from '/@/utils/lib/echarts'; |
| | | import { useRootSetting } from '/@/hooks/setting/useRootSetting'; |
| | | |
| | | export function useECharts( |
| | | elRef: Ref<HTMLDivElement>, |
| | |
| | | const cacheOptions = ref<EChartsOption>({}); |
| | | let removeResizeFn: Fn = () => {}; |
| | | |
| | | const [debounceResize] = useDebounce(resize, 200); |
| | | resizeFn = debounceResize; |
| | | resizeFn = useDebounceFn(resize, 200); |
| | | |
| | | const getOptions = computed( |
| | | (): EChartsOption => { |
| | |
| | | nextTick(() => { |
| | | useTimeoutFn(() => { |
| | | if (!chartInstance) { |
| | | initCharts(getDarkMode.value); |
| | | initCharts(getDarkMode.value as 'default'); |
| | | |
| | | if (!chartInstance) return; |
| | | } |
| | |
| | | (theme) => { |
| | | if (chartInstance) { |
| | | chartInstance.dispose(); |
| | | initCharts(theme); |
| | | initCharts(theme as 'default'); |
| | | setOptions(cacheOptions.value); |
| | | } |
| | | } |