diff --git a/employee-app/health-monitor/environment/device-detail.html b/employee-app/health-monitor/environment/device-detail.html index f65a695..0026f05 100644 --- a/employee-app/health-monitor/environment/device-detail.html +++ b/employee-app/health-monitor/environment/device-detail.html @@ -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];