123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384
  1. import 'dart:async';
  2. import 'package:farmer_client/widgets/layout/BasicPage.dart';
  3. import 'package:flutter/material.dart';
  4. import 'package:flutter_easyloading/flutter_easyloading.dart';
  5. import 'package:flutter_screenutil/flutter_screenutil.dart';
  6. import 'package:get/get.dart';
  7. import 'package:get/get_rx/src/rx_types/rx_types.dart';
  8. import '../../models/app.dart';
  9. import '../../models/entities/CardListModel.dart';
  10. import '../../services/homeAPI.dart';
  11. import '../../widgets/CarsCard.dart';
  12. import '../../widgets/NullCard.dart';
  13. import 'dart:async';
  14. class SearchPage extends BasicPage {
  15. final cardSearchList = Rx<List<CardListModel>>([]);
  16. var location = AppController.t.locationStr;
  17. void _onChange(String value) {
  18. print(location);
  19. searchMachinery(location.toString(), value).then((value) {
  20. EasyLoading.show(status: '数据加载中...');
  21. final list = <CardListModel>[];
  22. value['records'].forEach((item) {
  23. list.add(CardListModel.fromJson(item));
  24. });
  25. cardSearchList(list);
  26. EasyLoading.dismiss();
  27. });
  28. }
  29. @override
  30. Widget builder(BuildContext context) {
  31. naviTitle = '搜索';
  32. return Container(
  33. child: Column(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: Color(0xFFf8f8f8),
  41. borderRadius: BorderRadius.all(Radius.circular(17.w))),
  42. child: Row(
  43. mainAxisAlignment: MainAxisAlignment.center,
  44. children: [
  45. Image.asset(
  46. 'images/icons/search.png',
  47. width: 15.w,
  48. height: 15.w,
  49. ),
  50. Container(
  51. width: 300.w,
  52. margin: EdgeInsets.fromLTRB(5.w, 0, 0, 0),
  53. child: TextField(
  54. style: TextStyle(fontSize: 14.sp),
  55. decoration: const InputDecoration(
  56. isCollapsed: true,
  57. hintText: '搜索关键字查询',
  58. border: InputBorder.none,
  59. counterText: '', //去掉计数
  60. floatingLabelBehavior: FloatingLabelBehavior.never,
  61. ),
  62. onChanged: (e) {
  63. _onChange(e);
  64. },
  65. ),
  66. ),
  67. ],
  68. ),
  69. ),
  70. Obx(() => Column(
  71. children: cardSearchList.value.length > 0
  72. ? cardSearchList().map((item) => CarsCard(item: item)).toList()
  73. : [NullCard(text: '暂无农机信息!')],
  74. ))
  75. ]));
  76. }
  77. }