fix: 室外空气等级修正为6级(优/良/轻度污染/中度污染/重度污染/严重污染)
- 室外空气指数: 6级等级配置,颜色(绿/浅绿/橙/橙红/红/紫) - 室内空气指数: 5级等级配置,颜色(青/绿/橙/橙红/红) - 柱状堆积图/Tooltip/图例统一根据等级配置动态渲染
This commit is contained in:
@@ -255,7 +255,32 @@ var chartLine = '#1aad8d';
|
||||
function genTrend(metricName, period) {
|
||||
// 各指标的模拟数据
|
||||
var configs = {
|
||||
'空气质量指数': {
|
||||
'室外空气指数': {
|
||||
isAQI: true, yMax: 300, yTicks: [300,200,100,50,0],
|
||||
limitUpper: null, limitLower: null,
|
||||
levelBands: [
|
||||
{yMin:0,yMax:50,label:'优',color:'#52C41A',opacity:.1},
|
||||
{yMin:50,yMax:100,label:'良',color:'#73D13D',opacity:.1},
|
||||
{yMin:100,yMax:150,label:'轻度污染',color:'#FAAD14',opacity:.1},
|
||||
{yMin:150,yMax:200,label:'中度污染',color:'#FA541C',opacity:.1},
|
||||
{yMin:200,yMax:250,label:'重度污染',color:'#FF4D4F',opacity:.1},
|
||||
{yMin:250,yMax:300,label:'严重污染',color:'#722ED1',opacity:.1}
|
||||
],
|
||||
levelColors: ['#52C41A','#73D13D','#FAAD14','#FA541C','#FF4D4F','#722ED1'],
|
||||
levelNames: ['优','良','轻度污染','中度污染','重度污染','严重污染'],
|
||||
'24h': {points:[55,42,35,48,65,78,82,75,62,58,52,48]},
|
||||
'7d': {barData:[
|
||||
{excellent:6,good:8,light:6,moderate:4,heavy:0,severe:0},
|
||||
{excellent:8,good:7,light:5,moderate:4,heavy:0,severe:0},
|
||||
{excellent:4,good:6,light:8,moderate:5,heavy:1,severe:0},
|
||||
{excellent:2,good:5,light:7,moderate:8,heavy:2,severe:0},
|
||||
{excellent:7,good:8,light:5,moderate:4,heavy:0,severe:0},
|
||||
{excellent:9,good:7,light:4,moderate:4,heavy:0,severe:0},
|
||||
{excellent:6,good:9,light:5,moderate:4,heavy:0,severe:0}
|
||||
]},
|
||||
'30d': {barData:(function(){var r=[];for(var i=0;i<30;i++){r.push({excellent:Math.floor(Math.random()*8)+2,good:Math.floor(Math.random()*8)+2,light:Math.floor(Math.random()*6)+2,moderate:Math.floor(Math.random()*6)+2,heavy:Math.floor(Math.random()*3),severe:Math.floor(Math.random()*2)})}return r})()}
|
||||
},
|
||||
'室内空气指数': {
|
||||
isAQI: true, yMax: 200, yTicks: [200,150,100,50,0],
|
||||
limitUpper: null, limitLower: null,
|
||||
levelBands: [
|
||||
@@ -434,9 +459,11 @@ function renderGradeBarChart(cfg, timeData, labels) {
|
||||
|
||||
// 根据 levelNames 动态构建分段
|
||||
var levelNames = cfg.levelNames;
|
||||
// barData 的 key 映射:空气质量指数→clean/good/light/moderate/heavy, 过敏等级→vl/lo/md/hi/vh, 水质等级→pass/fail
|
||||
// barData 的 key 映射:室外→excellent/good/light/moderate/heavy/severe, 室内→clean/good/light/moderate/heavy, 过敏→vl/lo/md/hi/vh, 水质→pass/fail
|
||||
var levelKeys;
|
||||
if (levelNames.length === 5 && levelNames[0] === '很低') {
|
||||
if (levelNames[0] === '优') {
|
||||
levelKeys = [{k:'severe'},{k:'heavy'},{k:'moderate'},{k:'light'},{k:'good'},{k:'excellent'}];
|
||||
} else if (levelNames[0] === '很低') {
|
||||
levelKeys = [{k:'vh'},{k:'hi'},{k:'md'},{k:'lo'},{k:'vl'}];
|
||||
} else if (levelNames.length === 2) {
|
||||
levelKeys = [{k:'fail'},{k:'pass'}];
|
||||
@@ -648,7 +675,9 @@ function showBarTip(e, el) {
|
||||
var levelColors = td.levelColors;
|
||||
// 根据 levelKeys 读取 barData 值
|
||||
var levelKeysArr;
|
||||
if (levelNames[0] === '很低') {
|
||||
if (levelNames[0] === '优') {
|
||||
levelKeysArr = ['excellent','good','light','moderate','heavy','severe'];
|
||||
} else if (levelNames[0] === '很低') {
|
||||
levelKeysArr = ['vl','lo','md','hi','vh'];
|
||||
} else if (levelNames.length === 2) {
|
||||
levelKeysArr = ['pass','fail'];
|
||||
@@ -734,8 +763,8 @@ function renderChart(metricIdx, period) {
|
||||
}
|
||||
|
||||
// 根据 tab 类型确定主指标名称和等级标签
|
||||
var primaryMetricName = (tab === 'outdoor' || tab === 'indoor') ? '空气质量指数' : tab === 'water' ? '水质等级' : tab === 'pollen' ? '过敏等级' : '空气质量指数';
|
||||
var gradeLabelText = (tab === 'outdoor' || tab === 'indoor') ? '空气质量级别:' : tab === 'water' ? '水质等级:' : tab === 'pollen' ? '过敏等级:' : '空气质量级别:';
|
||||
var primaryMetricName = tab === 'outdoor' ? '室外空气指数' : tab === 'indoor' ? '室内空气指数' : tab === 'water' ? '水质等级' : tab === 'pollen' ? '过敏等级' : '室外空气指数';
|
||||
var gradeLabelText = tab === 'outdoor' ? '空气质量级别:' : tab === 'indoor' ? '空气质量级别:' : tab === 'water' ? '水质等级:' : tab === 'pollen' ? '过敏等级:' : '空气质量级别:';
|
||||
|
||||
function render() {
|
||||
document.getElementById('levelName').textContent = tabData.levelLabels[li];
|
||||
|
||||
Reference in New Issue
Block a user