From adc9abd145c24f2d3e7033bb738e1e8641eaf4cf Mon Sep 17 00:00:00 2001
From: riku <risaku@163.com>
Date: 星期二, 02 九月 2025 17:30:43 +0800
Subject: [PATCH] 2025.9.2

---
 src/utils/chart/chart-option.js |  129 +++++++++++++++++++++++++++++++++----------
 1 files changed, 99 insertions(+), 30 deletions(-)

diff --git a/src/utils/chart/chart-option.js b/src/utils/chart/chart-option.js
index 06357e1..89a9380 100644
--- a/src/utils/chart/chart-option.js
+++ b/src/utils/chart/chart-option.js
@@ -14,6 +14,38 @@
   return fontSize;
 }
 
+function baseVisualMap(area) {
+  const _pieces = [];
+  area.forEach((v, i) => {
+    // if (i == 0) {
+    //   _pieces.push({
+    //     lt: v[0],
+    //     color: 'green'
+    //   });
+    // }
+    _pieces.push({
+      gte: v[0],
+      lte: v[1],
+      color: 'red'
+    });
+  });
+  // const lastOne = area[area.length - 1];
+  // _pieces.push({
+  //   gt: lastOne[1],
+  //   color: 'green'
+  // });
+  return {
+    type: 'piecewise',
+    // type: 'continuous',
+    show: false,
+    dimension: 0,
+    pieces: _pieces,
+    outOfRange: {
+      color: ['#5470c6']
+    }
+  };
+}
+
 // 鎶樼嚎鍥�
 function factorLineOption(_xAxis, _series) {
   var fontSize = fGetChartFontSize();
@@ -22,16 +54,27 @@
     animationDelayUpdate: function (idx) {
       return idx * 5;
     },
-    // toolbox: {
-    //   bottom: 0,
-    //   feature: {
-    //     dataZoom: {},
-    //     magicType: {
-    //       type: ['line', 'bar']
-    //     },
-    //     restore: {}
-    //   }
-    // },
+    toolbox: {
+      // bottom: 0,
+      feature: {
+        // dataZoom: {},
+        // magicType: {
+        //   type: ['line', 'bar']
+        // },
+        // restore: {
+        //   title: '鍒锋柊'
+        // },
+        saveAsImage: {
+          show: true,
+          backgroundColor: '#122b54a9',
+          name: '璧拌埅鐩戞祴鍥�',
+          title: '淇濆瓨涓哄浘鐗�',
+          iconStyle: {
+            borderColor: '#fff'
+          }
+        }
+      }
+    },
     tooltip: {
       textStyle: {
         fontSize: fontSize
@@ -48,6 +91,8 @@
     },
     xAxis: {
       name: '鏃堕棿',
+      nameLocation: 'middle',
+      nameGap: 30,
       data: _xAxis,
       axisLabel: {
         textStyle: {
@@ -74,7 +119,16 @@
       }
     },
     yAxis: {
-      name: '娴撳害(渭g/m鲁)',
+      name: '娴撳害(渭g/m鲁)/娓╁害(鈩�)/閫熷害(m/s)',
+      nameLocation: 'middle',
+      nameGap: 30,
+      // nameTruncate: {
+      //   maxWidth: 100,
+      //   ellipsis: '...'
+      // },
+      // nameTextStyle: {
+      //   color: 'red'
+      // },
       axisLabel: {
         textStyle: {
           fontSize: fontSize
@@ -99,9 +153,29 @@
 }
 
 // 鎶樼嚎鍥�
-function smallLineOption(_xAxis, _series) {
+function smallLineOption(
+  _xAxis,
+  _series,
+  yMinInterval,
+  mode = 'dark',
+  tag,
+  animation = true,
+  defaultGrid,
+  title
+) {
   var fontSize = fGetChartFontSize();
+  const _grid = defaultGrid
+    ? defaultGrid
+    : { left: '12%', right: '2%', top: '7%', bottom: '30%' };
   return {
+    title: {
+      text: title,
+      textStyle: {
+        color: mode == 'dark' ? '#ffffff' : '#000000'
+      },
+      left: 'center'
+    },
+    animation: animation,
     animationEasing: 'elasticOut',
     animationDelayUpdate: function (idx) {
       return idx * 5;
@@ -111,42 +185,37 @@
         fontSize: fontSize
       }
     },
-    grid: {
-      left: '11%',
-      right: '2%',
-      top: '7%',
-      bottom: '20%'
-    },
+    grid: _grid,
     legend: {
       show: false
     },
     xAxis: [
       {
         show: true,
-        // name: '鏃堕棿',
+        name: tag ? '鏃堕棿' : '',
         // type: 'time',
         data: _xAxis,
         axisLabel: {
           textStyle: {
             fontSize: fontSize
           },
-          color: '#ffffff',
-          textBorderColor: '#fff'
+          color: mode == 'dark' ? '#ffffff' : '#000000',
+          textBorderColor: mode == 'dark' ? '#fff' : '#000000'
         },
         axisTick: {
           lineStyle: {
-            color: 'white'
+            color: mode == 'dark' ? '#ffffff' : '#000000'
           },
           intervel: 0,
           inside: false
         },
 
         nameTextStyle: {
-          color: '#ffffff'
+          color: mode == 'dark' ? '#ffffff' : '#000000'
         },
         axisLine: {
           lineStyle: {
-            color: '#ffffff'
+            color: mode == 'dark' ? '#ffffff' : '#000000'
           }
         }
       },
@@ -154,7 +223,7 @@
     ],
     yAxis: [
       {
-        // name: '娴撳害(渭g/m鲁)',
+        name: tag ? '娴撳害(渭g/m鲁)' : '',
         // type: 'time',
         axisLabel: {
           textStyle: {
@@ -164,19 +233,19 @@
         axisLine: {
           show: true,
           lineStyle: {
-            color: 'white'
+            color: mode == 'dark' ? '#ffffff' : '#000000'
           }
         },
         axisTick: {
           show: false,
           lineStyle: {
-            color: 'white'
+            color: mode == 'dark' ? '#ffffff' : '#000000'
           }
         },
         splitLine: {
           show: false
         },
-        minInterval: 1,
+        minInterval: yMinInterval ? yMinInterval : 1,
         intervel: 1,
         min: function (value) {
           return Math.floor(value.min);
@@ -189,7 +258,7 @@
         axisLine: {
           show: true,
           lineStyle: {
-            color: 'white'
+            color: mode == 'dark' ? '#ffffff' : '#000000'
           }
         }
       }
@@ -279,4 +348,4 @@
   return option;
 }
 
-export { factorLineOption, smallLineOption, gaugeOption };
+export { factorLineOption, smallLineOption, gaugeOption, baseVisualMap };

--
Gitblit v1.9.3