From b2392458ebf42594b9fc5390fda40d7a0a12f923 Mon Sep 17 00:00:00 2001 From: riku <risaku@163.com> Date: 星期三, 03 九月 2025 17:40:52 +0800 Subject: [PATCH] 调试自动生成网格融合图片功能(待完成) --- src/utils/chart/chart-option.js | 251 +++++++++++++++++++++++++++++++++++++++++-------- 1 files changed, 209 insertions(+), 42 deletions(-) diff --git a/src/utils/chart/chart-option.js b/src/utils/chart/chart-option.js index 556a0bb..89a9380 100644 --- a/src/utils/chart/chart-option.js +++ b/src/utils/chart/chart-option.js @@ -14,24 +14,67 @@ 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, legends) { +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 @@ -39,7 +82,7 @@ }, legend: { type: 'scroll', - data: legends, + // data: legends, left: 0, 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 @@ -94,35 +148,143 @@ }, minInterval: 1 }, - series: _series, - dataZoom: [ - { - type: 'inside', - start: 0, - end: 100 + series: _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; + }, + 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 fontSize = fGetChartFontSize(); var option = { - title: { - text: name, - textStyle: { - color: 'white', - fontSize: fontSize - }, - left: 'center' - }, + // title: { + // text: name, + // textStyle: { + // color: 'white', + // fontSize: fontSize + // }, + // left: 'center' + // }, textStyle: { color: '#ffffff', fontSize: 10 }, tooltip: { - formatter: '{a} <br/>{b} : {c}%' + formatter: '{a} : {c}km/h' }, toolbox: { // feature: { @@ -134,12 +296,17 @@ { name: name, type: 'gauge', + title: { + color: 'white', + offsetCenter: [0, '50%'] + }, detail: { color: 'white', - formatter: '{value}', + formatter: '{value}km/h', textStyle: { - fontSize: fontSize - } + fontSize: 18 + }, + offsetCenter: [0, '80%'] }, splitLine: { lineStyle: { @@ -156,13 +323,13 @@ fontSize: 10 }, axisLine: { - lineStyle: { - color: [ - [0.2, '#2afd2a'], - [0.8, '#f1e74d'], - [1, '#c23531'] - ] - } + // lineStyle: { + // color: [ + // [0.2, '#2afd2a'], + // [0.8, '#f1e74d'], + // [1, '#c23531'] + // ] + // } }, itemStyle: { color: 'white' @@ -170,7 +337,7 @@ data: [ { value: value, - name: '' + name: '杞﹂��' } ], min: 0, @@ -181,4 +348,4 @@ return option; } -export { factorLineOption, gaugeOption }; +export { factorLineOption, smallLineOption, gaugeOption, baseVisualMap }; -- Gitblit v1.9.3