single_selected_info.dart 1.1 KB

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