track_day_detail_controller.dart 2.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465
  1. import 'package:get/get.dart';
  2. import 'package:get/get_core/src/get_main.dart';
  3. import 'package:location/base/base_controller.dart';
  4. import 'package:location/data/bean/track_daily_bean.dart';
  5. import 'package:location/data/repositories/track_repository.dart';
  6. import 'package:location/dialog/loading_dialog.dart';
  7. import 'package:location/handler/error_handler.dart';
  8. import 'package:location/module/track/track_controller.dart';
  9. import 'package:location/resource/string.gen.dart';
  10. import '../../../data/bean/track_days.dart';
  11. class TrackDayDetailController extends BaseController {
  12. final TrackDays days;
  13. late TrackRepository trackRepository;
  14. final RxBool _trackNoData = RxBool(false);
  15. final RxList<TrackDailyBean> trackDailyList = RxList<TrackDailyBean>();
  16. final RxBool _isExpanded = RxBool(false);
  17. final RxBool _isRequested = RxBool(false);
  18. bool get isRequested => _isRequested.value;
  19. bool get isExpanded => _isExpanded.value;
  20. bool get trackNoData => _trackNoData.value;
  21. final TrackController trackController = Get.find<TrackController>();
  22. TrackDayDetailController(this.days, bool isExpand) {
  23. trackRepository = TrackRepository.getInstance();
  24. _isExpanded.value = isExpand;
  25. }
  26. @override
  27. void onInit() {
  28. super.onInit();
  29. _requestTrackDaily();
  30. }
  31. void _requestTrackDaily() {
  32. _isRequested.value = false;
  33. CustomLoadingDialog.show(loadingTxt: StringName.trackLoadingTxt);
  34. trackRepository
  35. .trackDailyQuery(
  36. startTime: days.start,
  37. endTime: days.end,
  38. userId: trackController.userInfo?.id)
  39. .then((list) {
  40. CustomLoadingDialog.hide();
  41. _isRequested.value = true;
  42. _trackNoData.value = (list == null || list.isEmpty == true);
  43. trackDailyList.assignAll(list ?? []);
  44. }).catchError((error) {
  45. CustomLoadingDialog.hide();
  46. _isRequested.value = false;
  47. ErrorHandler.toastError(error);
  48. });
  49. }
  50. void onTrackDetailFoldClick() {
  51. _isExpanded.value = !_isExpanded.value;
  52. }
  53. }