12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485 |
- import 'package:lszlgl/model/rsp/dict_rsp.dart';
- enum DictType {
- // 天气情况
- tqqk('tqqk'),
- // 监测类别
- jclb('jclb'),
- // 样品等级
- ypdj('ypdj'),
- // 小麦品种优质类型
- xmpzyzlx('xmpzyzlx'),
- // 玉米品种优质类型
- ympzyzlx('ympzyzlx'),
- // 稻谷品种优质类型
- dgpzyzlx('dgpzyzlx'),
- // 大豆品种优质类型
- ddyzpzlx('ddyzpzlx'),
- // 工厂排污类型
- gcpwlx('gcpwlx'),
- // 污染物类型
- wrwlx('wrwlx'),
- // 病虫害类型
- bchlx('bchlx'),
- // 真菌毒素污染类型
- zjdswrlx('zjdswrlx'),
- // 重金属污染类型
- zjswrlx('zjswrlx'),
- // 采样品种
- cypz('cypz'),
- // 检验类型
- jylx('jylx');
- const DictType(this.type);
- final String type;
- }
- class DictService {
- DictService._();
- static List<DictRsp>? _dictList;
- static List<DictRsp> get dictList => _dictList ??= [];
- static final Map<String, Map<String, DictRsp>> _dictMap = {};
- static void saveDictList(List<DictRsp>? list) {
- if (list == null) return;
- _dictList = list;
- // 按类型存储字典
- _dictMap.clear();
- for (DictRsp dict in list) {
- if (dict.dictType == null || dict.value == null) continue;
- Map<String, DictRsp> map = _dictMap[dict.dictType!] ??= {};
- map[dict.value!] = dict;
- }
- }
- static DictRsp? getDict(DictType? type, {num? value, String? valueStr}) {
- if (type == null) return null;
- String? v;
- if (valueStr == null) {
- if (value == null) return null;
- v = value.toString();
- } else {
- v = valueStr;
- }
- return _dictMap[type.type]?[v];
- }
- static String? getLabel(DictType type, {num? value, String? valueStr}) {
- return getDict(type, value: value, valueStr: valueStr)?.label;
- }
- static List<DictRsp>? getDictList(DictType? type) {
- if (type == null) return null;
- return _dictMap[type.type]?.values.toList();
- }
- static num? getDictFirstNum(DictType type) {
- var list = getDictList(type);
- return list?.first.value != null ? num.parse(list!.first.value!) : null;
- }
- }
|