getResult method

(Map<String, List>, String) getResult()

获取选择的结果

Implementation

(Map<String, List<dynamic>>, String) getResult() {
  final items = value.items;
  final reslut = <String, List>{};
  final reslutNames = [];

  for (var group in items) {
    final key = group.key;
    var resGroup = {key: []};

    // 如果有拼接组件,则先从自定义组件中寻找是否选定结果
    if (attachment.isNotEmpty) {
      for (var element in attachment) {
        if (element.groupKey == key && element.extraData != null) {
          final res = element.getResult();
          resGroup = res.$1;
          if (res.$2.isNotEmpty) {
            reslutNames.add(res.$2);
          }
          break;
        }
      }
    }

    // 如果自定义组件没有选择,则检索筛选项是否选中
    if (resGroup[key]?.isEmpty == true) {
      final list = group.items;
      for (var item in list) {
        if (item.selected) {
          resGroup[key]!.add(item.result);
          reslutNames.add(item.name);
        }
      }
    }

    reslut.addAll(resGroup);
  }

  return (reslut, reslutNames.join('/'));
}