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: '您还没有新的订单!'),
      ),
    )
          ),
  )
      ],
    );
  }
}