Преглед изворни кода

feat(echarts): add getInstance for useECharts

为useECharts添加getInstance以便绑定事件或执行更多自定义动作
无木 пре 3 година
родитељ
комит
fb6c76db53
1 измењених фајлова са 16 додато и 10 уклоњено
  1. 16 10
      src/hooks/web/useECharts.ts

+ 16 - 10
src/hooks/web/useECharts.ts

@@ -23,17 +23,15 @@ export function useECharts(
 
   resizeFn = useDebounceFn(resize, 200);
 
-  const getOptions = computed(
-    (): EChartsOption => {
-      if (getDarkMode.value !== 'dark') {
-        return cacheOptions.value;
-      }
-      return {
-        backgroundColor: 'transparent',
-        ...cacheOptions.value,
-      };
+  const getOptions = computed((): EChartsOption => {
+    if (getDarkMode.value !== 'dark') {
+      return cacheOptions.value;
     }
-  );
+    return {
+      backgroundColor: 'transparent',
+      ...cacheOptions.value,
+    };
+  });
 
   function initCharts(t = theme) {
     const el = unref(elRef);
@@ -100,9 +98,17 @@ export function useECharts(
     chartInstance = null;
   });
 
+  function getInstance(): echarts.ECharts | null {
+    if (!chartInstance) {
+      initCharts(getDarkMode.value as 'default');
+    }
+    return chartInstance;
+  }
+
   return {
     setOptions,
     resize,
     echarts,
+    getInstance,
   };
 }