getSelectionParams function
Implementation
Map<String, String> getSelectionParams(
List<TSelectionEntity>? selectedResults) {
Map<String, String> params = {};
if (selectedResults == null) return params;
for (TSelectionEntity menuItemEntity in selectedResults) {
if (menuItemEntity.filterType == TSelectionFilterType.more) {
params.addAll(getSelectionParams(menuItemEntity.children));
} else {
/// 1、首先找出 自定义范围的筛选项参数。
TSelectionEntity? selectedCustomInputItem =
SelectionUtil.getFilledCustomInputItem(menuItemEntity.children);
if (selectedCustomInputItem != null &&
!SelectionUtil.isEmpty(selectedCustomInputItem.customMap)) {
String? key = selectedCustomInputItem.parent?.key;
if (!SelectionUtil.isEmpty(key)) {
params[key!] = '${selectedCustomInputItem.customMap!["min"] ?? ''}:${selectedCustomInputItem.customMap!["max"] ?? ''}';
}
}
/// 2、一次找出层级为 1、2、3 的选中项的参数,递归不好阅读,直接写成 for 嵌套遍历。
int levelCount = SelectionUtil.getTotalLevel(menuItemEntity);
if (levelCount == 1) {
params.addAll(getCurrentSelectionEntityParams(menuItemEntity));
} else if (levelCount == 2) {
params.addAll(getCurrentSelectionEntityParams(menuItemEntity));
for (var firstLevelItem in menuItemEntity.children) {
params.addAll(getCurrentSelectionEntityParams(firstLevelItem));
}
} else if (levelCount == 3) {
params.addAll(getCurrentSelectionEntityParams(menuItemEntity));
for (var firstLevelItem in menuItemEntity.children) {
params.addAll(getCurrentSelectionEntityParams(firstLevelItem));
for (var secondLevelItem in firstLevelItem.children) {
params.addAll(getCurrentSelectionEntityParams(secondLevelItem));
}
}
}
}
}
return params;
}