index.dart 3.3KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100
  1. import 'package:flutter/material.dart';
  2. import 'package:get/get.dart';
  3. import 'package:flutter_screenutil/flutter_screenutil.dart';
  4. import 'package:farmer_client/models/app.dart';
  5. import 'package:farmer_client/models/entities/CardListModel.dart';
  6. import 'package:farmer_client/services/homeAPI.dart';
  7. import 'package:farmer_client/widgets/CarsCard.dart';
  8. import 'package:farmer_client/widgets/RefreshMoreList.dart';
  9. import 'package:farmer_client/widgets/layout/BasicPage.dart';
  10. import 'package:farmer_client/pages/home/widgets/searchBannerHeader.dart';
  11. import 'package:farmer_client/pages/MoreCars/index.dart';
  12. class Home extends BasicPage {
  13. Home({Key? key}) : super(key: key) {
  14. tabIndex = 0;
  15. naviTitle = '首页';
  16. }
  17. final machineryList = Rx<List<CardListModel>>([]);
  18. final params = Rx<Map<String, dynamic>>({
  19. 'pageSize': 10,
  20. 'location': AppController.t.locationStr ?? '112.087465,32.687507'
  21. });
  22. Function? Refresh;
  23. List<CardListModel> GetList(value) {
  24. List<CardListModel> list = [];
  25. if (value != null) {
  26. value.forEach((item) => {list.add(CardListModel.fromJson(item))});
  27. }
  28. return list;
  29. }
  30. @override
  31. Widget builder(BuildContext context) {
  32. return Container(
  33. decoration: const BoxDecoration(color: Colors.white),
  34. padding: EdgeInsets.fromLTRB(15.w, 5.w, 15.w, 0),
  35. child: RefreshMoreList(
  36. pPrams: params,
  37. cardText: '暂无农机',
  38. fetch: getMachinery,
  39. isHome: true,
  40. useState: (state) {
  41. machineryList(GetList(state));
  42. },
  43. builder: ({required BuildContext context, required Function toggle}) {
  44. Refresh = toggle;
  45. return Column(
  46. children: [
  47. const searchBannerHeader(),
  48. Row(
  49. mainAxisAlignment: MainAxisAlignment.spaceBetween,
  50. children: [
  51. Container(
  52. padding: EdgeInsets.symmetric(vertical: 15.h),
  53. child: Row(
  54. children: [
  55. Padding(
  56. padding: const EdgeInsets.only(right: 8),
  57. child: Image(
  58. image: const AssetImage(
  59. 'images/icons/carsListImga.png'),
  60. fit: BoxFit.cover,
  61. width: 20.w,
  62. ),
  63. ),
  64. Text(
  65. '农机列表',
  66. style: TextStyle(
  67. color: const Color(0xff222222),
  68. fontSize: 20.sp,
  69. fontWeight: FontWeight.bold),
  70. )
  71. ],
  72. ),
  73. ),
  74. GestureDetector(
  75. child: const Text('更多 >>'),
  76. onTap: () {
  77. Get.to(const MoreCars());
  78. },
  79. )
  80. ],
  81. ),
  82. Obx(
  83. () => Column(
  84. children: machineryList.value
  85. .map(
  86. (item) => CarsCard(item: item),
  87. )
  88. .toList(),
  89. ),
  90. ),
  91. ],
  92. );
  93. },
  94. ),
  95. );
  96. }
  97. }