123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102
  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/widgets/CarsCard.dart';
  5. import 'package:farmer_client/widgets/RefreshMoreList.dart';
  6. import 'package:farmer_client/widgets/layout/BasicPage.dart';
  7. import 'package:farmer_client/models/app.dart';
  8. import 'package:farmer_client/models/entities/CardListModel.dart';
  9. import 'package:farmer_client/services/homeAPI.dart';
  10. class SearchPage extends BasicPage {
  11. final machineryList = Rx<List<CardListModel>>([]);
  12. final params = Rx<Map<String, dynamic>>(
  13. {'location': AppController.t.locationStr ?? '112.087465,32.687507'});
  14. Function? Refresh;
  15. List<CardListModel> GetList(value) {
  16. List<CardListModel> list = [];
  17. if (value != null)
  18. value.forEach((item) => {list.add(CardListModel.fromJson(item))});
  19. return list;
  20. }
  21. var location = AppController.t.locationStr;
  22. void _onChange(String value) {
  23. Map<String, dynamic> map = {...params.value};
  24. map['q'] = value;
  25. map['pageNum'] = 1;
  26. params(map);
  27. Refresh!();
  28. }
  29. @override
  30. Widget builder(BuildContext context) {
  31. naviTitle = '搜索';
  32. return Column(
  33. children: [
  34. Container(
  35. width: 345.w,
  36. height: 34.h,
  37. margin: EdgeInsets.symmetric(vertical: 15.h, horizontal: 15.w),
  38. padding: EdgeInsets.symmetric(vertical: 0, horizontal: 10.w),
  39. decoration: BoxDecoration(
  40. color: const Color(0xFFf8f8f8),
  41. borderRadius: BorderRadius.all(
  42. Radius.circular(17.w),
  43. ),
  44. ),
  45. child: Row(
  46. mainAxisAlignment: MainAxisAlignment.center,
  47. children: [
  48. Image.asset(
  49. 'images/icons/search.png',
  50. width: 15.w,
  51. height: 15.w,
  52. ),
  53. Container(
  54. width: 300.w,
  55. margin: EdgeInsets.fromLTRB(5.w, 0, 0, 0),
  56. child: TextField(
  57. style: TextStyle(fontSize: 14.sp),
  58. decoration: const InputDecoration(
  59. isCollapsed: true,
  60. hintText: '搜索关键字查询',
  61. border: InputBorder.none,
  62. counterText: '', //去掉计数
  63. floatingLabelBehavior: FloatingLabelBehavior.never,
  64. ),
  65. onChanged: (e) {
  66. _onChange(e);
  67. },
  68. ),
  69. ),
  70. ],
  71. ),
  72. ),
  73. Expanded(
  74. child: RefreshMoreList(
  75. pPrams: params,
  76. cardText: '暂无农机',
  77. fetch: getMachinery,
  78. useState: (state) {
  79. machineryList(GetList(state));
  80. },
  81. builder: (
  82. {required BuildContext context, required Function toggle}) {
  83. Refresh = toggle;
  84. return Obx(
  85. () => Column(
  86. children: machineryList.value
  87. .map(
  88. (item) => CarsCard(item: item),
  89. )
  90. .toList(),
  91. ),
  92. );
  93. },
  94. ),
  95. )
  96. ],
  97. );
  98. }
  99. }