| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697 |
- 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,
- onSelected: (days) {
- selectedWeekDays.assignAll(days);
- });
- }
- 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;
- }
- if (selectedWeekDays.isEmpty) {
- ToastUtil.show(StringName.commonPointAddMessageReminderHint);
- return;
- }
- _isShowDuplicateName.value = false;
- CustomLoadingDialog.show();
- final int radius = selectedAddressMap?['radius'] ?? 0;
- // rangePointRepository.pointInfoCreate(title: title, radius: radius);
- }
- }
|