李志伟 3 gadus atpakaļ
vecāks
revīzija
6dda980dfc

+ 8
- 0
lib/models/addressController.dart Parādīt failu

@@ -0,0 +1,8 @@
1
+
2
+import 'package:farmer_client/models/entities/Address.dart';
3
+import 'package:get/get.dart';
4
+
5
+class AddressController extends GetxController{
6
+  static AddressController t = Get.find();
7
+  final address=Rx<Address>(Address.fromJson({'address':'选择位置'}));
8
+}

+ 2
- 0
lib/models/index.dart Parādīt failu

@@ -1,6 +1,7 @@
1 1
 
2 2
 export 'app.dart';
3 3
 
4
+import 'package:farmer_client/models/addressController.dart';
4 5
 import 'package:farmer_client/models/app.dart';
5 6
 import 'package:get/get.dart';
6 7
 
@@ -8,6 +9,7 @@ class AppBindings implements Bindings {
8 9
   @override
9 10
   void dependencies() {
10 11
     Get.put(AppController());
12
+    Get.put(AddressController());
11 13
   }
12 14
 }
13 15
 

+ 25
- 57
lib/pages/OrderConfirmation/index.dart Parādīt failu

@@ -1,53 +1,25 @@
1
+import 'package:farmer_client/models/addressController.dart';
2
+import 'package:farmer_client/widgets/layout/BasicPage.dart';
1 3
 import 'package:flutter/material.dart';
2 4
 import 'package:flutter/services.dart';
3 5
 import 'package:flutter_screenutil/flutter_screenutil.dart';
4 6
 import 'package:get/get.dart';
5
-import 'package:get_storage/get_storage.dart';
6 7
 import 'package:intl/intl.dart';
7 8
 
8
-class OrderConfirmation extends StatefulWidget {
9
-  const OrderConfirmation({Key? key}) : super(key: key);
10
-
11
-  @override
12
-  State<OrderConfirmation> createState() => _OrderConfirmationState();
13
-}
14
-
15
-class _OrderConfirmationState extends State<OrderConfirmation> {
9
+class OrderConfirmation extends BasicPage {
16 10
   TextEditingController _unameController = TextEditingController();
17
-  TextEditingController _pwdController = TextEditingController();
18 11
   GlobalKey _formKey = GlobalKey<FormState>();
19 12
 
20
-  var selectDate; //选择的时间
21
-  var workingArea;
22
-  String address = '请选择详细地址';
23
-  @override
24
-  void initState() {
25
-    super.initState();
26
-    //到底哪里错了 唉
27
-    // if (GetStorage().read("address") != null) {
28
-    //   address = GetStorage().read("address").address;
29
-    // }
30
-  }
31
-//  20:59:59
13
+  final selectDate = Rx<DateTime>(DateTime.now()); //选择的时间
14
+  final workingArea = Rxn(0);
15
+  AddressController addressController = AddressController.t;
32 16
 
33 17
   @override
34
-  Widget build(BuildContext context) {
35
-    return Scaffold(
36
-      resizeToAvoidBottomInset: false,
37
-      appBar: AppBar(
38
-        elevation: 0,
39
-        centerTitle: true,
40
-        backgroundColor: Colors.white,
41
-        title: Text(
42
-          '预约',
43
-          style: TextStyle(
44
-              color: Colors.black,
45
-              fontSize: 17.sp,
46
-              letterSpacing: 2,
47
-              fontWeight: FontWeight.bold),
48
-        ),
49
-      ),
50
-      body: Form(
18
+  Widget builder(BuildContext context) {
19
+    naviTitle = '咨讯';
20
+    return Container(
21
+      height: 700.h,
22
+      child: Form(
51 23
         key: _formKey, //设置globalKey,用于后面获取FormState
52 24
         autovalidateMode: AutovalidateMode.onUserInteraction,
53 25
         child: Column(
@@ -84,9 +56,7 @@ class _OrderConfirmationState extends State<OrderConfirmation> {
84 56
                 hintText: "请输入具体面积(公顷)",
85 57
               ),
86 58
               onChanged: (e) {
87
-                setState(() {
88
-                  workingArea = e;
89
-                });
59
+                workingArea.value = e as int?;
90 60
               },
91 61
               // 校验用户名
92 62
               validator: (v) {
@@ -130,20 +100,18 @@ class _OrderConfirmationState extends State<OrderConfirmation> {
130 100
                             helpText: '请选择作业开始时间',
131 101
                             cancelText: '取消',
132 102
                             confirmText: '确定',
133
-                            initialDate: selectDate == null
103
+                            initialDate: selectDate.value == null
134 104
                                 ? DateTime.now()
135
-                                : selectDate,
105
+                                : selectDate.value,
136 106
                             firstDate: DateTime.now(),
137 107
                             lastDate: DateTime(2030),
138 108
                           );
139
-                          setState(() {
140
-                            selectDate = handleChnage;
141
-                            print('${selectDate}+');
142
-                          });
109
+                          selectDate.value = handleChnage!;
110
+                          print('${selectDate}+');
143 111
                         },
144 112
                         child: Text(selectDate == null
145 113
                             ? '请选择日期'
146
-                            : '${DateFormat("yyyy-MM-dd").format(selectDate)}'),
114
+                            : '${DateFormat("yyyy-MM-dd").format(selectDate.value)}'),
147 115
                       ),
148 116
                     )
149 117
                   ],
@@ -186,19 +154,19 @@ class _OrderConfirmationState extends State<OrderConfirmation> {
186 154
                         },
187 155
                         child: Container(
188 156
                           width: 290.w,
189
-                          child: Text(
190
-                            address,
191
-                            softWrap: true,
192
-                            maxLines: 1,
193
-                            textAlign: TextAlign.left,
194
-                            overflow: TextOverflow.ellipsis,
195
-                          ),
157
+                          child: Obx(() => Text(
158
+                                addressController.address.value.address
159
+                                    .toString(),
160
+                                softWrap: true,
161
+                                maxLines: 1,
162
+                                textAlign: TextAlign.left,
163
+                                overflow: TextOverflow.ellipsis,
164
+                              )),
196 165
                         ),
197 166
                       ))
198 167
                 ],
199 168
               ),
200 169
             ),
201
-
202 170
             Spacer(),
203 171
             Container(
204 172
               alignment: Alignment.bottomCenter,

+ 3
- 9
lib/pages/addressList/index.dart Parādīt failu

@@ -1,3 +1,4 @@
1
+import 'package:farmer_client/models/addressController.dart';
1 2
 import 'package:farmer_client/models/entities/Address.dart';
2 3
 import 'package:farmer_client/pages/addressList/widget/AddressCard.dart';
3 4
 import 'package:farmer_client/widgets/DefaultButton.dart';
@@ -6,10 +7,10 @@ import 'package:flutter/material.dart';
6 7
 import 'package:flutter_screenutil/flutter_screenutil.dart';
7 8
 import 'package:fluttertoast/fluttertoast.dart';
8 9
 import 'package:get/get.dart';
9
-import 'package:get_storage/get_storage.dart';
10 10
 
11 11
 class AddressList extends BasicPage {
12 12
   bool isBack = false;
13
+  AddressController addressController=AddressController.t;
13 14
 
14 15
   @override
15 16
   void beforeShow() {
@@ -69,14 +70,7 @@ class AddressList extends BasicPage {
69 70
                             onDelete(e);
70 71
                           },
71 72
                           onBack: () {
72
-                            if (GetStorage().read('address') == null) {
73
-                              GetStorage()
74
-                                  .write('address', addressList.value[e]);
75
-                            } else {
76
-                              GetStorage().remove('address');
77
-                              GetStorage()
78
-                                  .write('address', addressList.value[e]);
79
-                            }
73
+                            addressController.address.value=addressList.value[e];
80 74
                             Get.back();
81 75
                           },
82 76
                         ),

+ 15
- 19
lib/pages/home/widgets/home/index.dart Parādīt failu

@@ -10,23 +10,20 @@ import 'package:farmer_client/models/entities/Banners.dart';
10 10
 import '../../../MoreCars/index.dart';
11 11
 
12 12
 class HomePage extends StatefulWidget {
13
-  const HomePage({Key? key, }) : super(key: key);
14
-
13
+  const HomePage({
14
+    Key? key,
15
+  }) : super(key: key);
15 16
 
16 17
   @override
17 18
   _HomePageState createState() => _HomePageState();
18 19
 }
19 20
 
20
-
21 21
 class _HomePageState extends State<HomePage> {
22 22
   final CarouselController _controller = CarouselController();
23 23
   List<Banners> bannerList = [];
24 24
 
25 25
   List<CardInfo> machineryLists = [];
26 26
 
27
-
28
-
29
-
30 27
   @override
31 28
   void initState() {
32 29
     super.initState();
@@ -52,7 +49,6 @@ class _HomePageState extends State<HomePage> {
52 49
 
53 50
   @override
54 51
   Widget build(BuildContext context) {
55
-
56 52
     return Container(
57 53
       alignment: Alignment.center,
58 54
       padding: EdgeInsets.fromLTRB(15.w, 0, 15.w, 0),
@@ -63,13 +59,14 @@ class _HomePageState extends State<HomePage> {
63 59
           ),
64 60
           Container(
65 61
             margin: EdgeInsets.fromLTRB(0, 15, 0, 0),
66
-            child:
67
-            CarouselSlider(
68
-              items: bannerList.map((item) => Container(
69
-                child: Center(
70
-                    child: Image.network(item.thumb.toString(),
71
-                        fit: BoxFit.cover, width: 350.w)),
72
-              )).toList(),
62
+            child: CarouselSlider(
63
+              items: bannerList
64
+                  .map((item) => Container(
65
+                        child: Center(
66
+                            child: Image.network(item.thumb.toString(),
67
+                                fit: BoxFit.cover, width: 350.w)),
68
+                      ))
69
+                  .toList(),
73 70
               options: CarouselOptions(
74 71
                 autoPlay: true,
75 72
                 enlargeCenterPage: false, //图片中心放大
@@ -94,7 +91,7 @@ class _HomePageState extends State<HomePage> {
94 91
                               padding: EdgeInsets.fromLTRB(0, 0, 8, 0),
95 92
                               child: Image(
96 93
                                 image:
97
-                                AssetImage('images/icons/carsListImga.png'),
94
+                                    AssetImage('images/icons/carsListImga.png'),
98 95
                                 fit: BoxFit.cover,
99 96
                                 width: 20.w,
100 97
                               ),
@@ -121,11 +118,10 @@ class _HomePageState extends State<HomePage> {
121 118
                     ],
122 119
                   ),
123 120
                   Column(
124
-                    children: machineryLists.map((item) =>CarsCard(item:item)).toList(),
121
+                    children: machineryLists
122
+                        .map((item) => CarsCard(item: item))
123
+                        .toList(),
125 124
                   )
126
-
127
-
128
-
129 125
                 ],
130 126
               )),
131 127
         ],

+ 40
- 49
lib/pages/login/login.dart Parādīt failu

@@ -12,15 +12,13 @@ import '../../models/entities/person.dart';
12 12
 import '../../services/user.dart';
13 13
 import '../../widgets/Cell.dart';
14 14
 
15
-
16 15
 class MyRouteLogin extends StatefulWidget {
17 16
   @override
18 17
   State<MyRouteLogin> createState() => _RouteLogin();
19 18
 }
20 19
 
21 20
 class _RouteLogin extends State<MyRouteLogin> {
22
-
23
-  var  userInfo= AppController.t.user;
21
+  var userInfo = AppController.t.user;
24 22
 
25 23
   bool isButtonEnable = true; //按钮状态  是否可点击
26 24
   String buttonText = '发送验证码'; //初始文本
@@ -28,7 +26,7 @@ class _RouteLogin extends State<MyRouteLogin> {
28 26
   var timer; //倒计时的计时器
29 27
   TextEditingController mController = TextEditingController();
30 28
 
31
-//获取验证码
29
+  //获取验证码
32 30
   void _initTimer() {
33 31
     timer = Timer.periodic(Duration(seconds: 1), (Timer timer) {
34 32
       count--;
@@ -45,9 +43,6 @@ class _RouteLogin extends State<MyRouteLogin> {
45 43
     });
46 44
   }
47 45
 
48
-
49
-
50
-
51 46
   @override
52 47
   void initState() {
53 48
     super.initState();
@@ -68,24 +63,21 @@ class _RouteLogin extends State<MyRouteLogin> {
68 63
     ///销毁
69 64
   }
70 65
 
71
-// -------------逻辑分割-------------------------------------------
66
+  // -------------逻辑分割-------------------------------------------
72 67
   var handlePhones = '';
73 68
   var handleCodes = '';
74 69
   var userContent = {'phones': '', 'code': ''};
75 70
   bool _newValue = false;
76 71
 
77
-
78 72
   void _handlePhone(e) => {
79
-    setState(() => {handlePhones = e})
80
-  };
73
+        setState(() => {handlePhones = e})
74
+      };
81 75
 
82 76
   void _handleCode(e) => {
83
-    setState(() => {handleCodes = e})
84
-  };
85
-
77
+        setState(() => {handleCodes = e})
78
+      };
86 79
 
87
-
88
-// 获取验证码
80
+  // 获取验证码
89 81
   void _buttonClickListen() {
90 82
     setState(() {
91 83
       if (isButtonEnable) {
@@ -99,19 +91,20 @@ class _RouteLogin extends State<MyRouteLogin> {
99 91
       }
100 92
     });
101 93
   }
102
-//登陆按钮
103
-  void _handelSubmit(){
104
-    if(handleCodes==''||handlePhones==''){
94
+
95
+  //登陆按钮
96
+  void _handelSubmit() {
97
+    if (handleCodes == '' || handlePhones == '') {
105 98
       Fluttertoast.showToast(msg: '请输入验证码或手机号!');
106
-    }else{
107
-      if(_newValue){
108
-        userLogin(handlePhones,handleCodes).then((value) {
99
+    } else {
100
+      if (_newValue) {
101
+        userLogin(handlePhones, handleCodes).then((value) {
109 102
           userInfo(Person.fromJson(value['person']));
110 103
           print('已同意协议');
111 104
 
112 105
           Get.off(Home());
113 106
         });
114
-      }else{
107
+      } else {
115 108
         Fluttertoast.showToast(msg: '请阅读并同意相关隐私政策!');
116 109
       }
117 110
     }
@@ -129,23 +122,24 @@ class _RouteLogin extends State<MyRouteLogin> {
129 122
             fit: BoxFit.cover,
130 123
           ),
131 124
         ),
132
-
133
-        child:  Container(
125
+        child: Container(
134 126
           child: Column(
135 127
             mainAxisAlignment: MainAxisAlignment.end,
136 128
             crossAxisAlignment: CrossAxisAlignment.start,
137
-            children:[
138
-              Padding(padding: EdgeInsets.fromLTRB(15, 0, 0, 5),
139
-              child:    const Text(
140
-                '您好!',
141
-                style: TextStyle(
142
-                  fontWeight: FontWeight.bold,
143
-                  fontSize: 33,
129
+            children: [
130
+              Padding(
131
+                padding: EdgeInsets.fromLTRB(15, 0, 0, 5),
132
+                child: const Text(
133
+                  '您好!',
134
+                  style: TextStyle(
135
+                    fontWeight: FontWeight.bold,
136
+                    fontSize: 33,
137
+                  ),
144 138
                 ),
145 139
               ),
146
-              ),
147
-              Padding(padding: EdgeInsets.fromLTRB(15, 0, 0, 0),
148
-                child:    const Text(
140
+              Padding(
141
+                padding: EdgeInsets.fromLTRB(15, 0, 0, 0),
142
+                child: const Text(
149 143
                   '欢迎进入农户端应用!',
150 144
                   style: TextStyle(
151 145
                     fontWeight: FontWeight.bold,
@@ -153,9 +147,8 @@ class _RouteLogin extends State<MyRouteLogin> {
153 147
                   ),
154 148
                 ),
155 149
               ),
156
-
157 150
               Cell(
158
-                // margin: EdgeInsets.symmetric(horizontal: 13.w),
151
+                  // margin: EdgeInsets.symmetric(horizontal: 13.w),
159 152
                   margin: const EdgeInsets.fromLTRB(13, 43, 10, 0),
160 153
                   header: Text(
161 154
                     "+86",
@@ -172,7 +165,7 @@ class _RouteLogin extends State<MyRouteLogin> {
172 165
                     decoration: const InputDecoration(
173 166
                       isCollapsed: true,
174 167
                       contentPadding:
175
-                      EdgeInsets.symmetric(vertical: 8, horizontal: 16),
168
+                          EdgeInsets.symmetric(vertical: 8, horizontal: 16),
176 169
                       labelText: "请输入手机号码",
177 170
                       counterText: '', //去掉计数
178 171
                       border: InputBorder.none,
@@ -199,11 +192,11 @@ class _RouteLogin extends State<MyRouteLogin> {
199 192
                         backgroundColor: isButtonEnable
200 193
                             ? MaterialStateProperty.all(const Color(0xFFFF703B))
201 194
                             : MaterialStateProperty.all(
202
-                            const Color(0xFFCBCBCB)),
195
+                                const Color(0xFFCBCBCB)),
203 196
                         shape: MaterialStateProperty.all(
204 197
                             const RoundedRectangleBorder(
205 198
                                 borderRadius:
206
-                                BorderRadius.all(Radius.circular(10)))),
199
+                                    BorderRadius.all(Radius.circular(10)))),
207 200
                       ),
208 201
                     ),
209 202
                   )),
@@ -228,7 +221,7 @@ class _RouteLogin extends State<MyRouteLogin> {
228 221
                   decoration: const InputDecoration(
229 222
                     isCollapsed: true,
230 223
                     contentPadding:
231
-                    EdgeInsets.symmetric(vertical: 8, horizontal: 16),
224
+                        EdgeInsets.symmetric(vertical: 8, horizontal: 16),
232 225
                     labelText: "请输入验证码",
233 226
                     border: InputBorder.none,
234 227
                     floatingLabelBehavior: FloatingLabelBehavior.never,
@@ -238,7 +231,6 @@ class _RouteLogin extends State<MyRouteLogin> {
238 231
                   },
239 232
                 ),
240 233
               ),
241
-
242 234
               Container(
243 235
                 height: 350.h,
244 236
                 alignment: Alignment.bottomCenter,
@@ -259,16 +251,15 @@ class _RouteLogin extends State<MyRouteLogin> {
259 251
                     style: ButtonStyle(
260 252
                       elevation: MaterialStateProperty.all(0),
261 253
                       backgroundColor:
262
-                      MaterialStateProperty.all(const Color(0xFFFF703B)),
254
+                          MaterialStateProperty.all(const Color(0xFFFF703B)),
263 255
                       shape: MaterialStateProperty.all(
264 256
                           const RoundedRectangleBorder(
265 257
                               borderRadius:
266
-                              BorderRadius.all(Radius.circular(24.4)))),
258
+                                  BorderRadius.all(Radius.circular(24.4)))),
267 259
                     ),
268 260
                   ),
269 261
                 ),
270 262
               ),
271
-
272 263
               Container(
273 264
                   padding: EdgeInsets.fromLTRB(10.0, 10, 10.0, 10),
274 265
                   child: Row(
@@ -291,10 +282,10 @@ class _RouteLogin extends State<MyRouteLogin> {
291 282
                             text: '文本协议/隐私政策,',
292 283
                             style: TextStyle(color: Color(0xffce3800)),
293 284
                             recognizer:
294
-                            TapGestureRecognizer() //踩坑。。。recognizer 是手势交互 除了我现在些的是 点击交互,其他一般都是抽象类。
295
-                              ..onTap = () {
296
-                                Get.toNamed('/agreement');
297
-                              },
285
+                                TapGestureRecognizer() //踩坑。。。recognizer 是手势交互 除了我现在些的是 点击交互,其他一般都是抽象类。
286
+                                  ..onTap = () {
287
+                                    Get.toNamed('/agreement');
288
+                                  },
298 289
                           ),
299 290
                           const TextSpan(
300 291
                               text: '确认之后选择此项',