| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112 |
- import 'package:get/get.dart';
- import 'package:get/get_core/src/get_main.dart';
- import 'package:location/base/base_controller.dart';
- import 'package:location/data/bean/track_daily_bean.dart';
- import 'package:location/data/repositories/track_repository.dart';
- import 'package:location/dialog/loading_dialog.dart';
- import 'package:location/handler/error_handler.dart';
- import 'package:location/module/track/track_controller.dart';
- import 'package:location/resource/string.gen.dart';
- import 'package:location/utils/pair.dart';
- import '../../../data/bean/track_days.dart';
- import '../track_status.dart';
- class TrackDayDetailController extends BaseController {
- final TrackDays days;
- late TrackRepository trackRepository;
- final RxBool _trackNoData = RxBool(false);
- final RxList<TrackDailyBean> trackDailyList = RxList<TrackDailyBean>();
- final RxBool _isExpanded = RxBool(false);
- final RxBool _isRequested = RxBool(false);
- final RxBool _isHideExpand = RxBool(false);
- bool get isHideExpand => _isHideExpand.value;
- bool get isRequested => _isRequested.value;
- bool get isExpanded => _isExpanded.value;
- bool get trackNoData => _trackNoData.value;
- final Rxn<Pair<TrackExpandType, TrackDailyBean>> _expandSituation = Rxn();
- Pair<TrackExpandType, TrackDailyBean>? get expandSituation =>
- _expandSituation.value;
- final TrackController trackController = Get.find<TrackController>();
- TrackDayDetailController(this.days, bool isExpand) {
- trackRepository = TrackRepository.getInstance();
- _isExpanded.value = isExpand;
- }
- @override
- void onInit() {
- super.onInit();
- _requestTrackDaily();
- }
- void _requestTrackDaily() {
- _isRequested.value = false;
- CustomLoadingDialog.show(loadingTxt: StringName.trackLoadingTxt);
- trackRepository
- .trackDailyQuery(
- startTime: days.start,
- endTime: days.end,
- userId: trackController.userInfo?.id)
- .then((list) {
- CustomLoadingDialog.hide();
- _isRequested.value = true;
- _trackNoData.value = (list == null || list.isEmpty == true);
- trackDailyList.assignAll(list ?? []);
- if (list != null && list.length == 1) {
- _isExpanded.value = true;
- _isHideExpand.value = true;
- }
- _dealTrackExpandData();
- }).catchError((error) {
- CustomLoadingDialog.hide();
- _isRequested.value = false;
- ErrorHandler.toastError(error);
- });
- }
- void _dealTrackExpandData() {
- final list = trackDailyList;
- if (list.isNotEmpty && list.length > 1) {
- TrackExpandType? expandType;
- TrackDailyBean? expandBean;
- for (var i = 0; i < list.length; i++) {
- final bean = list[i];
- if (bean.status == TrackStatus.error) {
- expandType = TrackExpandType.error;
- expandBean = bean;
- break;
- } else if (bean.status == TrackStatus.stay) {
- if (expandBean == null) {
- expandType = TrackExpandType.stay;
- expandBean = bean;
- }
- continue;
- }
- }
- if (expandType != null && expandBean != null) {
- if (expandType == TrackExpandType.error &&
- list.indexOf(expandBean) == list.length - 1) {
- expandType = TrackExpandType.errorNow;
- } else if (expandType == TrackExpandType.stay &&
- list.indexOf(expandBean) == list.length - 1) {
- expandType = TrackExpandType.stayNow;
- }
- _expandSituation.value = Pair(expandType, expandBean);
- }
- }
- }
- void onTrackDetailFoldClick() {
- _isExpanded.value = !_isExpanded.value;
- }
- }
|