[baozhangchao] 3 年前
父节点
当前提交
73acc2259e

+ 1
- 1
lib/models/entities/CardInfo.dart 查看文件

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

+ 20
- 11
lib/pages/OrderConfirmation/index.dart 查看文件

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

13
   final machineryListContent= Rx<List<ContentImageList>>([]);//图文详情
13
   final machineryListContent= Rx<List<ContentImageList>>([]);//图文详情
14
   // 响应预约事件
14
   // 响应预约事件
15
   void handleClick() {
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
      marKm = Get.arguments['km'];
26
      marKm = Get.arguments['km'];
27
      print(marKm);
27
      print(marKm);
28
       getMachineryInfo(markId, '122.08400000000002,37.421998333333335', true).then((value) {
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 查看文件

13
   final machineryInfoContent = Rx<CardInfo>(CardInfo());//全部详情
13
   final machineryInfoContent = Rx<CardInfo>(CardInfo());//全部详情
14
   // 响应预约事件
14
   // 响应预约事件
15
   void handleClick() {
15
   void handleClick() {
16
-    Get.toNamed("/machineryDetail");
16
+    // Get.toNamed("/machineryDetail");
17
+    Get.toNamed('/orderConfirmation',arguments: {'item':machineryInfoContent()});
18
+
17
   }
19
   }
18
 
20
 
19
   @override
21
   @override
25
       marKm = Get.arguments['km'];
27
       marKm = Get.arguments['km'];
26
       print(marKm);
28
       print(marKm);
27
       getMachineryInfo(markId, '122.08400000000002,37.421998333333335', true).then((value) {
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
   @override
45
   @override
44
   Widget builder(BuildContext context) {
46
   Widget builder(BuildContext context) {
45
     naviTitle = "查看地图";
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 查看文件

25
         DefLayout.card(
25
         DefLayout.card(
26
             top: DefLayout.headHeight - DefLayout.offset,
26
             top: DefLayout.headHeight - DefLayout.offset,
27
             height: DefLayout.headHeight,
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
         DefLayout.card(
34
         DefLayout.card(
31
             top: (DefLayout.headHeight - DefLayout.offset) * 2,
35
             top: (DefLayout.headHeight - DefLayout.offset) * 2,

+ 30
- 15
lib/pages/orderInfo/index.dart 查看文件

3
 import 'package:flutter_screenutil/flutter_screenutil.dart';
3
 import 'package:flutter_screenutil/flutter_screenutil.dart';
4
 import 'package:fluttertoast/fluttertoast.dart';
4
 import 'package:fluttertoast/fluttertoast.dart';
5
 import 'package:get/get.dart';
5
 import 'package:get/get.dart';
6
+import 'package:farmer_client/widgets/Modal.dart' as modal;
6
 
7
 
7
 import '../../models/entities/OrderInfoModel.dart';
8
 import '../../models/entities/OrderInfoModel.dart';
8
 import '../../services/orderAPI.dart';
9
 import '../../services/orderAPI.dart';
18
 
19
 
19
 
20
 
20
 class OrderPageInfo extends BasicPage {
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
   final orderInfoContent = Rx<OrderInfoModel>(OrderInfoModel());
25
   final orderInfoContent = Rx<OrderInfoModel>(OrderInfoModel());
26
 
26
 
27
   // orderStates
27
   // orderStates
31
     // TODO: implement beforeShow
31
     // TODO: implement beforeShow
32
     super.beforeShow();
32
     super.beforeShow();
33
     if (Get.arguments['id'] != null) {
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
   @override
46
   @override
46
   Widget builder(BuildContext context) {
47
   Widget builder(BuildContext context) {
47
     naviTitle = '订单详情';
48
     naviTitle = '订单详情';
50
       children: [
51
       children: [
51
         Obx(() =>
52
         Obx(() =>
52
             OrderInfoCard(
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
         // orderStateText=='已完成'?  Text('')
60
         // orderStateText=='已完成'?  Text('')
60
         //     :orderStateText== '进行中' ?Text('')
61
         //     :orderStateText== '进行中' ?Text('')
61
         //     :orderStateText=='待评价'? DefaultButton(
62
         //     :orderStateText=='待评价'? DefaultButton(
110
 }
111
 }
111
 
112
 
112
 class _BottomWidget extends StatelessWidget {
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
   @override
130
   @override
116
   Widget build(BuildContext context) {
131
   Widget build(BuildContext context) {
132
                   height: 49.h,
147
                   height: 49.h,
133
               child: ElevatedButton(
148
               child: ElevatedButton(
134
                 onPressed: () {
149
                 onPressed: () {
135
-                  Get.back();
150
+                  _orderDeletels();
136
                 },
151
                 },
137
                 child: const Text(
152
                 child: const Text(
138
                   "取消",
153
                   "取消",

+ 13
- 0
lib/services/orderAPI.dart 查看文件

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 查看文件

129
                     child: ElevatedButton(
129
                     child: ElevatedButton(
130
                       onPressed: () {
130
                       onPressed: () {
131
                         Get.toNamed('/orderConfirmation',
131
                         Get.toNamed('/orderConfirmation',
132
-                            arguments: {'machineryId': item.machineryId});
132
+                            arguments: {'id':item.machineryId});
133
                       },
133
                       },
134
                       child: const Text(
134
                       child: const Text(
135
                         "预约",
135
                         "预约",

+ 1
- 1
lib/widgets/OrderInfoCard.dart 查看文件

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

+ 1
- 1
lib/widgets/OrderListCard.dart 查看文件

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