import 'package:farmer_client/widgets/Modal.dart' as modal;
import 'package:farmer_client/widgets/layout/BasicPage.dart';
import 'package:flutter/material.dart';
import '../../utils/timer.dart';
import '../MoreCars/index.dart';
import 'package:carousel_slider/carousel_slider.dart';
import 'package:farmer_client/pages/home/widgets/home/widgets/headers.dart';
import 'package:farmer_client/pages/home/widgets/home/widgets/searchBannerHeader.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 '../../../../models/app.dart';
import '../../../../models/entities/CardInfo.dart';
import '../../../../models/entities/CardListModel.dart';
import '../../../../services/homeAPI.dart';
import '../../../../widgets/CarsCard.dart';
import 'package:farmer_client/models/entities/Banners.dart';

class Home extends BasicPage {
  Home({Key? key}) : super(key: key) {
    tabIndex = 0;
    naviTitle = '首页';
  }
  EasyRefreshController _controller = EasyRefreshController();

  String? location = AppController.t.locationStr;
  final machineryLists = Rx<List<CardListModel>>([]);

  final newMachineryLists = Rx<List<CardListModel>>([]);
  var pageIndex = 1; //页数
  var count = 10; //每页10条
  late int maxSum; //最多条数
  int _count = 0;
  Map<String, dynamic> params = {'pageNum': 1,'location':AppController.t.locationStr ?? '112.087465,32.687507'};


  void getNewData() {
    pageIndex = 1;
    params['pageNum'] = pageIndex;
    print(params['pageNum']);
    getMachinery(params).then((value) {
      maxSum = value['total'];

      List<CardListModel> list = [];
      value['records'].forEach((item) {
        list.add(CardListModel.fromJson(item));
      });
      machineryLists(list);
      newMachineryLists(list);
      _count = machineryLists.value.length;
    });
  }

  void getMoreData() {
    pageIndex++;
    params['pageNum'] = pageIndex;
    print(params['pageNum']);
    getMachinery(params).then((value) {
      maxSum = value['total'];
      List<CardListModel> list = [];
      List<CardListModel> Newlist = [];
      value['records'].forEach((item) {
        list.add(CardListModel.fromJson(item));
      });
      newMachineryLists.value.addAll(list);
      Newlist.addAll(newMachineryLists.value);
      machineryLists(Newlist);
      _count = machineryLists.value.length;
    });
  }

  @override
  Widget builder(BuildContext context) {
    setTimeout(() {
      // showDialog(context: Get.overlayContext!, builder: (BuildContext c) {
      //   return Modal(type: 'dialog', title: '测试', message: '这是一段 message !', onConfirm: () => print('hahahaha'),);
      // } );
      // Get.dialog(Modal(type: 'dialog', title: '测试', message: '这是一段 message !', onConfirm: () => print('hahahaha'),));
      // modal.showDialog(title: '测试', content: SizedBox(width: 400, height: 300,), onConfirm: () => false);
    }, 2000);

     return Container(
      decoration: BoxDecoration(color: Colors.white),
      // alignment: Alignment.center,
      padding: EdgeInsets.fromLTRB(15.w, 5.w, 15.w, 0),
      child:Column(
          children: [
          searchBannerHeader(),
            Row(
              mainAxisAlignment: MainAxisAlignment.spaceBetween,
              children: [
                Container(
                  padding: EdgeInsets.fromLTRB(10.w, 15.w, 10.w, 0),

                  child: Row(
                    children: [
                      Padding(
                        padding: EdgeInsets.fromLTRB(0, 0, 8, 0),
                        child: Image(
                          image:
                          AssetImage('images/icons/carsListImga.png'),
                          fit: BoxFit.cover,
                          width: 20.w,
                        ),
                      ),
                      Text(
                        '农机列表',
                        style: TextStyle(
                            color: Color(0xff222222),
                            fontSize: 20.sp,
                            fontWeight: FontWeight.bold),
                      )
                    ],
                  ),
                ),
                Container(
                  child: GestureDetector(
                    child: Text('更多 >>'),
                    onTap: () {
                      print('点我进入农机搜索/更多页');
                      Get.to(MoreCars());
                    },
                  ),
                )
              ],
            ),
            Expanded(
              child: (
                  EasyRefresh(
                    controller: _controller,
                    firstRefresh: true,
                    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(
                          () => machineryLists.value.length > 0
                          ?
                      Column(
                        mainAxisSize: MainAxisSize.min,
                        children: machineryLists.value
                            .map((item) => CarsCard(item: item))
                            .toList(),
                      ): NullCard(text: '暂无农机信息!'),
                    ),
                  )

              ),
            ),

      ],
    )


    );

  }
}