multi_selected_info.dart 1.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940
  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/report_info.dart';
  5. import 'package:fis_lib_report/report_info/text_element_info.dart';
  6. class MulitiSelectedInfo extends TextElementInfo {
  7. ///是否只读
  8. bool? isReadOnly = false;
  9. ///所有待选项
  10. List<String>? items = [];
  11. ///选中项集合
  12. List<String> get selectedItems => _selectedItems;
  13. set selectedItems(List<String> v) {
  14. _selectedItems = v;
  15. onSelectedChange.emit(this, v);
  16. }
  17. ///选中项改变通知UI变化
  18. FEventHandler<List<String>> onSelectedChange = FEventHandler<List<String>>();
  19. List<String> _selectedItems = [];
  20. MulitiSelectedInfo.fromElement(MultiSelected element)
  21. : super.fromElement(element) {
  22. items = element.items;
  23. isReadOnly = element.isReadOnly;
  24. }
  25. @override
  26. Map<String, dynamic> toJson() {
  27. final map = <String, dynamic>{};
  28. map['Key'] = tag!.id;
  29. map['Value'] = selectedItems;
  30. ReportInfo.instance.jsonItems.add(map);
  31. return map;
  32. }
  33. }