controller.dart 1.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950
  1. import 'package:electronic_assistant/base/base_controller.dart';
  2. import 'package:flutter/cupertino.dart';
  3. import 'package:get/get_rx/src/rx_types/rx_types.dart';
  4. import 'package:pull_to_refresh/pull_to_refresh.dart';
  5. import '../../../data/bean/talks.dart';
  6. import '../../../data/repositories/talk_repository.dart';
  7. import '../../../utils/error_handler.dart';
  8. class FileSearchController extends BaseController {
  9. final refreshController = RefreshController(initialRefresh: false);
  10. int limit = 10;
  11. @override
  12. void onReady() {
  13. super.onReady();
  14. onRefreshData();
  15. }
  16. RxList<TalkBean> get talkList => talkRepository.talkList;
  17. void requestTalkData(int offset, int limit, {bool? isClearAll = false}) {
  18. talkRepository
  19. .requestTalkPagePaginate(offset, limit, isClearAll: isClearAll)
  20. .then((response) {
  21. debugPrint("requestTalkData-response-$response");
  22. if (talkRepository.talkList.length >= response.count) {
  23. debugPrint("requestTalkData-没有更多数据了");
  24. refreshController.loadNoData();
  25. } else {
  26. refreshController.loadComplete();
  27. }
  28. refreshController.refreshCompleted();
  29. }).catchError((error) {
  30. debugPrint("requestTalkData-catchError-$error");
  31. refreshController.loadFailed();
  32. refreshController.refreshFailed();
  33. ErrorHandler.toastError(error);
  34. });
  35. }
  36. void onRefreshData() {
  37. requestTalkData(0, limit, isClearAll: true);
  38. }
  39. void onLoadMoreTalkData() {
  40. requestTalkData(talkList.length, limit);
  41. }
  42. }