From 87e19b5a396ac8fed6a551828b87d263f6425c31 Mon Sep 17 00:00:00 2001
From: riku <risaku@163.com>
Date: 星期四, 16 十月 2025 10:26:12 +0800
Subject: [PATCH] 2025.10.16 修改季度报告生成逻辑
---
src/utils/chart/chart-option.js | 288 +++++++++++++++++++++++++++++++++++++++++++++++++++++----
1 files changed, 266 insertions(+), 22 deletions(-)
diff --git a/src/utils/chart/chart-option.js b/src/utils/chart/chart-option.js
index 250e550..89a9380 100644
--- a/src/utils/chart/chart-option.js
+++ b/src/utils/chart/chart-option.js
@@ -14,23 +14,67 @@
return fontSize;
}
-function factorLineOption(_xAxis, _series, legends) {
+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();
return {
animationEasing: 'elasticOut',
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
@@ -38,7 +82,7 @@
},
legend: {
type: 'scroll',
- data: legends,
+ // data: legends,
left: 0,
textStyle: {
fontSize: fontSize,
@@ -47,6 +91,8 @@
},
xAxis: {
name: '鏃堕棿',
+ nameLocation: 'middle',
+ nameGap: 30,
data: _xAxis,
axisLabel: {
textStyle: {
@@ -73,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
@@ -93,15 +148,204 @@
},
minInterval: 1
},
- series: _series,
- dataZoom: [
- {
- type: 'inside',
- start: 0,
- end: 100
- }
- ]
+ series: _series
};
}
-export { factorLineOption };
+// 鎶樼嚎鍥�
+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;
+ },
+ tooltip: {
+ textStyle: {
+ fontSize: fontSize
+ }
+ },
+ grid: _grid,
+ legend: {
+ show: false
+ },
+ xAxis: [
+ {
+ show: true,
+ name: tag ? '鏃堕棿' : '',
+ // type: 'time',
+ data: _xAxis,
+ axisLabel: {
+ textStyle: {
+ fontSize: fontSize
+ },
+ color: mode == 'dark' ? '#ffffff' : '#000000',
+ textBorderColor: mode == 'dark' ? '#fff' : '#000000'
+ },
+ axisTick: {
+ lineStyle: {
+ color: mode == 'dark' ? '#ffffff' : '#000000'
+ },
+ intervel: 0,
+ inside: false
+ },
+
+ nameTextStyle: {
+ color: mode == 'dark' ? '#ffffff' : '#000000'
+ },
+ axisLine: {
+ lineStyle: {
+ color: mode == 'dark' ? '#ffffff' : '#000000'
+ }
+ }
+ },
+ { show: true }
+ ],
+ yAxis: [
+ {
+ name: tag ? '娴撳害(渭g/m鲁)' : '',
+ // type: 'time',
+ axisLabel: {
+ textStyle: {
+ fontSize: fontSize
+ }
+ },
+ axisLine: {
+ show: true,
+ lineStyle: {
+ color: mode == 'dark' ? '#ffffff' : '#000000'
+ }
+ },
+ axisTick: {
+ show: false,
+ lineStyle: {
+ color: mode == 'dark' ? '#ffffff' : '#000000'
+ }
+ },
+ splitLine: {
+ show: false
+ },
+ minInterval: yMinInterval ? yMinInterval : 1,
+ intervel: 1,
+ min: function (value) {
+ return Math.floor(value.min);
+ },
+ max: function (value) {
+ return Math.ceil(value.max);
+ }
+ },
+ {
+ axisLine: {
+ show: true,
+ lineStyle: {
+ color: mode == 'dark' ? '#ffffff' : '#000000'
+ }
+ }
+ }
+ ],
+ series: _series
+ };
+}
+
+// 浠〃鐩�
+function gaugeOption(name, value) {
+ // var fontSize = fGetChartFontSize();
+ var option = {
+ // title: {
+ // text: name,
+ // textStyle: {
+ // color: 'white',
+ // fontSize: fontSize
+ // },
+ // left: 'center'
+ // },
+ textStyle: {
+ color: '#ffffff',
+ fontSize: 10
+ },
+ tooltip: {
+ formatter: '{a} : {c}km/h'
+ },
+ toolbox: {
+ // feature: {
+ // restore: {},
+ // saveAsImage: {}
+ // }
+ },
+ series: [
+ {
+ name: name,
+ type: 'gauge',
+ title: {
+ color: 'white',
+ offsetCenter: [0, '50%']
+ },
+ detail: {
+ color: 'white',
+ formatter: '{value}km/h',
+ textStyle: {
+ fontSize: 18
+ },
+ offsetCenter: [0, '80%']
+ },
+ splitLine: {
+ lineStyle: {
+ color: 'white'
+ }
+ },
+ axisTick: {
+ lineStyle: {
+ color: 'white'
+ }
+ },
+ axisLabel: {
+ color: 'white',
+ fontSize: 10
+ },
+ axisLine: {
+ // lineStyle: {
+ // color: [
+ // [0.2, '#2afd2a'],
+ // [0.8, '#f1e74d'],
+ // [1, '#c23531']
+ // ]
+ // }
+ },
+ itemStyle: {
+ color: 'white'
+ },
+ data: [
+ {
+ value: value,
+ name: '杞﹂��'
+ }
+ ],
+ min: 0,
+ max: 200
+ }
+ ]
+ };
+ return option;
+}
+
+export { factorLineOption, smallLineOption, gaugeOption, baseVisualMap };
--
Gitblit v1.9.3