event_manage.dart 2.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768
  1. import 'package:track_common/widget.dart';
  2. import 'event_manage_controller.dart';
  3. class EventManage extends GetView<EventManagerController> {
  4. const EventManage({super.key});
  5. @override
  6. Widget build(BuildContext context) {
  7. return GetBuilder(
  8. init: EventManagerController(),
  9. builder: (c) {
  10. return Level2View(
  11. level1: level1(),
  12. level2: level2(),
  13. level1Title: '赛事列表',
  14. level1Action: wDate(context),
  15. level2Title: '用户列表',
  16. level2SubTitle: Obx(() => Text(
  17. c.selected?.name != null ? '(${c.selected!.name})' : '',
  18. style: const TextStyle(color: Colors.grey, fontSize: 14.22),
  19. )));
  20. });
  21. }
  22. Widget wDate(BuildContext context) {
  23. return GestureDetector(
  24. onTap: () => _onTapDate(context),
  25. child: Obx(() => Container(
  26. height: 22.04,
  27. padding: const EdgeInsets.symmetric(horizontal: 8),
  28. decoration: BoxDecoration(
  29. border:
  30. Border.all(color: const Color(0xffe3e3e3), width: 0.71),
  31. borderRadius: BorderRadius.circular(2.13)),
  32. child: Text(controller.dateStr),
  33. )));
  34. }
  35. Future<void> _onTapDate(BuildContext context) async {
  36. final date = await showDatePicker(
  37. context: context,
  38. initialDate: controller.filterDate.value,
  39. firstDate: DateTime.now(),
  40. lastDate: DateTime.now().add(365.days));
  41. if (date != null) {
  42. controller.filterDate.value = date;
  43. controller.flushList();
  44. }
  45. }
  46. Widget level1() {
  47. return Obx(() => ListView(
  48. children: controller.eventList
  49. .map((e) => AppTitleList(
  50. title: e.name,
  51. tail: Text('${e.userCount}'),
  52. isSelected: controller.selectedId.value == e.id,
  53. onTap: () => controller.selectedId.value = e.id,
  54. ))
  55. .toList()));
  56. }
  57. Widget level2() {
  58. return SizedBox();
  59. }
  60. }