track_day_detail_controller.dart 2.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970
  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. @override
  32. void onReady() {
  33. super.onReady();
  34. }
  35. void _requestTrackDaily() {
  36. _isRequested.value = false;
  37. CustomLoadingDialog.show(loadingTxt: StringName.trackLoadingTxt);
  38. trackRepository
  39. .trackDailyQuery(
  40. startTime: days.start,
  41. endTime: days.end,
  42. userId: trackController.userInfo?.id)
  43. .then((list) {
  44. CustomLoadingDialog.hide();
  45. _isRequested.value = true;
  46. _trackNoData.value = (list == null || list.isEmpty == true);
  47. trackDailyList.assignAll(list ?? []);
  48. }).catchError((error) {
  49. CustomLoadingDialog.hide();
  50. _isRequested.value = false;
  51. ErrorHandler.toastError(error);
  52. });
  53. }
  54. void onTrackDetailFoldClick() {
  55. _isExpanded.value = !_isExpanded.value;
  56. }
  57. }