multi_selected_info.dart 1.1 KB

123456789101112131415161718192021222324252627282930313233343536373839
  1. import 'package:fis_lib_report/converts/event_type.dart';
  2. import 'package:fis_lib_report/report/interfaces/element.dart';
  3. import 'package:fis_lib_report/report/multiSelected.dart';
  4. import 'package:fis_lib_report/report_info/text_element_info.dart';
  5. class MulitiSelectedInfo extends TextElementInfo {
  6. ///是否只读
  7. bool? isReadOnly = false;
  8. ///所有待选项
  9. List<String>? items = [];
  10. ///选中项集合
  11. List<String> get selectedItems => _selectedItems;
  12. set selectedItems(List<String> v) {
  13. _selectedItems = v;
  14. onSelectedChange.emit(this, v);
  15. }
  16. ///选中项改变通知UI变化
  17. FEventHandler<List<String>> onSelectedChange = FEventHandler<List<String>>();
  18. List<String> _selectedItems = [];
  19. MulitiSelectedInfo.fromElement(MultiSelected element)
  20. : super.fromElement(element) {
  21. items = element.items;
  22. isReadOnly = element.isReadOnly;
  23. }
  24. @override
  25. Map<String, dynamic> toJson() {
  26. final map = <String, dynamic>{};
  27. map.addAll(super.toJson());
  28. map['Items'] = items;
  29. map['SelectedItems'] = selectedItems;
  30. return map;
  31. }
  32. }