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 | 279 +++++++++++++++++++++++++++++++++++++++++++++++++++++-- 1 files changed, 265 insertions(+), 14 deletions(-) diff --git a/src/utils/chart/chart-option.js b/src/utils/chart/chart-option.js index bd9de70..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 @@ -97,4 +152,200 @@ }; } -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