[baozhangchao] 3 years ago
parent
commit
73acc2259e

+ 1
- 1
lib/models/entities/CardInfo.dart View File

@@ -91,7 +91,7 @@ class ContentImageList {
91 91
   String? contentType;
92 92
   String? createDate;
93 93
   String? extId;
94
-  String? sort;
94
+  num? sort;
95 95
   String? targetId;
96 96
   String? targetType;
97 97
   ContentImageList();

+ 20
- 11
lib/pages/OrderConfirmation/index.dart View File

@@ -8,13 +8,15 @@ import 'package:fluttertoast/fluttertoast.dart';
8 8
 import 'package:get/get.dart';
9 9
 import 'package:intl/intl.dart';
10 10
 
11
+import '../../models/entities/CardListModel.dart';
11 12
 import '../../models/entities/OrderInfoModel.dart';
13
+import '../../services/homeAPI.dart';
12 14
 import '../../services/orderAPI.dart';
13 15
 
14 16
 class OrderConfirmation extends BasicPage {
15 17
   TextEditingController _unameController = TextEditingController();
16 18
   GlobalKey _formKey = GlobalKey<FormState>();
17
-
19
+  String markId = '';
18 20
   final selectDate = Rx<DateTime>(DateTime.now()); //选择的时间
19 21
   final workingArea = Rx<int>(0);
20 22
   AddressController addressController = AddressController.t;
@@ -26,8 +28,16 @@ class OrderConfirmation extends BasicPage {
26 28
     // TODO: implement beforeShow
27 29
     super.beforeShow();
28 30
     if(Get.arguments['item']!=null){
29
-      item.value=Get.arguments['item'];
31
+      item(Get.arguments['item']);
30 32
     }else{
33
+      markId=Get.arguments['id'];
34
+      getMachineryInfo(markId, '122.08400000000002,37.421998333333335', true).then((value) {
35
+        item(CardInfo.fromJson(value));
36
+
37
+      });
38
+
39
+      // item(CardInfo.fromJson(Get.arguments['item']));
40
+
31 41
       return;
32 42
     }
33 43
   }
@@ -53,12 +63,11 @@ class OrderConfirmation extends BasicPage {
53 63
         'appointmentDate': '${DateFormat("yyyy-MM-dd").format(selectDate.value)} 08:00:00',
54 64
       };
55 65
       generateOrder(data).then((value) {
56
-        orderInfo.value=OrderInfoModel.fromJson(value);
66
+        orderInfo(OrderInfoModel.fromJson(value));
57 67
         Fluttertoast.showToast(
58 68
             msg: '预约成功'
59 69
         );
60
-        Get.to('/OrderInfoCard',arguments: {'id':orderInfo.value.orderId});
61
-
70
+        Get.offNamed('/orderPageInfo',arguments: {'id':orderInfo().orderId});
62 71
 
63 72
       });
64 73
       //验证通过提交数据
@@ -88,7 +97,7 @@ class OrderConfirmation extends BasicPage {
88 97
               ),
89 98
             ),
90 99
             TextFormField(
91
-              // autofocus: true,
100
+              autofocus: false,
92 101
               keyboardType: TextInputType.number,
93 102
               controller: _unameController,
94 103
               decoration: const InputDecoration(
@@ -108,7 +117,7 @@ class OrderConfirmation extends BasicPage {
108 117
                 hintText: "请输入具体面积(公顷)",
109 118
               ),
110 119
               onChanged: (e) {
111
-                workingArea.value = int.parse(e);
120
+                workingArea(int.parse(e));
112 121
               },
113 122
               // 校验用户名
114 123
               validator: (v) {
@@ -152,19 +161,19 @@ class OrderConfirmation extends BasicPage {
152 161
                             helpText: '请选择作业开始时间',
153 162
                             cancelText: '取消',
154 163
                             confirmText: '确定',
155
-                            initialDate: selectDate.value == null
164
+                            initialDate: selectDate() == null
156 165
                                 ? DateTime.now()
157
-                                : selectDate.value,
166
+                                : selectDate(),
158 167
                             firstDate: DateTime.now(),
159 168
                             lastDate: DateTime(2030),
160 169
                           );
161
-                          selectDate.value = handleChnage!;
170
+                          selectDate(handleChnage!);
162 171
                           print('${selectDate}+');
163 172
                         },
164 173
                         child: Obx(()=>
165 174
                             Text(selectDate == null
166 175
                                 ? '请选择日期'
167
-                                : '${DateFormat("yyyy-MM-dd").format(selectDate.value)}'),
176
+                                : '${DateFormat("yyyy-MM-dd").format(selectDate())}'),
168 177
                         )
169 178
 
170 179
                       ),

+ 4
- 4
lib/pages/machinery/detail/index.dart View File

@@ -13,7 +13,7 @@ class MachineryDetailPage extends BasicPage {
13 13
   final machineryListContent= Rx<List<ContentImageList>>([]);//图文详情
14 14
   // 响应预约事件
15 15
   void handleClick() {
16
-    Get.toNamed('/orderConfirmation',arguments: {'item':machineryInfoContent.value});
16
+    Get.toNamed('/orderConfirmation',arguments: {'item':machineryInfoContent()});
17 17
   }
18 18
 
19 19
 
@@ -26,9 +26,9 @@ class MachineryDetailPage extends BasicPage {
26 26
      marKm = Get.arguments['km'];
27 27
      print(marKm);
28 28
       getMachineryInfo(markId, '122.08400000000002,37.421998333333335', true).then((value) {
29
-        machineryInfoContent.value=CardInfo.fromJson(value);
30
-        machineryListBanner.value=machineryInfoContent.value.imagesList!;
31
-        machineryListContent.value=machineryInfoContent.value.contentList!;
29
+        machineryInfoContent(CardInfo.fromJson(value));
30
+        machineryListBanner(machineryInfoContent().imagesList!);
31
+        machineryListContent(machineryInfoContent().contentList!);
32 32
 
33 33
       });
34 34
 

+ 5
- 3
lib/pages/machinery/map/index.dart View File

@@ -13,7 +13,9 @@ class MachineryMapPage extends BasicPage {
13 13
   final machineryInfoContent = Rx<CardInfo>(CardInfo());//全部详情
14 14
   // 响应预约事件
15 15
   void handleClick() {
16
-    Get.toNamed("/machineryDetail");
16
+    // Get.toNamed("/machineryDetail");
17
+    Get.toNamed('/orderConfirmation',arguments: {'item':machineryInfoContent()});
18
+
17 19
   }
18 20
 
19 21
   @override
@@ -25,7 +27,7 @@ class MachineryMapPage extends BasicPage {
25 27
       marKm = Get.arguments['km'];
26 28
       print(marKm);
27 29
       getMachineryInfo(markId, '122.08400000000002,37.421998333333335', true).then((value) {
28
-        machineryInfoContent.value=CardInfo.fromJson(value);
30
+        machineryInfoContent(CardInfo.fromJson(value));
29 31
 
30 32
       });
31 33
 
@@ -43,7 +45,7 @@ class MachineryMapPage extends BasicPage {
43 45
   @override
44 46
   Widget builder(BuildContext context) {
45 47
     naviTitle = "查看地图";
46
-    return Obx(()=>page(context: context, handleClick: handleClick,item: machineryInfoContent.value,km: marKm));
48
+    return Obx(()=>page(context: context, handleClick: handleClick,item: machineryInfoContent(),km: marKm));
47 49
   }
48 50
   
49 51
 }

+ 5
- 1
lib/pages/machinery/map/widgets/detail.dart View File

@@ -25,7 +25,11 @@ Widget page({required CardInfo item,required String km, required BuildContext co
25 25
         DefLayout.card(
26 26
             top: DefLayout.headHeight - DefLayout.offset,
27 27
             height: DefLayout.headHeight,
28
-            child: Image.network(item.thumb.toString(), fit: BoxFit.cover)
28
+            child: Image.network(item.thumb.toString(), fit: BoxFit.cover,
29
+            errorBuilder:  (ctx, exception, stackTrace) {
30
+              return Container(); //THE WIDGET YOU WANT TO SHOW IF URL NOT RETURN IMAGE
31
+            },
32
+            ),
29 33
         ),
30 34
         DefLayout.card(
31 35
             top: (DefLayout.headHeight - DefLayout.offset) * 2,

+ 30
- 15
lib/pages/orderInfo/index.dart View File

@@ -3,6 +3,7 @@ import 'package:flutter/material.dart';
3 3
 import 'package:flutter_screenutil/flutter_screenutil.dart';
4 4
 import 'package:fluttertoast/fluttertoast.dart';
5 5
 import 'package:get/get.dart';
6
+import 'package:farmer_client/widgets/Modal.dart' as modal;
6 7
 
7 8
 import '../../models/entities/OrderInfoModel.dart';
8 9
 import '../../services/orderAPI.dart';
@@ -18,10 +19,9 @@ import '../../widgets/layout/BasicPage.dart';
18 19
 
19 20
 
20 21
 class OrderPageInfo extends BasicPage {
21
-  String id = '';
22
-  String orderStateText = '';
23
-  late Color orderStateColor;
24
-
22
+  final id=Rx<String>('');
23
+  final orderStateText=Rx<String>('待支付');
24
+  final orderStateColor=Rx<Color>(Colors.black);
25 25
   final orderInfoContent = Rx<OrderInfoModel>(OrderInfoModel());
26 26
 
27 27
   // orderStates
@@ -31,17 +31,18 @@ class OrderPageInfo extends BasicPage {
31 31
     // TODO: implement beforeShow
32 32
     super.beforeShow();
33 33
     if (Get.arguments['id'] != null) {
34
-      id = Get.arguments['id'];
34
+      id(Get.arguments['id']);
35 35
 
36
-      orderStateText = Get.arguments['title'];
37
-      orderStateColor = Get.arguments['styleColor'];
36
+      orderStateText(Get.arguments['title']);
37
+      orderStateColor(Get.arguments['styleColor']);
38 38
 
39
-      orderInfo(id).then((value) {
40
-        orderInfoContent.value = OrderInfoModel.fromJson(value);
39
+      orderInfo(id()).then((value) {
40
+        orderInfoContent(OrderInfoModel.fromJson(value));
41 41
       });
42 42
     }
43 43
   }
44 44
 
45
+
45 46
   @override
46 47
   Widget builder(BuildContext context) {
47 48
     naviTitle = '订单详情';
@@ -50,12 +51,12 @@ class OrderPageInfo extends BasicPage {
50 51
       children: [
51 52
         Obx(() =>
52 53
             OrderInfoCard(
53
-                item: orderInfoContent.value,
54
-                orderStateText: orderStateText,
55
-                orderStateColor: orderStateColor
54
+                item: orderInfoContent(),
55
+                orderStateText: orderStateText(),
56
+                orderStateColor: orderStateColor()
56 57
             ),
57 58
         ),
58
-        _BottomWidget()
59
+        Obx(()=>_BottomWidget(id: id()))
59 60
         // orderStateText=='已完成'?  Text('')
60 61
         //     :orderStateText== '进行中' ?Text('')
61 62
         //     :orderStateText=='待评价'? DefaultButton(
@@ -110,7 +111,21 @@ class OrderPageInfo extends BasicPage {
110 111
 }
111 112
 
112 113
 class _BottomWidget extends StatelessWidget {
113
-  const _BottomWidget({Key? key}) : super(key: key);
114
+  final id;
115
+  const _BottomWidget({Key? key, required this.id}) : super(key: key);
116
+
117
+
118
+  void _orderDeletels (){
119
+    orderDelete(id).then((value) {
120
+      Fluttertoast.showToast(
121
+          msg: '订单取消成功!'
122
+      );
123
+    });
124
+
125
+
126
+  }
127
+
128
+
114 129
 
115 130
   @override
116 131
   Widget build(BuildContext context) {
@@ -132,7 +147,7 @@ class _BottomWidget extends StatelessWidget {
132 147
                   height: 49.h,
133 148
               child: ElevatedButton(
134 149
                 onPressed: () {
135
-                  Get.back();
150
+                  _orderDeletels();
136 151
                 },
137 152
                 child: const Text(
138 153
                   "取消",

+ 13
- 0
lib/services/orderAPI.dart View File

@@ -48,3 +48,16 @@ Future generateOrder(item)async{
48 48
 }
49 49
 
50 50
 
51
+
52
+/**
53
+ * 删除订单
54
+ * @param {*} data
55
+ * @returns
56
+ */
57
+Future orderDelete(String id)async{
58
+  return request('/order/$id',options: Options(method: 'DELETE')).catchError((error) =>
59
+  { Fluttertoast.showToast(
60
+      msg: error.error['message']
61
+  ),});
62
+
63
+}

+ 1
- 1
lib/widgets/CarsCard.dart View File

@@ -129,7 +129,7 @@ class _CarsCardPage extends State<CarsCard> {
129 129
                     child: ElevatedButton(
130 130
                       onPressed: () {
131 131
                         Get.toNamed('/orderConfirmation',
132
-                            arguments: {'machineryId': item.machineryId});
132
+                            arguments: {'id':item.machineryId});
133 133
                       },
134 134
                       child: const Text(
135 135
                         "预约",

+ 1
- 1
lib/widgets/OrderInfoCard.dart View File

@@ -193,7 +193,7 @@ class OrderInfoCard extends StatelessWidget {
193 193
                                     Color(0xFFFA7878),
194 194
                                     Color(0xFFB61515),
195 195
                                   ],
196
-                                  child: const Text('8880',
196
+                                  child:  Text(( (item.charges??0)/100).toString(),
197 197
                                       style: TextStyle(
198 198
                                           color: Color(0xffB61515),
199 199
                                           fontSize: 16,

+ 1
- 1
lib/widgets/OrderListCard.dart View File

@@ -288,7 +288,7 @@ class _OrderListCardPages extends State<OrderListCard> {
288 288
                                 text:  TextSpan(
289 289
                                     children: <InlineSpan>[
290 290
                                       TextSpan(
291
-                                          text:( item.charges!/100).toString(),
291
+                                          text:( (item.charges??0)/100).toString(),
292 292
                                           style: TextStyle(
293 293
                                             fontSize: 16,
294 294
                                             fontWeight: FontWeight.bold,