|
@@ -40,44 +40,35 @@ class CrowdLabelsController extends FControllerBase {
|
|
|
result = _updateSpecialCareChecked(code);
|
|
|
}
|
|
|
|
|
|
+ void onItemCheckFilterChanged(String code) {
|
|
|
+ bool result = false;
|
|
|
+ result = _updateAllChecked(code);
|
|
|
+ if (result) return;
|
|
|
+ final item = state.allLabels.firstWhereOrNull((e) => e.code == code);
|
|
|
+ if (item == null) return;
|
|
|
+
|
|
|
+ final arr = state.selectedFilterCodes.toList();
|
|
|
+ if (!arr.contains(code)) {
|
|
|
+ if (arr.contains(code) == false) {
|
|
|
+ arr.add(code);
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ arr.remove(code);
|
|
|
+ }
|
|
|
+ state.selectedFilterCodes = arr;
|
|
|
+ }
|
|
|
+
|
|
|
bool _updateAllChecked(String code) {
|
|
|
if (state.isAllSelect) {
|
|
|
- if (code != "0") {
|
|
|
- return false;
|
|
|
- } else {
|
|
|
- state.isAllSelect = false;
|
|
|
- state.selectedNormalCodes = [];
|
|
|
- state.selectedDiseaseCodes = [];
|
|
|
- state.selectedSpecialCareCodes = [];
|
|
|
- }
|
|
|
+ state.isAllSelect = false;
|
|
|
+ state.selectedFilterCodes = [];
|
|
|
} else {
|
|
|
if (code != "0") {
|
|
|
return false;
|
|
|
} else {
|
|
|
state.isAllSelect = true;
|
|
|
- state.selectedNormalCodes = state.normalOptions
|
|
|
- .where((element) => [
|
|
|
- "RQFL_ET",
|
|
|
- "RQFL_YF",
|
|
|
- "RQFL_LNR",
|
|
|
- ].contains(element.code))
|
|
|
- .map((LabelDTO e) => e.code ?? '')
|
|
|
- .toList();
|
|
|
-
|
|
|
- state.selectedDiseaseCodes = state.diseaseOptions
|
|
|
- .where((element) => [
|
|
|
- "CJJB_GXY",
|
|
|
- "CJJB_TNB",
|
|
|
- "CJJB_YZJSBZA",
|
|
|
- "CJJB_FJH",
|
|
|
- ].contains(element.code))
|
|
|
- .map((LabelDTO e) => e.code ?? '')
|
|
|
- .toList();
|
|
|
-
|
|
|
- state.selectedSpecialCareCodes = state.specialCareOptions
|
|
|
- .where((element) => [].contains(element.code))
|
|
|
- .map((LabelDTO e) => e.code ?? '')
|
|
|
- .toList();
|
|
|
+ state.selectedFilterCodes =
|
|
|
+ state.allLabels.map((LabelDTO e) => e.code ?? '').toList();
|
|
|
}
|
|
|
}
|
|
|
return true;
|
|
@@ -94,7 +85,6 @@ class CrowdLabelsController extends FControllerBase {
|
|
|
}
|
|
|
} else {
|
|
|
arr.remove(code);
|
|
|
- state.isAllSelect = false;
|
|
|
}
|
|
|
state.selectedNormalCodes = arr;
|
|
|
return true;
|
|
@@ -111,7 +101,6 @@ class CrowdLabelsController extends FControllerBase {
|
|
|
}
|
|
|
} else {
|
|
|
arr.remove(code);
|
|
|
- state.isAllSelect = false;
|
|
|
}
|
|
|
state.selectedDiseaseCodes = arr;
|
|
|
return true;
|
|
@@ -129,7 +118,6 @@ class CrowdLabelsController extends FControllerBase {
|
|
|
}
|
|
|
} else {
|
|
|
arr.remove(code);
|
|
|
- state.isAllSelect = false;
|
|
|
}
|
|
|
state.selectedSpecialCareCodes = arr;
|
|
|
return true;
|
|
@@ -142,32 +130,13 @@ class CrowdLabelsController extends FControllerBase {
|
|
|
state.diseaseOptions = (await _manager.getDiseaseCrowdLabels())
|
|
|
..removeLast();
|
|
|
// state.diseaseOptions = await _manager.getDiseaseCrowdLabels();
|
|
|
+ var labels = await Get.find<ILabelManager>().getAllLabels();
|
|
|
state.specialCareOptions = await _manager.getSpecialCareCrowdLabels();
|
|
|
- if (state.isAllSelect) {
|
|
|
- state.selectedNormalCodes = state.normalOptions
|
|
|
- .where((element) => [
|
|
|
- "RQFL_ET",
|
|
|
- "RQFL_YF",
|
|
|
- "RQFL_LNR",
|
|
|
- ].contains(element.code))
|
|
|
- .map((LabelDTO e) => e.code ?? '')
|
|
|
- .toList();
|
|
|
-
|
|
|
- state.selectedDiseaseCodes = state.diseaseOptions
|
|
|
- .where((element) => [
|
|
|
- "CJJB_GXY",
|
|
|
- "CJJB_TNB",
|
|
|
- "CJJB_YZJSBZA",
|
|
|
- "CJJB_FJH",
|
|
|
- ].contains(element.code))
|
|
|
- .map((LabelDTO e) => e.code ?? '')
|
|
|
- .toList();
|
|
|
-
|
|
|
- state.selectedSpecialCareCodes = state.specialCareOptions
|
|
|
- .where((element) => [].contains(element.code))
|
|
|
- .map((LabelDTO e) => e.code ?? '')
|
|
|
- .toList();
|
|
|
- }
|
|
|
+ state.allLabels = [
|
|
|
+ LabelDTO(code: 'RQFL_ET', labelName: "儿童"),
|
|
|
+ LabelDTO(code: "RQFL_LNR", labelName: "老年人"),
|
|
|
+ ...labels
|
|
|
+ ];
|
|
|
}
|
|
|
}
|
|
|
|
|
@@ -179,9 +148,20 @@ class CrowdLablesState {
|
|
|
final RxList<String> _selectedNormalCodes = RxList<String>();
|
|
|
final RxList<String> _selectedDiseaseCodes = RxList<String>();
|
|
|
final RxList<String> _selectedSpecialCareCodes = RxList<String>();
|
|
|
+ final RxList<LabelDTO> _allLabels = RxList<LabelDTO>();
|
|
|
+ final RxList<String> _selectedFilterCodes = RxList<String>();
|
|
|
+
|
|
|
+ /// 一般人群分类 已选择Code集合
|
|
|
+ List<String> get selectedFilterCodes =>
|
|
|
+ UnmodifiableListView(_selectedFilterCodes.toList());
|
|
|
+ set selectedFilterCodes(List<String> val) => _selectedFilterCodes.value = val;
|
|
|
|
|
|
bool isAllSelect = true;
|
|
|
|
|
|
+ /// 一般人群分类选项集合
|
|
|
+ List<LabelDTO> get allLabels => UnmodifiableListView(_allLabels.toList());
|
|
|
+ set allLabels(List<LabelDTO> val) => _allLabels.value = val;
|
|
|
+
|
|
|
/// 一般人群分类选项集合
|
|
|
List<LabelDTO> get normalOptions =>
|
|
|
UnmodifiableListView(_normalOptions.toList());
|