news_list_presenter.dart 1.2 KB

123456789101112131415161718192021222324252627282930313233343536
  1. import 'package:liftmanager/internal/bbs/page/bbs_page.dart';
  2. import 'package:liftmanager/mvp/base_page_presenter.dart';
  3. import 'package:liftmanager/net/api_service.dart';
  4. import 'package:liftmanager/widgets/state_layout.dart';
  5. class NewsListPresenter extends BasePagePresenter<BbsPageState> {
  6. Future newsList(pageIndex,haveTops,String text,city) async {
  7. await ApiService().newsList(pageIndex,20,haveTops,text,city,onSuccess: (data) {
  8. view.closeProgress();
  9. if (data != null) {
  10. view.provider.setHasMore(data.news.rows.length == 20);
  11. if(pageIndex == 1){
  12. view.provider.list.clear();
  13. if (data.news.rows.isEmpty) {
  14. view.provider.setStateType(StateType.empty);
  15. } else {
  16. view.provider.addAll(data.news.rows);
  17. }
  18. }else{
  19. view.provider.addAll(data.news.rows);
  20. }
  21. } else {
  22. /// 加载失败
  23. view.provider.setHasMore(false);
  24. view.provider.setStateType(StateType.network);
  25. }
  26. }, onError: (code, msg) {
  27. view.closeProgress();
  28. view.provider.setHasMore(false);
  29. view.provider.setStateType(StateType.network);
  30. });
  31. }
  32. }