| | |
| | | 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 |
| | |
| | | }, |
| | | legend: { |
| | | type: 'scroll', |
| | | data: legends, |
| | | // data: legends, |
| | | left: 0, |
| | | textStyle: { |
| | | fontSize: fontSize, |
| | |
| | | }, |
| | | xAxis: { |
| | | name: '时间', |
| | | nameLocation: 'middle', |
| | | nameGap: 30, |
| | | data: _xAxis, |
| | | axisLabel: { |
| | | textStyle: { |
| | |
| | | } |
| | | }, |
| | | yAxis: { |
| | | name: '浓度(μg/m³)', |
| | | name: '浓度(μg/m³)/温度(℃)/速度(m/s)', |
| | | nameLocation: 'middle', |
| | | nameGap: 30, |
| | | // nameTruncate: { |
| | | // maxWidth: 100, |
| | | // ellipsis: '...' |
| | | // }, |
| | | // nameTextStyle: { |
| | | // color: 'red' |
| | | // }, |
| | | axisLabel: { |
| | | textStyle: { |
| | | fontSize: fontSize |
| | |
| | | }; |
| | | } |
| | | |
| | | 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 }; |