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:flutter/material.dart';
import 'package:flutter_easyloading/flutter_easyloading.dart';
import 'package:flutter_easyrefresh/easy_refresh.dart';
import 'package:flutter_screenutil/flutter_screenutil.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/OrderListAll.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<OrderListAll>>([]);
  final newOrderList = Rx<List<OrderListAll>>([]);
  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<OrderListAll> list = [];
      value['records'].forEach((item) {
        list.add(OrderListAll.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<OrderListAll> list = [];
      List<OrderListAll> Newlist = [];
      value['records'].forEach((item) {
        list.add(OrderListAll.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 Container(
      // padding: EdgeInsets.fromLTRB(15, 0, 15, 0),
      child:Column(
        children:  [
          OrderHead(),
          Expanded(
            child:
            (
      EasyRefresh(
        controller: _controller,
        firstRefresh: true,
        header: ClassicalHeader(refreshingText:'刷新中...',refreshedText: '刷新成功',refreshFailedText:'异常'),
        onRefresh: () async {
          await Future.delayed(Duration(seconds: 1), () {
            print("下拉刷新-----");
            getNewData();
            _controller.resetLoadState();
          });
        },
        onLoad: () async {
          await Future.delayed(Duration(seconds: 1), () {
            if (_count == maxSum) {
              Fluttertoast.showToast(msg: '暂无更多数据哦');
            } else {
              getMoreData();
            }
            _controller.finishLoad(noMore: _count >= maxSum);

          });
        },
        child: Obx(
              () => orderListItem.value.length > 0
              ?
          Column(
            mainAxisSize: MainAxisSize.min,
            children: orderListItem.value
                .map((item) => OrderListCard(item: item))
                .toList(),
          ): NullCard(text: '您还没有新的订单!'),
        ),
      )
            ),
  )
        ],
      ) ,
    );
  }
}