search_presenter.dart 1.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041
  1. import 'package:flutter/cupertino.dart';
  2. import 'package:liftmanager/mvp/base_page_presenter.dart';
  3. import 'package:liftmanager/net/api_service.dart';
  4. import 'package:liftmanager/net/dio_utils.dart';
  5. import 'package:liftmanager/internal/search/model/search_entity.dart';
  6. import 'package:liftmanager/widgets/state_layout.dart';
  7. import 'package:liftmanager/mvp/base_page_presenter.dart';
  8. import 'package:liftmanager/internal/search/page/search_page.dart';
  9. class SearchPresenter extends BasePagePresenter<SearchPageState> {
  10. Future search(BuildContext context,String text, int page, bool isShowDialog) async{
  11. await ApiService(context: context).newsList(1,20,0,text,"",onSuccess: (data) {
  12. view.closeProgress();
  13. if (data != null) {
  14. view.provider.setHasMore(data.news.rows.length == 20);
  15. if(page == 1){
  16. view.provider.list.clear();
  17. if (data.news.rows.isEmpty) {
  18. view.provider.setStateType(StateType.empty);
  19. } else {
  20. view.provider.addAll(data.news.rows);
  21. }
  22. }else{
  23. view.provider.addAll(data.news.rows);
  24. }
  25. } else {
  26. /// 加载失败
  27. view.provider.setHasMore(false);
  28. view.provider.setStateType(StateType.empty);
  29. }
  30. }, onError: (code, msg) {
  31. view.closeProgress();
  32. view.provider.setHasMore(false);
  33. view.provider.setStateType(StateType.network);
  34. });
  35. }
  36. }