123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257 |
- import 'dart:convert';
-
- import 'package:farmer_client/pages/home/widgets/home/widgets/headers.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/CardListModel.dart';
- import '../../models/entities/CardTypeModel.dart';
- import '../../services/homeAPI.dart';
- import '../../widgets/CarsCard.dart';
- import '../../widgets/NullCard.dart';
- import '../../widgets/Search.dart';
-
- class MoreCars extends StatefulWidget {
- const MoreCars({Key? key}) : super(key: key);
- @override
- State<MoreCars> createState() => _MoreCarsState();
- }
-
- class _MoreCarsState extends State<MoreCars> with TickerProviderStateMixin {
- late TabController _controller;
- late EasyRefreshController _controllerList;
-
- final tabText = Rx<List<CardTypeModel>>([]);
- final classId = Rx<List<dynamic>>([]);
- final cardTypeList = Rx<List<CardListModel>>([]);
- final newCardTypeList = Rx<List<CardListModel>>([]);
- var pageIndex = 1; //页数
- var count = 10; //每页10条
- late int maxSum; //最多条数
- String value=''; //最多条数
- int _count = 0;
- String? location = AppController.t.locationStr;
- bool hasTopLoad = false;
- int index = 0;
- String typeId='';
- Map<String, dynamic> params = {'pageNum': 1,'location':AppController.t.locationStr,'typeId':''};
-
- @override
- void initState() {
- // TODO: implement initState
- super.initState();
- _controller = TabController(length: tabText.value.length, vsync: this);
- _controllerList = EasyRefreshController();
-
- // _controller.addListener(() {
- // setState(() => _selectedIndex = _controller.index);
- // print("liucheng-> ${_controller.indexIsChanging}");
- // });
- _geList();
- getNewData(params);
- // _getAllCarsList();
- }
-
- @override
- void dispose() {
- super.dispose();
- _controller.dispose();
- _controllerList.dispose();
- }
-
-
-
- void getNewData(Map? params) {
- 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));
- });
- cardTypeList(list);
- newCardTypeList(list);
- _count = cardTypeList.value.length;
- });
- }
- void _geList() {
- getMachineryType().then((value) {
- EasyLoading.show(status: '数据加载中...');
-
- final list = <CardTypeModel>[];
- List classtypeId = [];
- List<CardTypeModel> newTabs = [
- CardTypeModel.fromJson({'name': '全部'})
- ];
- value['records'].forEach((item) {
- list.add(CardTypeModel.fromJson(item));
- });
- list.insertAll(0, newTabs);
- tabText(list);
- tabText().forEach((item) {
- classtypeId.add(item.typeId);
- });
- classId(classtypeId);
-
- hasTopLoad = true;
- _controller = TabController(length: tabText.value.length, vsync: this);
- print(hasTopLoad);
- EasyLoading.dismiss();
-
- });
- }
- void getMoreData(Map? params) {
- pageIndex++;
- params!['pageNum'] = pageIndex;
- print(params['pageNum']);
- searchMachinery(params).then((value) {
- maxSum = value['total'];
- List<CardListModel> list = [];
- List<CardListModel> Newlist = [];
- value['records'].forEach((item) {
- list.add(CardListModel.fromJson(item));
- });
- newCardTypeList.value.addAll(list);
- Newlist.addAll(newCardTypeList.value);
- cardTypeList(Newlist);
- _count = cardTypeList.value.length;
- });
- }
- void _handleTabChange(i) {
- index = i;
- if (index == 0) {
- Map<String, dynamic> paramss = {'pageNum': 1,'location':location};
- getNewData(paramss);
- } else {
- // final typeId = classId.value[index];
- print('typeId+$typeId');
- typeId=classId.value[index];
- print('typeId+$typeId');
-
-
- // Map<String, dynamic> params = {'pageNum': 1,'location':location,'typeId':typeId.toString()};
- params['typeId']=classId.value[index];
- getNewData(params);
-
- }
- }
-
- @override
- Widget build(BuildContext context) {
- return Scaffold(
- resizeToAvoidBottomInset: true,
- appBar: AppBar(
- centerTitle: true,
- backgroundColor: Colors.transparent,
- foregroundColor: const Color(0xFF333333),
- elevation: 0,
- toolbarHeight: 44.w,
- title: Text(
- '更多',
- style: TextStyle(
- color: const Color(0xFF333333),
- fontWeight: FontWeight.bold,
- fontSize: 17.sp,
- letterSpacing: 2),
- ),
- ),
- body: SafeArea(
- child: Container(
- alignment: Alignment.center,
- decoration: BoxDecoration(color: Colors.white),
- child: !hasTopLoad
- ? Column(
- children: [
- ListView(
- shrinkWrap: true,
- physics: NeverScrollableScrollPhysics(),
- children: [
- Container(
- padding: EdgeInsets.fromLTRB(0, 15, 0, 15),
- width: 350.w,
- child: TypeHeader(
- type: false,
- ),
- ),
- Obx(() => TabBar(
- labelStyle: TextStyle(
- fontSize: ScreenUtil().setSp(19),
- fontWeight: FontWeight.bold),
- //选中的样式
- unselectedLabelStyle:
- TextStyle(fontSize: ScreenUtil().setSp(16)),
- //未选中的样式
- controller: _controller,
- isScrollable: true,
- //可滚动
- indicatorColor: Colors.black,
- //指示器的颜色
- labelColor: Colors.black,
- //选中文字颜色
- unselectedLabelColor: Color(0xffadadad),
- // indicatorSize: TabBarIndicatorSize.label, //指示器与文字等宽
- tabs: tabText.value
- .map((e) => Tab(text: e.name.toString()))
- .toList(),
- onTap: (int i) {
- _handleTabChange(i);
- },
- )),
- ],
- ),
- Expanded(
- child: _buildListView(context),
- )
- ],
- )
- : Text('加载中...'),
- )));
- }
- Widget _buildListView(BuildContext context) {
- return EasyRefresh(
- controller: _controllerList,
- firstRefresh: true,
- onRefresh: () async {
- await Future.delayed(Duration(seconds: 1), () {
- print("下拉刷新-----");
- // Map<String, dynamic> params = {'pageNum': pageIndex,'location':AppController.t.locationStr,'q':value};
-
- getNewData(params);
- _controllerList.resetLoadState();
- });
- },
- onLoad: () async {
- await Future.delayed(Duration(seconds: 1), () {
- if (_count == maxSum) {
- Fluttertoast.showToast(msg: '暂无更多数据哦');
- } else {
- // Map<String, dynamic> params = {'pageNum': pageIndex,'location':AppController.t.locationStr,'q':value};
-
- getMoreData(params);
- }
- _controllerList.finishLoad(noMore: _count >= maxSum);
-
- });
- },
- child: Obx(
- () => cardTypeList.value.length > 0
- ?
- Column(
- mainAxisSize: MainAxisSize.min,
- children: cardTypeList.value
- .map((item) => CarsCard(item: item))
- .toList(),
- ): NullCard(text: '暂无农机信息!'),
- ),
- );
- }
-
- }
|