Преглед изворни кода

Merge branch 'master' of http://git.ycjcjy.com/nanyang/farmer_client

张延森 пре 3 година
родитељ
комит
184fd85c33

+ 8
- 0
lib/models/addressController.dart Прегледај датотеку

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 Прегледај датотеку

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

+ 25
- 57
lib/pages/OrderConfirmation/index.dart Прегледај датотеку

1
+import 'package:farmer_client/models/addressController.dart';
2
+import 'package:farmer_client/widgets/layout/BasicPage.dart';
1
 import 'package:flutter/material.dart';
3
 import 'package:flutter/material.dart';
2
 import 'package:flutter/services.dart';
4
 import 'package:flutter/services.dart';
3
 import 'package:flutter_screenutil/flutter_screenutil.dart';
5
 import 'package:flutter_screenutil/flutter_screenutil.dart';
4
 import 'package:get/get.dart';
6
 import 'package:get/get.dart';
5
-import 'package:get_storage/get_storage.dart';
6
 import 'package:intl/intl.dart';
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
   TextEditingController _unameController = TextEditingController();
10
   TextEditingController _unameController = TextEditingController();
17
-  TextEditingController _pwdController = TextEditingController();
18
   GlobalKey _formKey = GlobalKey<FormState>();
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
   @override
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
         key: _formKey, //设置globalKey,用于后面获取FormState
23
         key: _formKey, //设置globalKey,用于后面获取FormState
52
         autovalidateMode: AutovalidateMode.onUserInteraction,
24
         autovalidateMode: AutovalidateMode.onUserInteraction,
53
         child: Column(
25
         child: Column(
84
                 hintText: "请输入具体面积(公顷)",
56
                 hintText: "请输入具体面积(公顷)",
85
               ),
57
               ),
86
               onChanged: (e) {
58
               onChanged: (e) {
87
-                setState(() {
88
-                  workingArea = e;
89
-                });
59
+                workingArea.value = e as int?;
90
               },
60
               },
91
               // 校验用户名
61
               // 校验用户名
92
               validator: (v) {
62
               validator: (v) {
130
                             helpText: '请选择作业开始时间',
100
                             helpText: '请选择作业开始时间',
131
                             cancelText: '取消',
101
                             cancelText: '取消',
132
                             confirmText: '确定',
102
                             confirmText: '确定',
133
-                            initialDate: selectDate == null
103
+                            initialDate: selectDate.value == null
134
                                 ? DateTime.now()
104
                                 ? DateTime.now()
135
-                                : selectDate,
105
+                                : selectDate.value,
136
                             firstDate: DateTime.now(),
106
                             firstDate: DateTime.now(),
137
                             lastDate: DateTime(2030),
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
                         child: Text(selectDate == null
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
                         },
154
                         },
187
                         child: Container(
155
                         child: Container(
188
                           width: 290.w,
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
             Spacer(),
170
             Spacer(),
203
             Container(
171
             Container(
204
               alignment: Alignment.bottomCenter,
172
               alignment: Alignment.bottomCenter,

+ 3
- 9
lib/pages/addressList/index.dart Прегледај датотеку

1
+import 'package:farmer_client/models/addressController.dart';
1
 import 'package:farmer_client/models/entities/Address.dart';
2
 import 'package:farmer_client/models/entities/Address.dart';
2
 import 'package:farmer_client/pages/addressList/widget/AddressCard.dart';
3
 import 'package:farmer_client/pages/addressList/widget/AddressCard.dart';
3
 import 'package:farmer_client/widgets/DefaultButton.dart';
4
 import 'package:farmer_client/widgets/DefaultButton.dart';
6
 import 'package:flutter_screenutil/flutter_screenutil.dart';
7
 import 'package:flutter_screenutil/flutter_screenutil.dart';
7
 import 'package:fluttertoast/fluttertoast.dart';
8
 import 'package:fluttertoast/fluttertoast.dart';
8
 import 'package:get/get.dart';
9
 import 'package:get/get.dart';
9
-import 'package:get_storage/get_storage.dart';
10
 
10
 
11
 class AddressList extends BasicPage {
11
 class AddressList extends BasicPage {
12
   bool isBack = false;
12
   bool isBack = false;
13
+  AddressController addressController=AddressController.t;
13
 
14
 
14
   @override
15
   @override
15
   void beforeShow() {
16
   void beforeShow() {
69
                             onDelete(e);
70
                             onDelete(e);
70
                           },
71
                           },
71
                           onBack: () {
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
                             Get.back();
74
                             Get.back();
81
                           },
75
                           },
82
                         ),
76
                         ),

+ 15
- 19
lib/pages/home/widgets/home/index.dart Прегледај датотеку

10
 import '../../../MoreCars/index.dart';
10
 import '../../../MoreCars/index.dart';
11
 
11
 
12
 class HomePage extends StatefulWidget {
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
   @override
17
   @override
17
   _HomePageState createState() => _HomePageState();
18
   _HomePageState createState() => _HomePageState();
18
 }
19
 }
19
 
20
 
20
-
21
 class _HomePageState extends State<HomePage> {
21
 class _HomePageState extends State<HomePage> {
22
   final CarouselController _controller = CarouselController();
22
   final CarouselController _controller = CarouselController();
23
   List<Banners> bannerList = [];
23
   List<Banners> bannerList = [];
24
 
24
 
25
   List<CardInfo> machineryLists = [];
25
   List<CardInfo> machineryLists = [];
26
 
26
 
27
-
28
-
29
-
30
   @override
27
   @override
31
   void initState() {
28
   void initState() {
32
     super.initState();
29
     super.initState();
52
 
49
 
53
   @override
50
   @override
54
   Widget build(BuildContext context) {
51
   Widget build(BuildContext context) {
55
-
56
     return Container(
52
     return Container(
57
       alignment: Alignment.center,
53
       alignment: Alignment.center,
58
       padding: EdgeInsets.fromLTRB(15.w, 0, 15.w, 0),
54
       padding: EdgeInsets.fromLTRB(15.w, 0, 15.w, 0),
63
           ),
59
           ),
64
           Container(
60
           Container(
65
             margin: EdgeInsets.fromLTRB(0, 15, 0, 0),
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
               options: CarouselOptions(
70
               options: CarouselOptions(
74
                 autoPlay: true,
71
                 autoPlay: true,
75
                 enlargeCenterPage: false, //图片中心放大
72
                 enlargeCenterPage: false, //图片中心放大
94
                               padding: EdgeInsets.fromLTRB(0, 0, 8, 0),
91
                               padding: EdgeInsets.fromLTRB(0, 0, 8, 0),
95
                               child: Image(
92
                               child: Image(
96
                                 image:
93
                                 image:
97
-                                AssetImage('images/icons/carsListImga.png'),
94
+                                    AssetImage('images/icons/carsListImga.png'),
98
                                 fit: BoxFit.cover,
95
                                 fit: BoxFit.cover,
99
                                 width: 20.w,
96
                                 width: 20.w,
100
                               ),
97
                               ),
121
                     ],
118
                     ],
122
                   ),
119
                   ),
123
                   Column(
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
         ],

+ 0
- 1
lib/pages/home/widgets/home/widgets/headers.dart Прегледај датотеку

11
   State<TypeHeader> createState() => _TypeHeaderState();
11
   State<TypeHeader> createState() => _TypeHeaderState();
12
 }
12
 }
13
 
13
 
14
-
15
 class _TypeHeaderState extends State<TypeHeader> {
14
 class _TypeHeaderState extends State<TypeHeader> {
16
   @override
15
   @override
17
   Widget build(BuildContext context) {
16
   Widget build(BuildContext context) {

+ 40
- 49
lib/pages/login/login.dart Прегледај датотеку

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

+ 1
- 1
lib/pages/search/index.jsx.dart Прегледај датотеку

11
         decoration: const BoxDecoration(
11
         decoration: const BoxDecoration(
12
           color: Colors.white,
12
           color: Colors.white,
13
         ),
13
         ),
14
-        child: ListView(children: [
14
+        child: Column(children: [
15
           Container(
15
           Container(
16
             width: 345.w,
16
             width: 345.w,
17
             height: 34.h,
17
             height: 34.h,