import 'package:farmer_client/pages/order/widgets/index.dart'; import 'package:farmer_client/widgets/layout/BasicPage.dart'; import 'package:flutter/material.dart'; import 'package:flutter_easyrefresh/easy_refresh.dart'; import 'package:farmer_client/widgets/NullCard.dart'; import 'package:fluttertoast/fluttertoast.dart'; import 'package:get/get.dart'; import 'package:get/get_rx/src/rx_types/rx_types.dart'; import '../../models/entities/OrderInfoModel.dart'; import '../../services/orderAPI.dart'; import '../../widgets/OrderListCard.dart'; class OrderPage extends BasicPage { OrderPage({Key? key}) : super(key: key) { tabIndex = 1; naviTitle = '订单'; } EasyRefreshController _controller = EasyRefreshController(); final orderListItem = Rx<List<OrderInfoModel>>([]); final newOrderList = Rx<List<OrderInfoModel>>([]); var pageIndex = 1; //页数 var count = 10; //每页10条 late int maxSum; //最多条数 int _count = 0; Map<String, dynamic> params = {'pageNum': 1,'mine':true}; void getNewData() { pageIndex = 1; params['pageNum'] = pageIndex; print(params['pageNum']); getOrderList(params).then((value) { maxSum = value['total']; List<OrderInfoModel> list = []; value['records'].forEach((item) { list.add(OrderInfoModel.fromJson(item)); }); orderListItem(list); newOrderList(list); _count = orderListItem.value.length; }); } void getMoreData() { pageIndex++; params['pageNum'] = pageIndex; print(params['pageNum']); getOrderList(params).then((value) { maxSum = value['total']; List<OrderInfoModel> list = []; List<OrderInfoModel> Newlist = []; value['records'].forEach((item) { list.add(OrderInfoModel.fromJson(item)); }); newOrderList.value.addAll(list); Newlist.addAll(newOrderList.value); orderListItem(Newlist); _count = orderListItem.value.length; }); } @override void beforeShow() { // TODO: implement beforeShow super.beforeShow(); // getNewData(); } @override Widget builder(BuildContext context) { return Column( children: [ const OrderHead(), Expanded( child: ( EasyRefresh( controller: _controller, firstRefresh: true, header: ClassicalHeader(refreshingText:'刷新中...',refreshedText: '刷新成功',refreshFailedText:'异常'), onRefresh: () async { await Future.delayed(const Duration(seconds: 1), () { print("下拉刷新-----"); getNewData(); _controller.resetLoadState(); }); }, onLoad: () async { await Future.delayed(const Duration(seconds: 1), () { if (_count == maxSum) { Fluttertoast.showToast(msg: '暂无更多数据哦'); } else { getMoreData(); } _controller.finishLoad(noMore: _count >= maxSum); }); }, child: Obx( () => orderListItem.value.isNotEmpty ? Column( mainAxisSize: MainAxisSize.min, children: orderListItem.value .map((item) => OrderListCard(item: item)) .toList(), ): const NullCard(text: '您还没有新的订单!'), ), ) ), ) ], ); } }