123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134 |
- import 'package:vid/us/vid_us_unit.dart';
- class UnitDescriptionMap {
- static UnitDescriptionMap? _instance;
- static UnitDescriptionMap get _singleton {
- if (_instance == null) {
- _instance = UnitDescriptionMap._();
- _instance!._initMap();
- }
- return _instance!;
- }
- final Map<VidUsUnit, String> _map = {};
- UnitDescriptionMap._();
- /// 获取描述
- ///
- /// [unit] flutter_vid 内置枚举
- static String getDesc(VidUsUnit unit) {
- return _singleton._getDesc(unit);
- }
- /// 获取描述
- ///
- /// [value] vinno单位通用枚举值
- static String getDescByInt(int value) {
- final unit = VidUsUnitMap.getUnit(value);
- return _singleton._getDesc(unit);
- }
- String _getDesc(VidUsUnit unit) {
- if (_map.containsKey(unit)) {
- return _map[unit]!;
- }
- return unit.name;
- }
- void _add(VidUsUnit unit, [String? description]) {
- final desc = description ?? unit.name;
- _map[unit] = desc;
- }
- void _initMap() {
- _add(VidUsUnit.None, '');
- _add(VidUsUnit.percent, '%');
- _add(VidUsUnit.fraction, ' ');
- //Length
- _add(VidUsUnit.cm);
- _add(VidUsUnit.mm);
- _add(VidUsUnit.um, "μm");
- _add(VidUsUnit.inch, 'in');
- _add(VidUsUnit.ft);
- //Time
- _add(VidUsUnit.s);
- _add(VidUsUnit.minute, 'min');
- _add(VidUsUnit.hour, 'h');
- _add(VidUsUnit.day, 'Day');
- _add(VidUsUnit.week, 'Week');
- _add(VidUsUnit.week_day, 'WeekDay');
- _add(VidUsUnit.Tick, '');
- _add(VidUsUnit.msec, 'ms');
- //Angle
- _add(VidUsUnit.degree, '° ');
- _add(VidUsUnit.radian, 'rad');
- //Weight
- _add(VidUsUnit.g, 'g');
- _add(VidUsUnit.mg, 'mg');
- _add(VidUsUnit.ng, 'ng');
- _add(VidUsUnit.kg, 'kg');
- _add(VidUsUnit.oz);
- _add(VidUsUnit.lb);
- //Area
- _add(VidUsUnit.cm2, 'cm²');
- _add(VidUsUnit.mm2, 'mm²');
- _add(VidUsUnit.m2, 'm²');
- //Volumn
- _add(VidUsUnit.cm3, 'cm³');
- _add(VidUsUnit.mm3, 'mm³');
- _add(VidUsUnit.ml, 'ml');
- _add(VidUsUnit.L, 'L');
- _add(VidUsUnit.mil, 'μl');
- //Velocity
- _add(VidUsUnit.cms, 'cm/s');
- _add(VidUsUnit.mms, 'mm/s');
- _add(VidUsUnit.ms, 'm/s');
- //Acceleration
- _add(VidUsUnit.cms2, 'cm/s²');
- _add(VidUsUnit.mms2, 'mm/s²');
- //Flow
- _add(VidUsUnit.cm3s, 'cm³/s');
- _add(VidUsUnit.mls, 'ml/s');
- _add(VidUsUnit.mlmin, 'ml/min');
- _add(VidUsUnit.Lmin, 'L/min');
- //Density
- _add(VidUsUnit.gcm3, 'g/cm³');
- _add(VidUsUnit.gml, 'g/ml');
- _add(VidUsUnit.ngml, 'ng/ml');
- //Pressure
- _add(VidUsUnit.mmHg);
- //Voltage
- _add(VidUsUnit.mV);
- //Frequency
- _add(VidUsUnit.Hz);
- _add(VidUsUnit.KHz, 'kHz');
- _add(VidUsUnit.HR, 'bpm');
- //SI
- _add(VidUsUnit.cm3m2, 'cm³/m²');
- _add(VidUsUnit.mlm2, 'ml/m²');
- //CI
- _add(VidUsUnit.cm3sm2, 'cm³/s/m²');
- _add(VidUsUnit.mlsm2, 'ml/s/m²');
- _add(VidUsUnit.cm3minm2, 'cm³/min/m²');
- _add(VidUsUnit.mlminm2, 'ml/min/m²');
- _add(VidUsUnit.Lminm2, 'L/min.m²');
- _add(VidUsUnit.mlmincm2, 'ml/min.cm²');
- _add(VidUsUnit.circs, 'circ/s');
- //CO
- _add(VidUsUnit.mlbeat, 'ml/beat');
- //PWV
- _add(VidUsUnit.mm2pa, 'mm²/Pa');
- _add(VidUsUnit.d1mpa, '1/MPa');
- _add(VidUsUnit.kpa, 'kPa');
- _add(VidUsUnit.mmHgs, 'mmHg/s');
- _add(VidUsUnit.gm2, 'g/m²');
- //AVA Index
- _add(VidUsUnit.cm2m2, 'cm²/m²');
- //TAM/MAM
- //Temperature
- //Resistance
- }
- }
|