single_selected_info.dart 1023 B

1234567891011121314151617181920212223242526272829303132333435363738
  1. import 'package:fis_lib_report/converts/event_type.dart';
  2. import 'package:fis_lib_report/report/singleSelected.dart';
  3. import 'package:fis_lib_report/report_info/text_element_info.dart';
  4. class SingleSelectedInfo extends TextElementInfo {
  5. ///是否只读
  6. bool? isReadOnly;
  7. ///所有可选项
  8. List<String>? items = [];
  9. ///已选中的项
  10. String get selectedItem => _selectedItem;
  11. set selectedItem(String v) {
  12. if (items!.contains(v)) _selectedItem = v;
  13. onSelectedChange.emit(this, v);
  14. }
  15. ///选中项改变通知UI变化
  16. FEventHandler<String> onSelectedChange = FEventHandler<String>();
  17. String _selectedItem = '';
  18. ///UI渲染时获取待选项数据
  19. SingleSelectedInfo.fromElement(SingleSelected element)
  20. : super.fromElement(element) {
  21. isReadOnly = element.isReadOnly;
  22. items = element.items;
  23. }
  24. @override
  25. Map<String, dynamic> toJson() {
  26. final map = <String, dynamic>{};
  27. map.addAll(super.toJson());
  28. map['SelectedItem'] = selectedItem;
  29. return map;
  30. }
  31. }