项目文件夹

文件
wehub-resource-sync 2114b14ee0
Sync main into demo / sync (push) Has been cancelled
chore: import upstream snapshot with attribution
2026-07-13 12:35:26 +08:00

108 行
2.6 KiB
TypeScript

import { strings } from '../res/strings';
export type AqiLevel = 'excellent' | 'good' | 'light' | 'moderate' | 'heavy' | 'severe';
export function normalizeAqiLevel(category: string, level?: string): AqiLevel | null {
const raw = category.trim().toLowerCase();
if (raw.includes('\u4e25\u91cd') || raw.includes('severe')) return 'severe';
if (raw.includes('\u91cd\u5ea6') || raw.includes('heavy')) return 'heavy';
if (raw.includes('\u4e2d\u5ea6') || raw.includes('moderate')) return 'moderate';
if (raw.includes('\u8f7b\u5ea6') || raw.includes('light')) return 'light';
if (raw.includes('\u826f') || raw.includes('good')) return 'good';
if (raw.includes('\u4f18') || raw.includes('excellent')) return 'excellent';
switch (level) {
case '1':
return 'excellent';
case '2':
return 'good';
case '3':
return 'light';
case '4':
return 'moderate';
case '5':
return 'heavy';
case '6':
return 'severe';
default:
return null;
}
}
export function getAqiLevelColor(level: AqiLevel | null): string {
switch (level) {
case 'excellent':
return '#61b15a';
case 'good':
return '#e8a735';
case 'light':
return '#f0874a';
case 'moderate':
return '#ea5a5a';
case 'heavy':
return '#b44dcc';
case 'severe':
return '#7e1023';
default:
return '#999';
}
}
export function getAqiLevelSoftColor(level: AqiLevel | null): string {
switch (level) {
case 'excellent':
return '#b9e6c9';
case 'good':
return '#e8c77a';
case 'light':
return '#f0a86b';
case 'moderate':
return '#ea8a8a';
case 'heavy':
return '#c37ce6';
case 'severe':
return '#9e5474';
default:
return '#c6d0db';
}
}
export function getAqiLevelLabel(level: AqiLevel | null, s: typeof strings): string {
switch (level) {
case 'excellent':
return s.aqi_level_excellent;
case 'good':
return s.aqi_level_good;
case 'light':
return s.aqi_level_light;
case 'moderate':
return s.aqi_level_moderate;
case 'heavy':
return s.aqi_level_heavy;
case 'severe':
return s.aqi_level_severe;
default:
return '--';
}
}
export function getAqiLevelDescription(level: AqiLevel | null, s: typeof strings): string {
switch (level) {
case 'excellent':
return s.aqi_desc_excellent;
case 'good':
return s.aqi_desc_good;
case 'light':
return s.aqi_desc_light;
case 'moderate':
return s.aqi_desc_moderate;
case 'heavy':
return s.aqi_desc_heavy;
case 'severe':
return s.aqi_desc_severe;
default:
return '';
}
}