select_component.dart 1.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041
  1. import 'package:fis_ui/index.dart';
  2. import 'package:flutter/material.dart';
  3. import 'package:fis_theme/theme.dart';
  4. /// 选择框的封装
  5. class FFromSelect extends FStatelessWidget {
  6. /// [sourceList] 数据源
  7. final List<FSelectModel> sourceList;
  8. /// [hintText] 选择提示文本
  9. final String hintText;
  10. /// [value] 已选值
  11. final String? value;
  12. /// [onSelectChanged] 选中变更事件
  13. final Function(String?, int?)? onSelectChanged;
  14. FFromSelect({
  15. Key? key,
  16. required this.sourceList,
  17. required this.hintText,
  18. this.value,
  19. this.onSelectChanged,
  20. }) : super(key: key);
  21. @override
  22. FWidget build(BuildContext context) {
  23. return FSelect<FSelectModel, String>(
  24. source: sourceList,
  25. hintText: hintText,
  26. value: value,
  27. fontFamily: FTheme.ins.localeSetting.fontFamily,
  28. textColor: Colors.black,
  29. clearable: true,
  30. height: 36,
  31. optionLabelExtractor: (data) => data.name,
  32. optionValueExtractor: (data) => data.code,
  33. onSelectChanged: (value, index) => onSelectChanged!(value, index),
  34. );
  35. }
  36. }