123456789101112131415161718192021222324252627282930313233343536373839404142434445464748 |
- import 'package:lszlgl/model/rsp/dict_rsp.dart';
- enum DictType {
- /// 监测类别
- jclb('jclb');
- const DictType(this.type);
- final String type;
- }
- class DictService {
- DictService._();
- static DictService? _instance;
- static DictService get() => _instance ??= DictService._();
- List<DictRsp>? _dictList;
- List<DictRsp> get dictList => _dictList ??= [];
- final Map<String, Map<String, DictRsp>> _dictMap = {};
- 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;
- }
- }
- DictRsp? getLabel(DictType type, {num? value, String? valueStr}) {
- String? v;
- if (valueStr == null) {
- if (value == null) return null;
- v = value.toString();
- } else {
- v = valueStr;
- }
- return _dictMap[type.type]?[v];
- }
- }
|