1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768
  1. import 'package:farmer_client/models/app.dart';
  2. import 'package:farmer_client/models/entities/CardInfo.dart';
  3. import 'package:farmer_client/widgets/layout/BasicPage.dart';
  4. import 'package:flutter/material.dart';
  5. import 'package:flutter_easyloading/flutter_easyloading.dart';
  6. import 'package:fluttertoast/fluttertoast.dart';
  7. import 'package:get/get.dart';
  8. import '../../../services/homeAPI.dart';
  9. import 'widgets/detail.dart';
  10. class MachineryDetailPage extends BasicPage {
  11. String markId = '';
  12. String marKm = '';
  13. final machineryInfoContent = Rx<CardInfo>(CardInfo()); //全部详情
  14. final machineryListBanner = Rx<List<BannerImageList>>([]); //banner轮播
  15. final machineryListContent = Rx<List<ContentImageList>>([]); //图文详情
  16. final appController = AppController.t;
  17. // 响应预约事件
  18. void handleClick() {
  19. Get.toNamed('/orderConfirmation',
  20. arguments: {'item': machineryInfoContent()});
  21. }
  22. @override
  23. void beforeShow() {
  24. // TODO: implement onMounted
  25. super.beforeShow();
  26. if (Get.arguments['id'] != null) {
  27. EasyLoading.show(status: '数据加载中...');
  28. markId = Get.arguments['id'];
  29. marKm = Get.arguments['km'];
  30. print(marKm);
  31. getMachineryInfo(
  32. markId, appController.locationStr ?? '112.091892,32.690712', true)
  33. .then((value) {
  34. machineryInfoContent(CardInfo.fromJson(value));
  35. machineryListBanner(machineryInfoContent().imagesList!);
  36. machineryListContent(machineryInfoContent().contentList!);
  37. EasyLoading.dismiss();
  38. }).catchError((error) {
  39. EasyLoading.dismiss();
  40. Fluttertoast.showToast(msg: error.error['message']);
  41. });
  42. }
  43. print("----show----detail page--------------");
  44. }
  45. @override
  46. void beforeHide() {
  47. // TODO: implement beforeHide
  48. super.beforeHide();
  49. print("-----hide---detail page--------------");
  50. }
  51. @override
  52. Widget builder(BuildContext context) {
  53. naviTitle = "查看详情";
  54. return Obx(() => page(
  55. context: context,
  56. handleClick: handleClick,
  57. km: marKm,
  58. item: machineryInfoContent.value,
  59. bnnerItem: machineryListBanner.value,
  60. contentItem: machineryListContent.value));
  61. }
  62. }