position_list_presenter.dart 1.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546
  1. import 'package:liftmanager/internal/bbs/page/tab/position/position_list.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 PositionListPresenterSeconds
  6. extends BasePagePresenter<PositionListState> {
  7. Future getPositionList(
  8. int page, {
  9. String provinceName,
  10. String cityName,
  11. int minSalary,
  12. int maxSalary,
  13. String job,
  14. }) async {
  15. await NewApiService().getPositionList(page, 20,
  16. provinceName: provinceName,
  17. cityName: cityName,
  18. minSalary: minSalary,
  19. maxSalary: maxSalary,
  20. job: job, onSuccess: (res) {
  21. view.closeProgress();
  22. if (res != null) {
  23. view.provider.setHasMore(res.records.length == 20);
  24. if (page == 1) {
  25. view.provider.list.clear();
  26. if (res.records.isEmpty) {
  27. view.provider.setStateType(StateType.empty);
  28. } else {
  29. view.provider.addAll(res.records);
  30. }
  31. } else {
  32. view.provider.addAll(res.records);
  33. }
  34. } else {
  35. /// 加载失败
  36. view.provider.setHasMore(false);
  37. view.provider.setStateType(StateType.empty);
  38. }
  39. }, onError: (code, msg) {
  40. view.closeProgress();
  41. view.provider.setHasMore(false);
  42. view.provider.setStateType(StateType.network);
  43. });
  44. }
  45. }