common_point_detail_controller.dart 3.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889
  1. import 'package:flutter/cupertino.dart';
  2. import 'package:get/get.dart';
  3. import 'package:get/get_core/src/get_main.dart';
  4. import 'package:injectable/injectable.dart';
  5. import 'package:location/base/base_controller.dart';
  6. import 'package:location/data/repositories/range_point_repository.dart';
  7. import 'package:location/dialog/loading_dialog.dart';
  8. import 'package:location/dialog/select_message_reminder_date_dialog.dart';
  9. import 'package:location/resource/string.gen.dart';
  10. import 'package:location/utils/toast_util.dart';
  11. import '../../../dialog/select_guard_time_dialog.dart';
  12. import '../select_address/common_point_select_address_page.dart';
  13. @injectable
  14. class CommonPointDetailController extends BaseController {
  15. final TextEditingController titleController = TextEditingController();
  16. final RxBool _isShowDuplicateName = RxBool(false);
  17. final Rxn<Map<String, dynamic>> _selectedAddressMap =
  18. Rxn<Map<String, dynamic>>();
  19. Map<String, dynamic>? get selectedAddressMap => _selectedAddressMap.value;
  20. bool get isShowDuplicateName => _isShowDuplicateName.value;
  21. final RxnString _guardTimePeriod = RxnString();
  22. String? get guardTimePeriod => _guardTimePeriod.value;
  23. DateTime? guardStartTime;
  24. DateTime? guardEndTime;
  25. final RxList<int> selectedWeekDays = RxList<int>();
  26. final RangePointRepository rangePointRepository;
  27. CommonPointDetailController(this.rangePointRepository);
  28. void onBack() {
  29. Get.back();
  30. }
  31. void onGuardTimePeriodClick() {
  32. hideKeyboard(Get.context!);
  33. SelectGuardTimeDialog.show(
  34. startDate: guardStartTime,
  35. endDate: guardEndTime,
  36. sureCallback: (DateTime startDate, DateTime endDate) {
  37. guardStartTime = startDate;
  38. guardEndTime = endDate;
  39. _guardTimePeriod.value =
  40. '${startDate.hour.toString().padLeft(2, '0')}:${startDate.minute.toString().padLeft(2, '0')}-${endDate.hour.toString().padLeft(2, '0')}:${endDate.minute.toString().padLeft(2, '0')}';
  41. });
  42. }
  43. void onSelectMessageReminderClick() {
  44. hideKeyboard(Get.context!);
  45. SelectMessageReminderDateDialog.show(selectWeekDays: selectedWeekDays);
  46. }
  47. void onSelectAddressClick() async {
  48. hideKeyboard(Get.context!);
  49. final selectAddressMap = await CommonPointSelectAddressPage.start();
  50. if (selectAddressMap == null || selectAddressMap.isEmpty) {
  51. return;
  52. }
  53. _selectedAddressMap.value = selectAddressMap;
  54. }
  55. void onPointSaveClick() {
  56. final title = titleController.text.trim();
  57. if (title.isEmpty) {
  58. ToastUtil.show(StringName.commonPointAddNameHint);
  59. return;
  60. }
  61. final String address = selectedAddressMap?['address'] ?? '';
  62. if (address.isEmpty) {
  63. ToastUtil.show(StringName.commonPointAddPleaseSelectAAddressHint);
  64. return;
  65. }
  66. if (guardStartTime == null || guardEndTime == null) {
  67. ToastUtil.show(StringName.commonPointAddGuardTimePeriodHint);
  68. return;
  69. }
  70. _isShowDuplicateName.value = false;
  71. CustomLoadingDialog.show();
  72. // rangePointRepository.pointInfoCreate(title:);
  73. }
  74. }