Просмотр исходного кода

Merge branch 'fork/abcd0f/dev/sun-local'

Jin Mao 4 месяцев назад
Родитель
Сommit
613c311076
1 измененных файлов с 31 добавлено и 0 удалено
  1. 31 0
      packages/effects/plugins/src/echarts/use-echarts.ts

+ 31 - 0
packages/effects/plugins/src/echarts/use-echarts.ts

@@ -105,6 +105,36 @@ function useEcharts(chartRef: Ref<EchartsUIType>) {
     });
     });
   };
   };
 
 
+  const updateDate = (
+    option: EChartsOption,
+    notMerge = false, // false = 合并(保留动画),true = 完全替换
+    lazyUpdate = false, // true 时不立即重绘,适合短时间内多次调用
+  ): Promise<echarts.ECharts | null> => {
+    return new Promise((resolve) => {
+      nextTick(() => {
+        if (!chartInstance) {
+          // 还没初始化 → 当作首次渲染
+          renderEcharts(option).then(resolve);
+          return;
+        }
+
+        // 合并你原有的全局配置(比如 backgroundColor)
+        const finalOption = {
+          ...option,
+          ...getOptions.value,
+        };
+
+        chartInstance.setOption(finalOption, {
+          notMerge,
+          lazyUpdate,
+          // silent: true,     // 如果追求极致性能可开启(关闭所有事件)
+        });
+
+        resolve(chartInstance);
+      });
+    });
+  };
+
   function resize() {
   function resize() {
     const el = getChartEl();
     const el = getChartEl();
     if (isElHidden(el)) {
     if (isElHidden(el)) {
@@ -140,6 +170,7 @@ function useEcharts(chartRef: Ref<EchartsUIType>) {
   return {
   return {
     renderEcharts,
     renderEcharts,
     resize,
     resize,
+    updateDate,
     getChartInstance: () => chartInstance,
     getChartInstance: () => chartInstance,
   };
   };
 }
 }