zhengnaiwen_citu 4 месяцев назад
Родитель
Сommit
8e252817e8
1 измененных файлов с 34 добавлено и 1 удалено
  1. 34 1
      src/components/AutoComponents/ECharts/eCharts.js

+ 34 - 1
src/components/AutoComponents/ECharts/eCharts.js

@@ -37,12 +37,45 @@ class EChartsComponent {
         CanvasRenderer
       ]
     )
-    this.el = ECharts.init(el)
+    // 默认颜色数组
+    // 20个默认颜色色组 - 精心挑选的视觉区分度高的颜色
+    const defaultColors = [
+      '#1f77b4', '#ff7f0e', '#2ca02c', '#d62728', '#9467bd',
+      '#8c564b', '#e377c2', '#7f7f7f', '#bcbd22', '#17becf',
+      '#aec7e8', '#ffbb78', '#98df8a', '#ff9896', '#c5b0d5',
+      '#c49c94', '#f7b6d2', '#c7c7c7', '#dbdb8d', '#9edae5',
+      '#393b79', '#637939', '#8c6d31', '#843c39', '#7b4173',
+      '#5254a3', '#6baed6', '#9e9ac8', '#807dba', '#6a51a3'
+    ].slice(0, 20) // 确保只有20个颜色
+
+    const echartsInstance = ECharts.init(el)
+    const handler = {
+      get: function (target, prop) {
+        if (prop === 'setOption') {
+          return function (option, ...args) {
+            // 合并颜色配置
+            const mergedOption = {
+              color: defaultColors,
+              ...option
+            }
+            // 调用原始的 setOption 方法
+            return target[prop](mergedOption, ...args)
+          }
+        }
+        return target[prop]
+      }
+    }
+    this.el = new Proxy(echartsInstance, handler)
   }
 
   getEl () {
     return this.el
   }
+
+  // 可选:添加方法来更新默认颜色
+  setDefaultColors (colors) {
+    this.defaultColors = colors.slice(0, 20) // 确保不超过20个颜色
+  }
 }
 
 export default EChartsComponent