index.dart 3.3KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899
  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. return list;
  28. }
  29. @override
  30. Widget builder(BuildContext context) {
  31. return Container(
  32. decoration: const BoxDecoration(color: Colors.white),
  33. padding: EdgeInsets.fromLTRB(15.w, 5.w, 15.w, 0),
  34. child: RefreshMoreList(
  35. pPrams: params,
  36. cardText: '暂无农机',
  37. fetch: getMachinery,
  38. isHome: true,
  39. useState: (state) {
  40. machineryList(GetList(state));
  41. },
  42. builder: ({required BuildContext context, required Function toggle}) {
  43. Refresh = toggle;
  44. return Column(
  45. children: [
  46. const searchBannerHeader(),
  47. Row(
  48. mainAxisAlignment: MainAxisAlignment.spaceBetween,
  49. children: [
  50. Container(
  51. padding: EdgeInsets.symmetric(vertical: 15.h),
  52. child: Row(
  53. children: [
  54. Padding(
  55. padding: const EdgeInsets.only(right: 8),
  56. child: Image(
  57. image: const AssetImage(
  58. 'images/icons/carsListImga.png'),
  59. fit: BoxFit.cover,
  60. width: 20.w,
  61. ),
  62. ),
  63. Text(
  64. '农机列表',
  65. style: TextStyle(
  66. color: const Color(0xff222222),
  67. fontSize: 20.sp,
  68. fontWeight: FontWeight.bold),
  69. )
  70. ],
  71. ),
  72. ),
  73. GestureDetector(
  74. child: const Text('更多 >>'),
  75. onTap: () {
  76. Get.to(const MoreCars());
  77. },
  78. )
  79. ],
  80. ),
  81. Obx(
  82. () => Column(
  83. children: machineryList.value
  84. .map(
  85. (item) => CarsCard(item: item),
  86. )
  87. .toList(),
  88. ),
  89. ),
  90. ],
  91. );
  92. },
  93. ),
  94. );
  95. }
  96. }