track_day_detail_controller.dart 2.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475
  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. import '../track_dialog/track_daily_report_dialog.dart';
  12. class TrackDayDetailController extends BaseController {
  13. final TrackDays days;
  14. late TrackRepository trackRepository;
  15. final RxBool _trackNoData = RxBool(false);
  16. final RxList<TrackDailyBean> trackDailyList = RxList<TrackDailyBean>();
  17. final RxBool _isExpanded = RxBool(false);
  18. final RxBool _isRequested = RxBool(false);
  19. bool get isRequested => _isRequested.value;
  20. bool get isExpanded => _isExpanded.value;
  21. bool get trackNoData => _trackNoData.value;
  22. final TrackController trackController = Get.find<TrackController>();
  23. TrackDayDetailController(this.days, bool isExpand) {
  24. trackRepository = TrackRepository.getInstance();
  25. _isExpanded.value = isExpand;
  26. }
  27. @override
  28. void onInit() {
  29. super.onInit();
  30. _requestTrackDaily();
  31. }
  32. @override
  33. void onReady() {
  34. super.onReady();
  35. // TrackDailyReportDialog.show(confirmOnTap: () {
  36. //
  37. // });
  38. }
  39. void _requestTrackDaily() {
  40. _isRequested.value = false;
  41. CustomLoadingDialog.show(loadingTxt: StringName.trackLoadingTxt);
  42. trackRepository
  43. .trackDailyQuery(
  44. startTime: days.start,
  45. endTime: days.end,
  46. userId: trackController.userInfo?.id)
  47. .then((list) {
  48. CustomLoadingDialog.hide();
  49. _isRequested.value = true;
  50. _trackNoData.value = (list == null || list.isEmpty == true);
  51. trackDailyList.assignAll(list ?? []);
  52. }).catchError((error) {
  53. CustomLoadingDialog.hide();
  54. _isRequested.value = false;
  55. ErrorHandler.toastError(error);
  56. });
  57. }
  58. void onTrackDetailFoldClick() {
  59. _isExpanded.value = !_isExpanded.value;
  60. }
  61. }