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>([]); final newMachineryLists = Rx>([]); var pageIndex = 1; //页数 var count = 10; //每页10条 late int maxSum; //最多条数 int _count = 0; Map 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 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 list = []; List 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: '暂无农机信息!'), ), ) ), ), ], ) ); } }