iep-ui
Version:
An enterprise-class UI design language and Vue-based implementation
370 lines (364 loc) • 8.42 kB
JavaScript
export var factorDict = {
factor: {
aqi: {
unit: '',
name: 'AQI',
colorMap: {
'00e400': [0, 50],
ffff00: [50, 100],
ff7e00: [100, 150],
ff0000: [150, 200],
'99004c': [200, 300],
'7e0023': [300, 500],
'6e6e6e': [500]
},
degreeMap: {
'00e400': '(优)',
ffff00: '(良)',
ff7e00: '(轻度)',
ff0000: '(中度)',
'99004c': '(重度)',
'7e0023': '(严重)'
}
},
pm25: {
unit: 'μg/m³',
name: 'PM2.5',
colorMap: {
'00e400': [0, 35],
ffff00: [35, 75],
ff7e00: [75, 115],
ff0000: [115, 150],
'99004c': [150, 250],
'7e0023': [250, 500],
'7e0022': [500]
},
degreeMap: {
'00e400': '(优)',
ffff00: '(良)',
ff7e00: '(轻度)',
ff0000: '(中度)',
'99004c': '(重度)',
'7e0023': '(严重)'
}
},
pm10: {
unit: 'μg/m³',
name: 'PM10',
colorMap: {
'00e400': [0, 50],
ffff00: [50, 150],
ff7e00: [150, 250],
ff0000: [250, 350],
'99004c': [350, 420],
'7e0023': [420, 600],
'7e0022': [600]
},
degreeMap: {
'00e400': '(优)',
ffff00: '(良)',
ff7e00: '(轻度)',
ff0000: '(中度)',
'99004c': '(重度)',
'7e0023': '(严重)'
}
},
so2: {
unit: 'μg/m³',
name: 'SO2',
colorMap: {
'00e400': [0, 50],
ffff00: [50, 150],
ff7e00: [150, 475],
ff0000: [475, 800],
'99004c': [800, 1600],
'7e0023': [1600, 2620],
'6e6e6e': [2620]
},
degreeMap: {
'00e400': '(优)',
ffff00: '(良)',
ff7e00: '(轻度)',
ff0000: '(中度)',
'99004c': '(重度)',
'7e0023': '(严重)'
}
},
no2: {
unit: 'μg/m³',
name: 'NO2',
colorMap: {
'00e400': [0, 40],
ffff00: [40, 80],
ff7e00: [80, 180],
ff0000: [180, 280],
'99004c': [280, 565],
'7e0023': [565, 940],
'6e6e6e': [940]
},
degreeMap: {
'00e400': '(优)',
ffff00: '(良)',
ff7e00: '(轻度)',
ff0000: '(中度)',
'99004c': '(重度)',
'7e0023': '(严重)'
}
},
co: {
unit: 'mg/m³',
name: 'CO',
colorMap: {
'00e400': [0, 2],
ffff00: [2, 4],
ff7e00: [4, 14],
ff0000: [14, 24],
'99004c': [24, 36],
'7e0023': [36, 60],
'6e6e6e': [60]
},
degreeMap: {
'00e400': '(优)',
ffff00: '(良)',
ff7e00: '(轻度)',
ff0000: '(中度)',
'99004c': '(重度)',
'7e0023': '(严重)'
}
},
o3: {
unit: 'μg/m³',
name: 'O3',
colorMap: {
'00e400': [0, 100],
ffff00: [100, 160],
ff7e00: [160, 215],
ff0000: [215, 265],
'99004c': [265, 800],
'7e0023': [800, 1200],
'6e6e6e': [1200]
},
degreeMap: {
'00e400': '(优)',
ffff00: '(良)',
ff7e00: '(轻度)',
ff0000: '(中度)',
'99004c': '(重度)',
'7e0023': '(严重)'
}
},
ci: {
unit: 'μg/m³',
name: 'CI',
colorMap: {
'00e400': [0, 1.3],
ffff00: [1.3, 4],
ff7e00: [4, 8],
ff0000: [8, 12],
'99004c': [12, 20],
'7e0023': [20]
},
degreeMap: {
'00e400': '(优)',
ffff00: '(良)',
ff7e00: '(轻度)',
ff0000: '(中度)',
'99004c': '(重度)',
'7e0023': '(严重)'
}
},
tsp: {
unit: 'μg/m³',
name: 'TSP',
colorMap: {
'00e400': [0, 120],
ffff00: [120, 300],
ff7e00: [300, 400],
ff0000: [400, 500],
'99004c': [500, 625],
'7e0023': [625, 3000],
'6e6e6e': [3000]
},
degreeMap: {
'00e400': '',
ffff00: '',
ff7e00: '',
ff0000: '',
'99004c': '',
'7e0023': ''
}
},
voc: {
unit: 'mg/m³',
name: 'VOC',
colorMap: {
'00e400': [0, 0.19],
ffff00: [0.19, 0.59],
ff7e00: [0.59, 1.79],
ff0000: [1.79, 2.29],
'99004c': [2.29, 3],
'7e0023': [3]
},
degreeMap: {
'00e400': '',
ffff00: '',
ff7e00: '',
ff0000: '',
'99004c': '',
'7e0023': ''
}
},
temperature: {
unit: '℃',
name: '温度',
colorMap: {
'8274cc': [-40, -30],
acb3e2: [-30, -20],
'95d0d8': [-20, -10],
'61afff': [-10, 0],
'87b922': [0, 10],
e5aa06: [10, 20],
e45914: [20, 30],
'8a2b0a': [30]
},
degreeMap: {
'8274cc': '',
acb3e2: '',
'95d0d8': '',
'61afff': '',
'87b922': '',
e5aa06: '',
e45914: '',
'8a2b0a': ''
}
},
humidity: {
unit: '%',
name: '湿度',
colorMap: {
c4be20: [0, 20],
c4be21: [20, 40],
'4fcb46': [40, 60],
'45afde': [60, 80],
'6661f1': [80]
},
degreeMap: {
c4be20: '',
c4be21: '',
'4fcb46': '',
'45afde': '',
'6661f1': ''
}
},
pressure: {
unit: 'Pa',
name: '气压',
colorMap: {
'6493FF': [1, 100000000000000000]
},
degreeMap: {
'6493FF': ''
}
}
},
colorForValue: {
'00e400': '优',
ffff00: '良',
ff7e00: '轻度',
ff0000: '中度',
'99004c': '重度',
'7e0023': '严重',
'6e6e6e': '无'
},
colorForFont: {
'#00e400': '#000',
'#ffff00': '#000',
'#ff7e00': '#fff',
'#ff0000': '#fff',
'#99004c': '#fff',
'#7e0023': '#fff',
'#6e6e6e': '#fff'
},
wind: {
'东北⻛': [22.5, 67.5],
'东⻛': [67.5, 112.5],
'东南⻛': [112.5, 157.5],
'南⻛': [157.5, 202.5],
'⻄南⻛': [202.5, 247.5],
'⻄⻛': [247.5, 292.5],
'⻄北⻛': [292.5, 337.5]
},
windLevel: {
'0级': [0, 0.2],
'1级': [0.2, 1.5],
'2级': [1.5, 3.3],
'3级': [3.3, 5.4],
'4级': [5.4, 7.9],
'5级': [7.9, 10.7],
'6级': [10.7, 13.8],
'7级': [13.8, 17.1],
'8级': [17.1, 20.7],
'9级': [20.7, 24.4],
'10级': [24.4, 28.4],
'11级': [28.4, 32.6]
},
windLevelZh: {
'零级(⽆⻛)': [0, 0.2],
'⼀级(软⻛)': [0.2, 1.5],
'⼆级(轻⻛)': [1.5, 3.3],
'三级(微⻛)': [3.3, 5.4],
'四级(和⻛)': [5.4, 7.9],
'五级(劲⻛)': [7.9, 10.7],
'六级(强⻛)': [10.7, 13.8],
'七级(疾⻛)': [13.8, 17.1],
'⼋级(⼤⻛)': [17.1, 20.7],
'九级(烈⻛)': [20.7, 24.4],
'⼗级(狂⻛)': [24.4, 28.4],
'⼗⼀级(暴⻛)': [28.4, 32.6]
}
};
/**
* 将污染因子值转化为对应颜色
*/
export var formatValueToColor = function formatValueToColor(v, t) {
if (!t) return '#8a97a0';
var vs = (factorDict.factor[t] || factorDict.factor[t.toLowerCase()] || {}).colorMap;
if (!vs) return '#8a97a0';
v = +v;
for (var i in vs) {
if (vs[i].length === 1 && vs[i][0] < v) return '#' + i;else if (vs[i][0] < v && v <= vs[i][1]) {
return '#' + i;
}
}
return '#8a97a0';
};
/**
* 将污染因子值背景转化为对应字体的颜色
*/
export var formatValueToFontColor = function formatValueToFontColor(v, t) {
var colorForFont = factorDict.colorForFont.colorForFont;
return colorForFont[formatValueToColor(v, t.toLowerCase())];
};
/**
* 计算风速
*/
export var getWindSpeed = function getWindSpeed(val) {
var wind = factorDict.wind;
var values = Object.keys(wind).filter(function (item) {
var arr = wind['' + item];
return val >= arr[0] && val < arr[1];
});
return values[0];
};
/**
* 计算风向
*/
export var getWindLevel = function getWindLevel(val) {
var isZh = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
var windLevel = isZh ? factorDict.windLevelZh : factorDict.windLevel;
var values = Object.keys(windLevel).filter(function (item) {
var arr = windLevel[item];
return val >= arr[0] && val < arr[1];
});
return values[0];
};