|
|
@@ -0,0 +1,89 @@
|
|
|
+import 'package:flutter/cupertino.dart';
|
|
|
+import 'package:get/get.dart';
|
|
|
+import 'package:get/get_core/src/get_main.dart';
|
|
|
+import 'package:injectable/injectable.dart';
|
|
|
+import 'package:location/base/base_controller.dart';
|
|
|
+import 'package:location/data/repositories/range_point_repository.dart';
|
|
|
+import 'package:location/dialog/loading_dialog.dart';
|
|
|
+import 'package:location/dialog/select_message_reminder_date_dialog.dart';
|
|
|
+import 'package:location/resource/string.gen.dart';
|
|
|
+import 'package:location/utils/toast_util.dart';
|
|
|
+import '../../../dialog/select_guard_time_dialog.dart';
|
|
|
+import '../select_address/common_point_select_address_page.dart';
|
|
|
+
|
|
|
+@injectable
|
|
|
+class CommonPointDetailController extends BaseController {
|
|
|
+ final TextEditingController titleController = TextEditingController();
|
|
|
+ final RxBool _isShowDuplicateName = RxBool(false);
|
|
|
+ final Rxn<Map<String, dynamic>> _selectedAddressMap =
|
|
|
+ Rxn<Map<String, dynamic>>();
|
|
|
+
|
|
|
+ Map<String, dynamic>? get selectedAddressMap => _selectedAddressMap.value;
|
|
|
+
|
|
|
+ bool get isShowDuplicateName => _isShowDuplicateName.value;
|
|
|
+
|
|
|
+ final RxnString _guardTimePeriod = RxnString();
|
|
|
+
|
|
|
+ String? get guardTimePeriod => _guardTimePeriod.value;
|
|
|
+
|
|
|
+ DateTime? guardStartTime;
|
|
|
+ DateTime? guardEndTime;
|
|
|
+
|
|
|
+ final RxList<int> selectedWeekDays = RxList<int>();
|
|
|
+
|
|
|
+ final RangePointRepository rangePointRepository;
|
|
|
+
|
|
|
+ CommonPointDetailController(this.rangePointRepository);
|
|
|
+
|
|
|
+ void onBack() {
|
|
|
+ Get.back();
|
|
|
+ }
|
|
|
+
|
|
|
+ void onGuardTimePeriodClick() {
|
|
|
+ hideKeyboard(Get.context!);
|
|
|
+ SelectGuardTimeDialog.show(
|
|
|
+ startDate: guardStartTime,
|
|
|
+ endDate: guardEndTime,
|
|
|
+ sureCallback: (DateTime startDate, DateTime endDate) {
|
|
|
+ guardStartTime = startDate;
|
|
|
+ guardEndTime = endDate;
|
|
|
+ _guardTimePeriod.value =
|
|
|
+ '${startDate.hour.toString().padLeft(2, '0')}:${startDate.minute.toString().padLeft(2, '0')}-${endDate.hour.toString().padLeft(2, '0')}:${endDate.minute.toString().padLeft(2, '0')}';
|
|
|
+ });
|
|
|
+ }
|
|
|
+
|
|
|
+ void onSelectMessageReminderClick() {
|
|
|
+ hideKeyboard(Get.context!);
|
|
|
+ SelectMessageReminderDateDialog.show(selectWeekDays: selectedWeekDays);
|
|
|
+ }
|
|
|
+
|
|
|
+ void onSelectAddressClick() async {
|
|
|
+ hideKeyboard(Get.context!);
|
|
|
+ final selectAddressMap = await CommonPointSelectAddressPage.start();
|
|
|
+ if (selectAddressMap == null || selectAddressMap.isEmpty) {
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ _selectedAddressMap.value = selectAddressMap;
|
|
|
+ }
|
|
|
+
|
|
|
+ void onPointSaveClick() {
|
|
|
+ final title = titleController.text.trim();
|
|
|
+ if (title.isEmpty) {
|
|
|
+ ToastUtil.show(StringName.commonPointAddNameHint);
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ final String address = selectedAddressMap?['address'] ?? '';
|
|
|
+ if (address.isEmpty) {
|
|
|
+ ToastUtil.show(StringName.commonPointAddPleaseSelectAAddressHint);
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ if (guardStartTime == null || guardEndTime == null) {
|
|
|
+ ToastUtil.show(StringName.commonPointAddGuardTimePeriodHint);
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ _isShowDuplicateName.value = false;
|
|
|
+ CustomLoadingDialog.show();
|
|
|
+
|
|
|
+ // rangePointRepository.pointInfoCreate(title:);
|
|
|
+ }
|
|
|
+}
|