|
@@ -31,6 +31,8 @@ class CrowdLabelsController extends FControllerBase {
|
|
|
|
|
|
void onItemCheckChanged(String code) {
|
|
|
bool result = false;
|
|
|
+ result = _updateAllChecked(code);
|
|
|
+ if (result) return;
|
|
|
result = _updateNormalChecked(code);
|
|
|
if (result) return;
|
|
|
result = _updateDiseaseChecked(code);
|
|
@@ -38,6 +40,49 @@ class CrowdLabelsController extends FControllerBase {
|
|
|
result = _updateSpecialCareChecked(code);
|
|
|
}
|
|
|
|
|
|
+ bool _updateAllChecked(String code) {
|
|
|
+ if (state.isAllSelect) {
|
|
|
+ if (code != "0") {
|
|
|
+ return false;
|
|
|
+ } else {
|
|
|
+ state.isAllSelect = false;
|
|
|
+ state.selectedNormalCodes = [];
|
|
|
+ state.selectedDiseaseCodes = [];
|
|
|
+ state.selectedSpecialCareCodes = [];
|
|
|
+ }
|
|
|
+ } 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();
|
|
|
+ }
|
|
|
+ }
|
|
|
+ return true;
|
|
|
+ }
|
|
|
+
|
|
|
bool _updateNormalChecked(code) {
|
|
|
final item = state.normalOptions.firstWhereOrNull((e) => e.code == code);
|
|
|
if (item == null) return false;
|
|
@@ -49,6 +94,7 @@ class CrowdLabelsController extends FControllerBase {
|
|
|
}
|
|
|
} else {
|
|
|
arr.remove(code);
|
|
|
+ state.isAllSelect = false;
|
|
|
}
|
|
|
state.selectedNormalCodes = arr;
|
|
|
return true;
|
|
@@ -65,6 +111,7 @@ class CrowdLabelsController extends FControllerBase {
|
|
|
}
|
|
|
} else {
|
|
|
arr.remove(code);
|
|
|
+ state.isAllSelect = false;
|
|
|
}
|
|
|
state.selectedDiseaseCodes = arr;
|
|
|
return true;
|
|
@@ -82,6 +129,7 @@ class CrowdLabelsController extends FControllerBase {
|
|
|
}
|
|
|
} else {
|
|
|
arr.remove(code);
|
|
|
+ state.isAllSelect = false;
|
|
|
}
|
|
|
state.selectedSpecialCareCodes = arr;
|
|
|
return true;
|
|
@@ -95,6 +143,31 @@ class CrowdLabelsController extends FControllerBase {
|
|
|
..removeLast();
|
|
|
// state.diseaseOptions = await _manager.getDiseaseCrowdLabels();
|
|
|
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();
|
|
|
+ }
|
|
|
}
|
|
|
}
|
|
|
|
|
@@ -107,6 +180,8 @@ class CrowdLablesState {
|
|
|
final RxList<String> _selectedDiseaseCodes = RxList<String>();
|
|
|
final RxList<String> _selectedSpecialCareCodes = RxList<String>();
|
|
|
|
|
|
+ bool isAllSelect = true;
|
|
|
+
|
|
|
/// 一般人群分类选项集合
|
|
|
List<LabelDTO> get normalOptions =>
|
|
|
UnmodifiableListView(_normalOptions.toList());
|