Browse Source

adddsdres

[baozhangchao] 3 years ago
parent
commit
f638277c37

BIN
.gradle/6.8/fileChanges/last-build.bin View File


BIN
.gradle/6.8/fileHashes/fileHashes.lock View File


+ 0
- 0
.gradle/6.8/gc.properties View File


BIN
.gradle/buildOutputCleanup/buildOutputCleanup.lock View File


+ 0
- 2
.gradle/buildOutputCleanup/cache.properties View File

1
-#Wed Apr 20 15:13:32 CST 2022
2
-gradle.version=6.8

BIN
.gradle/checksums/checksums.lock View File


+ 0
- 0
.gradle/configuration-cache/gc.properties View File


+ 0
- 0
.gradle/vcs-1/gc.properties View File


+ 20
- 1
lib/models/entities/Address.dart View File

1
 class Address {
1
 class Address {
2
   String? address;
2
   String? address;
3
   bool? isDefault;
3
   bool? isDefault;
4
+  String? addressId;
5
+  String? ownerType;
6
+  String? ownerId;
7
+  num? sortNo;
8
+  String? orgId;
9
+  num? status;
10
+
4
   Address();
11
   Address();
5
 
12
 
6
   Address.fromJson(Map<String, dynamic> json)
13
   Address.fromJson(Map<String, dynamic> json)
7
       : address = json["address"],
14
       : address = json["address"],
8
-        isDefault = json["isDefault"];
15
+        isDefault = json["isDefault"],
16
+        addressId = json["addressId"],
17
+        ownerType = json["ownerType"],
18
+        ownerId = json["ownerId"],
19
+        sortNo = json["sortNo"],
20
+        orgId = json["orgId"],
21
+        status = json["status"];
9
 
22
 
10
   Map<String, dynamic> toJson() => {
23
   Map<String, dynamic> toJson() => {
11
         'address': address,
24
         'address': address,
12
         'isDefault': isDefault,
25
         'isDefault': isDefault,
26
+        'addressId': addressId,
27
+        'ownerType': ownerType,
28
+        'ownerId': ownerId,
29
+        'sortNo': sortNo,
30
+        'orgId': orgId,
31
+        'status': status,
13
       };
32
       };
14
 }
33
 }

+ 24
- 6
lib/pages/addAddress/index.dart View File

1
 import 'package:farmer_client/models/entities/Address.dart';
1
 import 'package:farmer_client/models/entities/Address.dart';
2
+import 'package:farmer_client/services/address.dart';
2
 import 'package:farmer_client/widgets/DefaultButton.dart';
3
 import 'package:farmer_client/widgets/DefaultButton.dart';
3
 import 'package:farmer_client/widgets/layout/BasicPage.dart';
4
 import 'package:farmer_client/widgets/layout/BasicPage.dart';
4
 import 'package:flutter/material.dart';
5
 import 'package:flutter/material.dart';
10
 
11
 
11
   final address =Rx<Address>(Address());
12
   final address =Rx<Address>(Address());
12
   late String text = '';
13
   late String text = '';
14
+  late String id = '';
13
 
15
 
14
   @override
16
   @override
15
   void beforeShow() {
17
   void beforeShow() {
16
     super.beforeShow();
18
     super.beforeShow();
17
     if (Get.arguments != null) {
19
     if (Get.arguments != null) {
18
-      address.value = Get.arguments['item'];
19
-      text = address.value.address.toString();
20
+      print( Get.arguments['item']);
21
+      // address(Get.arguments['item']);
22
+      text = Get.arguments['item'];
23
+      id = Get.arguments['id'];
20
     }
24
     }
21
   }
25
   }
22
 
26
 
58
                 floatingLabelBehavior: FloatingLabelBehavior.never,
62
                 floatingLabelBehavior: FloatingLabelBehavior.never,
59
               ),
63
               ),
60
               onChanged: (e) {
64
               onChanged: (e) {
61
-                  address.value.address = e;
65
+                  address().address=e;
62
               },
66
               },
63
             ),
67
             ),
64
           ),
68
           ),
73
                 Fluttertoast.showToast(
77
                 Fluttertoast.showToast(
74
                     msg: '请输入地址!');
78
                     msg: '请输入地址!');
75
               } else{
79
               } else{
76
-                Fluttertoast.showToast(
77
-                    msg: '保存成功!');
78
-                Get.back();
80
+                if(text==''){
81
+                  addressSave(address().address.toString()).then((value){
82
+                    Fluttertoast.showToast(
83
+                        msg: '添加地址成功!');
84
+                    Get.back();
85
+                  });
86
+
87
+                }else{
88
+                  addressUpdate(id,address().address.toString()).then((value) {
89
+                    Fluttertoast.showToast(
90
+                        msg: '修改地址成功!');
91
+                    Get.back();
92
+                  });
93
+                  
94
+                }
95
+
96
+
79
               }
97
               }
80
             },
98
             },
81
             margin: const EdgeInsets.all(0),
99
             margin: const EdgeInsets.all(0),

+ 43
- 19
lib/pages/addressList/index.dart View File

8
 import 'package:fluttertoast/fluttertoast.dart';
8
 import 'package:fluttertoast/fluttertoast.dart';
9
 import 'package:get/get.dart';
9
 import 'package:get/get.dart';
10
 
10
 
11
+import '../../services/address.dart';
12
+
11
 class AddressList extends BasicPage {
13
 class AddressList extends BasicPage {
12
   bool isBack = false;
14
   bool isBack = false;
13
   AddressController addressController=AddressController.t;
15
   AddressController addressController=AddressController.t;
16
+  final addressList = Rx<List<Address>>([]);
17
+
14
 
18
 
15
   @override
19
   @override
16
   void beforeShow() {
20
   void beforeShow() {
17
     super.beforeShow();
21
     super.beforeShow();
22
+    getAddress().then((value) {
23
+      final list = <Address>[];
24
+      value['records'].forEach((item) {
25
+        list.add(Address.fromJson(item));
26
+      });
27
+      addressList(list);
28
+    });
18
     if (Get.arguments != null) {
29
     if (Get.arguments != null) {
19
       isBack = Get.arguments['isBack'];
30
       isBack = Get.arguments['isBack'];
20
     }
31
     }
21
   }
32
   }
22
 
33
 
23
-  final addressList = Rx<List<Address>>([
24
-    Address.fromJson({'address': '777', 'isDefault': false}),
25
-    Address.fromJson({'address': '999', 'isDefault': false}),
26
-    Address.fromJson({'address': '这是一个正经的地址', 'isDefault': false}),
27
-  ]);
28
 
34
 
29
-  void onChange(index) {
30
-    for (var element in addressList.value) {
31
-      if (element.isDefault == true) {
32
-        element.isDefault = false;
35
+  void onChange(id) {
36
+    print(id);
37
+    addressDefault(id.toString()).then((value){
38
+      final defaultlist = [...addressList()];
39
+      for (var element in addressList()) {
40
+        if (element.isDefault == true) {
41
+          element.isDefault = false;
42
+        }
33
       }
43
       }
34
-    }
35
-    addressList.value[index].isDefault = true;
44
+      addressList(defaultlist);
45
+    });
46
+
36
   }
47
   }
37
 
48
 
38
-  void onDelete(index) {
39
-    Fluttertoast.showToast(msg: '删除成功!');
49
+  void onDelete(id) {
50
+    print(id);
51
+
52
+    addressDelete(id).then((value) {
53
+      final newslist = [...addressList()];
54
+      for (var item in addressList()) {
55
+        if (item.addressId == id) {
56
+          newslist.remove(item);
57
+        }
58
+      }
59
+      addressList(newslist);
60
+      Fluttertoast.showToast(msg: '删除成功!');
61
+    });
40
   }
62
   }
41
 
63
 
42
   @override
64
   @override
50
             //左对齐
72
             //左对齐
51
             crossAxisAlignment: CrossAxisAlignment.start,
73
             crossAxisAlignment: CrossAxisAlignment.start,
52
             children: [
74
             children: [
53
-              Column(
54
-                  children: addressList.value
75
+              Obx(()=>Column(
76
+                  children: addressList()
55
                       .asMap()
77
                       .asMap()
56
                       .keys
78
                       .keys
57
                       .map(
79
                       .map(
60
                           item: addressList.value[e],
82
                           item: addressList.value[e],
61
                           isBack: isBack,
83
                           isBack: isBack,
62
                           onChange: () {
84
                           onChange: () {
63
-                            onChange(e);
85
+                            onChange(addressList()[e].addressId);
64
                           },
86
                           },
65
                           onEdit: () {
87
                           onEdit: () {
66
                             Get.toNamed('/addAddress',
88
                             Get.toNamed('/addAddress',
67
-                                arguments: {'item': addressList.value[e]});
89
+                                arguments: {'id':addressList.value[e].addressId,'item': addressList.value[e].address.toString()});
68
                           },
90
                           },
69
                           onDelete: () {
91
                           onDelete: () {
70
-                            onDelete(e);
92
+                            onDelete(addressList.value[e].addressId);
71
                           },
93
                           },
72
                           onBack: () {
94
                           onBack: () {
95
+                            //选择地址
73
                             addressController.address.value=addressList.value[e];
96
                             addressController.address.value=addressList.value[e];
74
                             Get.back();
97
                             Get.back();
75
                           },
98
                           },
76
                         ),
99
                         ),
77
                       )
100
                       )
78
-                      .toList()),
101
+                      .toList()),),
79
               DefaultButton(
102
               DefaultButton(
80
                 color: const Color(0xffffffff),
103
                 color: const Color(0xffffffff),
81
                 backColor: const Color(0xFFFF703B),
104
                 backColor: const Color(0xFFFF703B),
96
     );
119
     );
97
   }
120
   }
98
 }
121
 }
122
+

+ 25
- 1
lib/pages/main/index.dart View File

1
 import 'package:farmer_client/pages/main/widgets/main/index.dart';
1
 import 'package:farmer_client/pages/main/widgets/main/index.dart';
2
 import 'package:farmer_client/widgets/layout/BasicPage.dart';
2
 import 'package:farmer_client/widgets/layout/BasicPage.dart';
3
 import 'package:flutter/material.dart';
3
 import 'package:flutter/material.dart';
4
+import 'package:get/get.dart';
5
+import 'package:get/get_rx/src/rx_types/rx_types.dart';
6
+
7
+import '../../models/entities/Address.dart';
8
+import '../../services/address.dart';
4
 
9
 
5
 class Main extends BasicPage {
10
 class Main extends BasicPage {
6
   Main({Key? key}) : super(key: key) {
11
   Main({Key? key}) : super(key: key) {
7
     tabIndex = 3;
12
     tabIndex = 3;
8
     naviTitle = '我的';
13
     naviTitle = '我的';
9
   }
14
   }
15
+  final addressListInfo = Rx<List<Address>>([]);
16
+
17
+  @override
18
+  void beforeShow() {
19
+    // TODO: implement beforeShow
20
+    super.beforeShow();
21
+    getAddress().then((value) {
22
+       List<Address> list = [];
23
+      value['records'].forEach((item) {
24
+        list.add(Address.fromJson(item));
25
+      });
26
+       addressListInfo(list);
27
+    });
28
+  }
29
+
10
 
30
 
11
   @override
31
   @override
12
   Widget builder(BuildContext context) {
32
   Widget builder(BuildContext context) {
13
-    return const MainPage();
33
+    return Obx(()=> MainPage(
34
+        item:addressListInfo()[0].address.toString()
35
+     )
36
+
37
+    );
14
   }
38
   }
15
 }
39
 }

+ 20
- 3
lib/pages/main/widgets/main/index.dart View File

1
+import 'package:farmer_client/models/entities/Address.dart';
1
 import 'package:get/get.dart';
2
 import 'package:get/get.dart';
2
 import 'package:get_storage/get_storage.dart';
3
 import 'package:get_storage/get_storage.dart';
3
 
4
 
8
 import 'package:flutter_screenutil/flutter_screenutil.dart';
9
 import 'package:flutter_screenutil/flutter_screenutil.dart';
9
 
10
 
10
 class MainPage extends StatefulWidget {
11
 class MainPage extends StatefulWidget {
11
-  const MainPage({Key? key}) : super(key: key);
12
+  final String item;
13
+
14
+
15
+
16
+   MainPage({Key? key, required this.item}) : super(key: key);
12
 
17
 
13
   @override
18
   @override
14
-  State<MainPage> createState() => _MainPageState();
19
+  State<MainPage> createState() => _MainPageState(item);
20
+
15
 }
21
 }
16
 
22
 
17
 class _MainPageState extends State<MainPage> {
23
 class _MainPageState extends State<MainPage> {
18
   GetStorage box = GetStorage();
24
   GetStorage box = GetStorage();
25
+  late String item='请维护详细地址!';
26
+  _MainPageState(this.item);
27
+
28
+  @override
29
+  void initState() {
30
+    super.initState();
31
+    print('644444444444444+$item');
32
+
33
+  }
34
+
19
   @override
35
   @override
20
   Widget build(BuildContext context) {
36
   Widget build(BuildContext context) {
37
+
21
     return Container(
38
     return Container(
22
       alignment: Alignment.center,
39
       alignment: Alignment.center,
23
       child: Column(
40
       child: Column(
25
           Column(
42
           Column(
26
             children: [
43
             children: [
27
               UserInfo(), //头部,头像手机号姓名
44
               UserInfo(), //头部,头像手机号姓名
28
-              UserAddress(), //用户地址
45
+              UserAddress(item:item),//用户地址
29
               OtherColumn(), //功能菜单栏
46
               OtherColumn(), //功能菜单栏
30
               Container(
47
               Container(
31
                 height: 70.h,
48
                 height: 70.h,

+ 6
- 2
lib/pages/main/widgets/main/widgets/UserAddress.dart View File

2
 import 'package:flutter_screenutil/flutter_screenutil.dart';
2
 import 'package:flutter_screenutil/flutter_screenutil.dart';
3
 import 'package:get/get.dart';
3
 import 'package:get/get.dart';
4
 
4
 
5
+import '../../../../../models/entities/Address.dart';
6
+
5
 class UserAddress extends StatelessWidget {
7
 class UserAddress extends StatelessWidget {
6
-  const UserAddress({Key? key}) : super(key: key);
8
+  final String item;
9
+
10
+  const UserAddress({Key? key, required this.item}) : super(key: key);
7
 
11
 
8
   @override
12
   @override
9
   Widget build(BuildContext context) {
13
   Widget build(BuildContext context) {
62
                         Container(
66
                         Container(
63
                           width: 260,
67
                           width: 260,
64
                           child: Text(
68
                           child: Text(
65
-                            '请填写详细地址请填写详细地址请填写详细地址',
69
+                            item != null? item: '请设置默认地址',
66
                             softWrap: true,
70
                             softWrap: true,
67
                             maxLines: 1,
71
                             maxLines: 1,
68
                             textAlign: TextAlign.left,
72
                             textAlign: TextAlign.left,

+ 73
- 0
lib/services/address.dart View File

1
+
2
+import 'package:dio/dio.dart';
3
+import 'package:farmer_client/utils/Request.dart';
4
+import 'package:fluttertoast/fluttertoast.dart';
5
+
6
+/**
7
+ * 地址列表
8
+ * @param {*} data
9
+ * @returns
10
+ */
11
+Future getAddress() async {
12
+  return request('/address',
13
+      options: Options(method: 'GET')).catchError((error) => {
14
+    Fluttertoast.showToast(msg: error.error['message']),
15
+  });
16
+}
17
+
18
+
19
+/**
20
+ * 地址保存
21
+ * @param {*} data
22
+ * @returns
23
+ */
24
+Future addressSave(String address) async {
25
+  return request('/address',
26
+      options: Options(method: 'POST'), data: {'address': address})
27
+      .catchError((error) => {
28
+    Fluttertoast.showToast(msg: error.error['message']),
29
+  });
30
+}
31
+
32
+
33
+
34
+/**
35
+ * 地址删除
36
+ * @param {*} data
37
+ * @returns
38
+ */
39
+Future addressDelete(String id)async{
40
+  return request('/address/$id',options: Options(method: 'DELETE')).catchError((error) =>
41
+  { Fluttertoast.showToast(
42
+      msg: error.error['message']
43
+  ),});
44
+
45
+}
46
+
47
+
48
+/**
49
+ * 地址修改更新
50
+ * @param {*} data
51
+ * @returns
52
+ */
53
+Future addressUpdate(String id,String address)async{
54
+  return request('/address/$id',options: Options(method: 'PUT'),data: {'address':address}).catchError((error) =>
55
+  { Fluttertoast.showToast(
56
+      msg: error.error['message']
57
+  ),});
58
+
59
+}
60
+
61
+
62
+/**
63
+ * 地址是否默认
64
+ * @param {*} data
65
+ * @returns
66
+ */
67
+Future addressDefault(String id)async{
68
+  return request('/address/$id/default',options: Options(method: 'PUT')).catchError((error) =>
69
+  { Fluttertoast.showToast(
70
+      msg: error.error['message']
71
+  ),});
72
+
73
+}

+ 3
- 3
pubspec.lock View File

335
       name: path_provider_android
335
       name: path_provider_android
336
       url: "https://pub.dartlang.org"
336
       url: "https://pub.dartlang.org"
337
     source: hosted
337
     source: hosted
338
-    version: "2.0.12"
338
+    version: "2.0.13"
339
   path_provider_ios:
339
   path_provider_ios:
340
     dependency: transitive
340
     dependency: transitive
341
     description:
341
     description:
536
       name: win32
536
       name: win32
537
       url: "https://pub.dartlang.org"
537
       url: "https://pub.dartlang.org"
538
     source: hosted
538
     source: hosted
539
-    version: "2.5.1"
539
+    version: "2.5.2"
540
   xdg_directories:
540
   xdg_directories:
541
     dependency: transitive
541
     dependency: transitive
542
     description:
542
     description:
553
     version: "3.1.0"
553
     version: "3.1.0"
554
 sdks:
554
 sdks:
555
   dart: ">=2.16.1 <3.0.0"
555
   dart: ">=2.16.1 <3.0.0"
556
-  flutter: ">=2.8.0"
556
+  flutter: ">=2.8.1"