request2GetListData method

dynamic request2GetListData(
  1. BuildContext context,
  2. String url, {
  3. String? loadingText,
  4. Map<String, dynamic>? params,
  5. dynamic isLoadMore = false,
  6. String pagingKey = "pageParamVo",
  7. Success? success,
  8. Fail? fail,
})

Implementation

request2GetListData(BuildContext context, String url, {String? loadingText, Map<String, dynamic>? params, isLoadMore = false, String pagingKey = "pageParamVo", Success? success, Fail? fail}) async {
  _pageIndex = hasMore && isLoadMore ? _pageIndex + 1 : 1;
  _isRefreshing = true;
  if(_pageIndex==1){
    //为了在空页面后刷新的时候把空组件隐藏掉
    setState(() {
    });
  }

  // if (params != null && pagingKey.isNotEmpty) {
  //   dynamic pageParams = {
  //     'curPage': _pageIndex,
  //     'pageSize': _pageSize,
  //   };
  //   try {
  //     params![pagingKey] = pageParams;
  //   } catch (msg) {
  //     debugPrint(msg.toString());
  //   }
  // }

  dynamic pageParams = {
    'current': _pageIndex,
    'size': _pageSize,
  };

  Map<String, dynamic> mergedMap = {...pageParams, ...params ?? {}};

  try {
    dynamic res = await request2Post(url, context, data: mergedMap, isShowLoading: false);

    var tempData;
    if (res is List) {
      hasMore = false;
      tempData = res;
    } else {
      int totalRecordsCount = res["total"] ?? 0;
      int pageIndex = res["current"] ?? 0;
      int pageSize = res["size"] ?? 0;

      hasMore = pageIndex * pageSize < totalRecordsCount;
      tempData = res["records"];
    }

    if (isLoadMore) {
      _dataArr.addAll(tempData);
    } else {
      _dataArr = tempData;
    }

    setState(() {
      _isNetWorkError = false;
    });
    try {
      success?.call(_dataArr, otherObj: res is List ? {} : (res["otherObject"] ?? {}));
    } catch (e) {
      debugPrint(e.toString());
    }
    _handleRefresh(isLoadMore);
  } on AppException catch (e) {
    setState(() {
      _isNetWorkError = true;
    });
    _handleRefresh(isLoadMore);
    fail?.call(-1008611, e.getMessage());
  }
}