李志伟 před 2 roky
rodič
revize
8e2d666c10

binární
android/app/src/main/res/mipmap-hdpi/ic_launcher.png Zobrazit soubor


binární
android/app/src/main/res/mipmap-mdpi/ic_launcher.png Zobrazit soubor


binární
android/app/src/main/res/mipmap-xhdpi/ic_launcher.png Zobrazit soubor


binární
android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png Zobrazit soubor


binární
android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png Zobrazit soubor


+ 1
- 2
lib/pages/ArticleInfo/ArticleInfo.dart Zobrazit soubor

@@ -37,7 +37,7 @@ class ArticleInfo extends BasicPage {
37 37
   Widget builder(BuildContext context) {
38 38
     naviTitle = '资讯详情';
39 39
     return Container(
40
-      padding: EdgeInsets.fromLTRB(15, 30, 15, 0),
40
+      padding: EdgeInsets.all(15.w),
41 41
       child: ListView(
42 42
         children: [
43 43
           Container(
@@ -83,7 +83,6 @@ class ArticleInfo extends BasicPage {
83 83
                       child: Image(
84 84
                         image: NetworkImage(item.content.toString()),
85 85
                         width: 320.w,
86
-                        height: 260.w,
87 86
                         fit: BoxFit.fill,
88 87
                       ),
89 88
                     );

+ 75
- 144
lib/pages/home/index.dart Zobrazit soubor

@@ -1,31 +1,20 @@
1
-import 'package:farmer_client/widgets/Modal.dart' as modal;
1
+import 'package:farmer_client/models/app.dart';
2
+import 'package:farmer_client/models/entities/CardListModel.dart';
3
+import 'package:farmer_client/services/homeAPI.dart';
4
+import 'package:farmer_client/widgets/CarsCard.dart';
5
+import 'package:farmer_client/widgets/RefreshMoreList.dart';
2 6
 import 'package:farmer_client/widgets/layout/BasicPage.dart';
3 7
 import 'package:flutter/material.dart';
4
-import '../../utils/timer.dart';
5 8
 import '../MoreCars/index.dart';
6
-import 'package:carousel_slider/carousel_slider.dart';
7
-import 'package:farmer_client/pages/home/widgets/home/widgets/headers.dart';
8 9
 import 'package:farmer_client/pages/home/widgets/home/widgets/searchBannerHeader.dart';
9
-import 'package:farmer_client/widgets/NullCard.dart';
10
-import 'package:flutter/material.dart';
11
-import 'package:flutter_easyloading/flutter_easyloading.dart';
12
-import 'package:flutter_easyrefresh/easy_refresh.dart';
13 10
 import 'package:flutter_screenutil/flutter_screenutil.dart';
14
-import 'package:fluttertoast/fluttertoast.dart';
15 11
 import 'package:get/get.dart';
16
-import '../../../../models/app.dart';
17
-import '../../../../models/entities/CardInfo.dart';
18
-import '../../../../models/entities/CardListModel.dart';
19
-import '../../../../services/homeAPI.dart';
20
-import '../../../../widgets/CarsCard.dart';
21
-import 'package:farmer_client/models/entities/Banners.dart';
22 12
 
23 13
 class Home extends BasicPage {
24 14
   Home({Key? key}) : super(key: key) {
25 15
     tabIndex = 0;
26 16
     naviTitle = '首页';
27 17
   }
28
-  EasyRefreshController _controller = EasyRefreshController();
29 18
 
30 19
   String? location = AppController.t.locationStr;
31 20
   final machineryLists = Rx<List<CardListModel>>([]);
@@ -34,143 +23,85 @@ class Home extends BasicPage {
34 23
   var pageIndex = 1; //页数
35 24
   var count = 10; //每页10条
36 25
   late int maxSum; //最多条数
37
-  int _count = 0;
38
-  Map<String, dynamic> params = {'pageNum': 1,'location':AppController.t.locationStr ?? '112.087465,32.687507'};
39
-
40
-
41
-  void getNewData() {
42
-    pageIndex = 1;
43
-    params['pageNum'] = pageIndex;
44
-    print(params['pageNum']);
45
-    getMachinery(params).then((value) {
46
-      maxSum = value['total'];
47
-
48
-      List<CardListModel> list = [];
49
-      value['records'].forEach((item) {
50
-        list.add(CardListModel.fromJson(item));
51
-      });
52
-      machineryLists(list);
53
-      newMachineryLists(list);
54
-      _count = machineryLists.value.length;
55
-    });
56
-  }
57
-
58
-  void getMoreData() {
59
-    pageIndex++;
60
-    params['pageNum'] = pageIndex;
61
-    print(params['pageNum']);
62
-    getMachinery(params).then((value) {
63
-      maxSum = value['total'];
64
-      List<CardListModel> list = [];
65
-      List<CardListModel> Newlist = [];
66
-      value['records'].forEach((item) {
67
-        list.add(CardListModel.fromJson(item));
68
-      });
69
-      newMachineryLists.value.addAll(list);
70
-      Newlist.addAll(newMachineryLists.value);
71
-      machineryLists(Newlist);
72
-      _count = machineryLists.value.length;
73
-    });
26
+  final params = Rx<Map<String, dynamic>>({
27
+    'pageSize': 10,
28
+    'location': AppController.t.locationStr ?? '112.087465,32.687507'
29
+  });
30
+  Function? Refresh;
31
+  List<CardListModel> GetList(value) {
32
+    List<CardListModel> list = [];
33
+    if (value != null)
34
+      value.forEach((item) => {list.add(CardListModel.fromJson(item))});
35
+    return list;
74 36
   }
75 37
 
76 38
   @override
77 39
   Widget builder(BuildContext context) {
78
-    setTimeout(() {
79
-      // showDialog(context: Get.overlayContext!, builder: (BuildContext c) {
80
-      //   return Modal(type: 'dialog', title: '测试', message: '这是一段 message !', onConfirm: () => print('hahahaha'),);
81
-      // } );
82
-      // Get.dialog(Modal(type: 'dialog', title: '测试', message: '这是一段 message !', onConfirm: () => print('hahahaha'),));
83
-      // modal.showDialog(title: '测试', content: SizedBox(width: 400, height: 300,), onConfirm: () => false);
84
-    }, 2000);
85
-
86
-     return Container(
87
-      decoration: BoxDecoration(color: Colors.white),
88
-      // alignment: Alignment.center,
40
+    return Container(
41
+      decoration: const BoxDecoration(color: Colors.white),
89 42
       padding: EdgeInsets.fromLTRB(15.w, 5.w, 15.w, 0),
90
-      child:Column(
91
-          children: [
92
-          searchBannerHeader(),
93
-            Row(
94
-              mainAxisAlignment: MainAxisAlignment.spaceBetween,
95
-              children: [
96
-                Container(
97
-                  padding: EdgeInsets.fromLTRB(10.w, 15.w, 10.w, 0),
98
-
99
-                  child: Row(
100
-                    children: [
101
-                      Padding(
102
-                        padding: EdgeInsets.fromLTRB(0, 0, 8, 0),
103
-                        child: Image(
104
-                          image:
105
-                          AssetImage('images/icons/carsListImga.png'),
106
-                          fit: BoxFit.cover,
107
-                          width: 20.w,
108
-                        ),
43
+      child: Column(
44
+        children: [
45
+          const searchBannerHeader(),
46
+          Row(
47
+            mainAxisAlignment: MainAxisAlignment.spaceBetween,
48
+            children: [
49
+              Container(
50
+                padding: EdgeInsets.symmetric(vertical: 15.h),
51
+                child: Row(
52
+                  children: [
53
+                    Padding(
54
+                      padding: const EdgeInsets.only(right: 8),
55
+                      child: Image(
56
+                        image:
57
+                            const AssetImage('images/icons/carsListImga.png'),
58
+                        fit: BoxFit.cover,
59
+                        width: 20.w,
109 60
                       ),
110
-                      Text(
111
-                        '农机列表',
112
-                        style: TextStyle(
113
-                            color: Color(0xff222222),
114
-                            fontSize: 20.sp,
115
-                            fontWeight: FontWeight.bold),
116
-                      )
117
-                    ],
118
-                  ),
119
-                ),
120
-                Container(
121
-                  child: GestureDetector(
122
-                    child: Text('更多 >>'),
123
-                    onTap: () {
124
-                      print('点我进入农机搜索/更多页');
125
-                      Get.to(MoreCars());
126
-                    },
127
-                  ),
128
-                )
129
-              ],
130
-            ),
131
-            Expanded(
132
-              child: (
133
-                  EasyRefresh(
134
-                    controller: _controller,
135
-                    firstRefresh: true,
136
-                    onRefresh: () async {
137
-                      await Future.delayed(Duration(seconds: 1), () {
138
-                        print("下拉刷新-----");
139
-                        getNewData();
140
-                        _controller.resetLoadState();
141
-                      });
142
-                    },
143
-                    onLoad: () async {
144
-                      await Future.delayed(Duration(seconds: 1), () {
145
-                        if (_count == maxSum) {
146
-                          Fluttertoast.showToast(msg: '暂无更多数据哦');
147
-                        } else {
148
-                          getMoreData();
149
-                        }
150
-                        _controller.finishLoad(noMore: _count >= maxSum);
151
-
152
-                      });
153
-                    },
154
-                    child: Obx(
155
-                          () => machineryLists.value.length > 0
156
-                          ?
157
-                      Column(
158
-                        mainAxisSize: MainAxisSize.min,
159
-                        children: machineryLists.value
160
-                            .map((item) => CarsCard(item: item))
161
-                            .toList(),
162
-                      ): NullCard(text: '暂无农机信息!'),
163 61
                     ),
164
-                  )
165
-
62
+                    Text(
63
+                      '农机列表',
64
+                      style: TextStyle(
65
+                          color: const Color(0xff222222),
66
+                          fontSize: 20.sp,
67
+                          fontWeight: FontWeight.bold),
68
+                    )
69
+                  ],
70
+                ),
166 71
               ),
72
+              GestureDetector(
73
+                child: const Text('更多 >>'),
74
+                onTap: () {
75
+                  Get.to(const MoreCars());
76
+                },
77
+              )
78
+            ],
79
+          ),
80
+          Expanded(
81
+            child: RefreshMoreList(
82
+              pPrams: params,
83
+              cardText: '暂无订单',
84
+              fetch: getMachinery,
85
+              useState: (state) {
86
+                machineryLists(GetList(state));
87
+              },
88
+              builder: (
89
+                  {required BuildContext context, required Function toggle}) {
90
+                Refresh = toggle;
91
+                return Obx(
92
+                  () => Column(
93
+                    children: machineryLists.value
94
+                        .map(
95
+                          (item) => CarsCard(item: item),
96
+                        )
97
+                        .toList(),
98
+                  ),
99
+                );
100
+              },
167 101
             ),
168
-
169
-      ],
170
-    )
171
-
172
-
102
+          ),
103
+        ],
104
+      ),
173 105
     );
174
-
175 106
   }
176 107
 }

+ 0
- 14
lib/pages/main/widgets/main/index.dart Zobrazit soubor

@@ -45,23 +45,9 @@ class MainPage extends StatelessWidget {
45 45
                 //设置圆角
46 46
                 shape: RoundedRectangleBorder(borderRadius: BorderRadius.circular(20.0)),
47 47
                 // 普通的边
48
-/*          shape: Border.all(
49
-              color: Colors.yellow,
50
-              width: 5.0
51
-          ),*/
52 48
                 elevation: 1,// 阴影大小
53 49
                 // height: 70.h,
54 50
                 margin: EdgeInsets.only(top: 10, bottom: 40.0),
55
-                // alignment: Alignment.bottomCenter,
56
-                // decoration: BoxDecoration(
57
-                //   boxShadow: [
58
-                //     BoxShadow(
59
-                //       blurRadius: 10, //阴影范围
60
-                //       spreadRadius: 0.1, //阴影浓度
61
-                //       color: Colors.grey.withOpacity(0.2), //阴影颜色
62
-                //     ),
63
-                //   ],
64
-                // ),
65 51
                 child: SizedBox(
66 52
                   width: 315.w,
67 53
                   height: 49.h,

+ 1
- 1
lib/utils/Request.dart Zobrazit soubor

@@ -30,7 +30,7 @@ final client = GetPlatform.isAndroid ? 'android' : 'ios';
30 30
 Dio createRequest() {
31 31
   var options = BaseOptions(
32 32
     baseUrl: 'https://machine.njyunzhi.com/api/' + client + '/farmer',
33
-    // baseUrl: 'http://192.168.89.25:7080/api/' + client + '/farmer',
33
+    // baseUrl: 'http://192.168.89.147:7080/api/' + client + '/farmer',
34 34
     connectTimeout: 5000,
35 35
     receiveTimeout: 3000,
36 36
   );

+ 139
- 0
lib/widgets/RefreshMoreList.dart Zobrazit soubor

@@ -0,0 +1,139 @@
1
+import 'package:flutter/material.dart';
2
+import 'package:flutter_easyrefresh/easy_refresh.dart';
3
+import 'package:get/get.dart';
4
+
5
+import 'NullCard.dart';
6
+
7
+class RefreshMoreList extends StatefulWidget {
8
+  RefreshMoreList({
9
+    Key? key,
10
+    required this.cardText,
11
+    required this.pPrams,
12
+    required this.fetch,
13
+    required this.builder,
14
+    required this.useState,
15
+  }) : super(key: key);
16
+  final String cardText;
17
+  final Rx<Map<String, dynamic>> pPrams;
18
+  final Function fetch;
19
+  Function(List<dynamic> state) useState;
20
+  Widget Function({
21
+    required BuildContext context,
22
+    required Function toggle,
23
+  }) builder;
24
+
25
+  @override
26
+  State<RefreshMoreList> createState() =>
27
+      _RefreshMoreList(this.cardText, this.fetch);
28
+}
29
+
30
+class _RefreshMoreList extends State<RefreshMoreList> {
31
+  EasyRefreshController _controller = EasyRefreshController();
32
+  final String cardText;
33
+  final Function fetch;
34
+
35
+  _RefreshMoreList(this.cardText, this.fetch);
36
+
37
+  @override
38
+  void initState() {
39
+    super.initState();
40
+    getNewData();
41
+  }
42
+
43
+  var pageIndex = 1;
44
+  var count = 10;
45
+  int maxSum = 0;
46
+  final params = Rx<Map<String, dynamic>>({'pageNum': 1});
47
+  final dataList = Rx<List<dynamic>>([]);
48
+  final newDataList = Rx<List<dynamic>>([]);
49
+
50
+  void getNewData() {
51
+    Map<String, dynamic> map = {...params.value, ...widget.pPrams.value};
52
+    pageIndex = 1;
53
+    map['pageNum'] = pageIndex;
54
+    params(map);
55
+    fetch(params.value).then((value) {
56
+      maxSum = value['total'];
57
+      widget.useState(value['records']);
58
+      dataList(value['records']);
59
+      newDataList(value['records']);
60
+    });
61
+  }
62
+
63
+  void getMoreData() {
64
+    Map<String, dynamic> map = {...params.value, ...widget.pPrams.value};
65
+    pageIndex++;
66
+    map['pageNum'] = pageIndex;
67
+    params(map);
68
+    fetch(params.value).then((value) {
69
+      maxSum = value['total'];
70
+      newDataList.value.addAll(value['records']);
71
+      widget.useState(newDataList.value);
72
+      dataList(newDataList.value);
73
+    });
74
+  }
75
+
76
+  int _count = 0;
77
+  toggle() {
78
+    getNewData();
79
+  }
80
+
81
+  @override
82
+  Widget build(BuildContext context) {
83
+    return Obx(
84
+      () => EasyRefresh(
85
+        controller: _controller,
86
+        header: ClassicalHeader(
87
+          infoText: DateTime.now().toString().substring(0, 19),
88
+          refreshedText: '刷新完成',
89
+          refreshText: '刷新中....',
90
+          refreshingText: '刷新中....',
91
+          refreshReadyText: '刷新完毕',
92
+          noMoreText: '',
93
+          textColor: const Color(0xff666666),
94
+          infoColor: const Color(0xff666666),
95
+        ),
96
+        footer: ClassicalFooter(
97
+          infoText: DateTime.now().toString().substring(0, 19),
98
+          loadText: '上拉加载更多',
99
+          loadingText: '加载中....',
100
+          loadedText: '',
101
+          loadReadyText: '释放加载',
102
+          noMoreText: '暂无更多',
103
+          enableInfiniteLoad: false,
104
+          textColor: const Color(0xff666666),
105
+          infoColor: const Color(0xff666666),
106
+        ),
107
+        // firstRefresh: true,//是否首次刷新
108
+        onRefresh: () async {
109
+          await Future.delayed(const Duration(seconds: 1), () {
110
+            // print("下拉刷新-----");
111
+            getNewData();
112
+            _count = dataList.value.length;
113
+            // print("最新条数" + _count.toString());
114
+            _controller.resetLoadState();
115
+          });
116
+        },
117
+        onLoad: () async {
118
+          await Future.delayed(const Duration(seconds: 1), () {
119
+            // print("上拉加载-----");
120
+            getMoreData();
121
+            _count = dataList.value.length;
122
+            // print("加载更多条数" + _count.toString());
123
+            _controller.finishLoad(noMore: _count >= maxSum);
124
+          });
125
+        },
126
+        child: Column(
127
+          children: [
128
+            widget.builder(context: context, toggle: toggle),
129
+            dataList.value.isEmpty
130
+                ? NullCard(text: cardText)
131
+                : const SizedBox(
132
+                    height: 0.1,
133
+                  )
134
+          ],
135
+        ),
136
+      ),
137
+    );
138
+  }
139
+}

+ 90
- 90
pubspec.lock Zobrazit soubor

@@ -5,175 +5,175 @@ packages:
5 5
     dependency: transitive
6 6
     description:
7 7
       name: _fe_analyzer_shared
8
-      url: "https://pub.dartlang.org"
8
+      url: "https://pub.flutter-io.cn"
9 9
     source: hosted
10 10
     version: "40.0.0"
11 11
   amap_flutter_base:
12 12
     dependency: transitive
13 13
     description:
14 14
       name: amap_flutter_base
15
-      url: "https://pub.dartlang.org"
15
+      url: "https://pub.flutter-io.cn"
16 16
     source: hosted
17 17
     version: "3.0.0"
18 18
   amap_flutter_location:
19 19
     dependency: "direct main"
20 20
     description:
21 21
       name: amap_flutter_location
22
-      url: "https://pub.dartlang.org"
22
+      url: "https://pub.flutter-io.cn"
23 23
     source: hosted
24 24
     version: "3.0.0"
25 25
   amap_flutter_map:
26 26
     dependency: "direct main"
27 27
     description:
28 28
       name: amap_flutter_map
29
-      url: "https://pub.dartlang.org"
29
+      url: "https://pub.flutter-io.cn"
30 30
     source: hosted
31 31
     version: "3.0.0"
32 32
   analyzer:
33 33
     dependency: transitive
34 34
     description:
35 35
       name: analyzer
36
-      url: "https://pub.dartlang.org"
36
+      url: "https://pub.flutter-io.cn"
37 37
     source: hosted
38 38
     version: "4.1.0"
39 39
   args:
40 40
     dependency: transitive
41 41
     description:
42 42
       name: args
43
-      url: "https://pub.dartlang.org"
43
+      url: "https://pub.flutter-io.cn"
44 44
     source: hosted
45 45
     version: "2.3.1"
46 46
   async:
47 47
     dependency: transitive
48 48
     description:
49 49
       name: async
50
-      url: "https://pub.dartlang.org"
50
+      url: "https://pub.flutter-io.cn"
51 51
     source: hosted
52 52
     version: "2.8.2"
53 53
   boolean_selector:
54 54
     dependency: transitive
55 55
     description:
56 56
       name: boolean_selector
57
-      url: "https://pub.dartlang.org"
57
+      url: "https://pub.flutter-io.cn"
58 58
     source: hosted
59 59
     version: "2.1.0"
60 60
   build:
61 61
     dependency: transitive
62 62
     description:
63 63
       name: build
64
-      url: "https://pub.dartlang.org"
64
+      url: "https://pub.flutter-io.cn"
65 65
     source: hosted
66 66
     version: "2.3.0"
67 67
   build_config:
68 68
     dependency: transitive
69 69
     description:
70 70
       name: build_config
71
-      url: "https://pub.dartlang.org"
71
+      url: "https://pub.flutter-io.cn"
72 72
     source: hosted
73 73
     version: "1.0.0"
74 74
   carousel_slider:
75 75
     dependency: "direct main"
76 76
     description:
77 77
       name: carousel_slider
78
-      url: "https://pub.dartlang.org"
78
+      url: "https://pub.flutter-io.cn"
79 79
     source: hosted
80 80
     version: "4.1.1"
81 81
   characters:
82 82
     dependency: transitive
83 83
     description:
84 84
       name: characters
85
-      url: "https://pub.dartlang.org"
85
+      url: "https://pub.flutter-io.cn"
86 86
     source: hosted
87 87
     version: "1.2.0"
88 88
   charcode:
89 89
     dependency: transitive
90 90
     description:
91 91
       name: charcode
92
-      url: "https://pub.dartlang.org"
92
+      url: "https://pub.flutter-io.cn"
93 93
     source: hosted
94 94
     version: "1.3.1"
95 95
   checked_yaml:
96 96
     dependency: transitive
97 97
     description:
98 98
       name: checked_yaml
99
-      url: "https://pub.dartlang.org"
99
+      url: "https://pub.flutter-io.cn"
100 100
     source: hosted
101 101
     version: "2.0.1"
102 102
   clock:
103 103
     dependency: transitive
104 104
     description:
105 105
       name: clock
106
-      url: "https://pub.dartlang.org"
106
+      url: "https://pub.flutter-io.cn"
107 107
     source: hosted
108 108
     version: "1.1.0"
109 109
   collection:
110 110
     dependency: transitive
111 111
     description:
112 112
       name: collection
113
-      url: "https://pub.dartlang.org"
113
+      url: "https://pub.flutter-io.cn"
114 114
     source: hosted
115 115
     version: "1.15.0"
116 116
   convert:
117 117
     dependency: transitive
118 118
     description:
119 119
       name: convert
120
-      url: "https://pub.dartlang.org"
120
+      url: "https://pub.flutter-io.cn"
121 121
     source: hosted
122
-    version: "3.0.1"
122
+    version: "3.0.2"
123 123
   crypto:
124 124
     dependency: transitive
125 125
     description:
126 126
       name: crypto
127
-      url: "https://pub.dartlang.org"
127
+      url: "https://pub.flutter-io.cn"
128 128
     source: hosted
129 129
     version: "3.0.2"
130 130
   cupertino_icons:
131 131
     dependency: "direct main"
132 132
     description:
133 133
       name: cupertino_icons
134
-      url: "https://pub.dartlang.org"
134
+      url: "https://pub.flutter-io.cn"
135 135
     source: hosted
136
-    version: "1.0.4"
136
+    version: "1.0.5"
137 137
   dart_style:
138 138
     dependency: transitive
139 139
     description:
140 140
       name: dart_style
141
-      url: "https://pub.dartlang.org"
141
+      url: "https://pub.flutter-io.cn"
142 142
     source: hosted
143 143
     version: "2.2.3"
144 144
   dio:
145 145
     dependency: "direct main"
146 146
     description:
147 147
       name: dio
148
-      url: "https://pub.dartlang.org"
148
+      url: "https://pub.flutter-io.cn"
149 149
     source: hosted
150 150
     version: "4.0.6"
151 151
   fake_async:
152 152
     dependency: transitive
153 153
     description:
154 154
       name: fake_async
155
-      url: "https://pub.dartlang.org"
155
+      url: "https://pub.flutter-io.cn"
156 156
     source: hosted
157 157
     version: "1.2.0"
158 158
   ff_stars:
159 159
     dependency: "direct main"
160 160
     description:
161 161
       name: ff_stars
162
-      url: "https://pub.dartlang.org"
162
+      url: "https://pub.flutter-io.cn"
163 163
     source: hosted
164 164
     version: "1.0.0"
165 165
   ffi:
166 166
     dependency: transitive
167 167
     description:
168 168
       name: ffi
169
-      url: "https://pub.dartlang.org"
169
+      url: "https://pub.flutter-io.cn"
170 170
     source: hosted
171 171
     version: "1.2.1"
172 172
   file:
173 173
     dependency: transitive
174 174
     description:
175 175
       name: file
176
-      url: "https://pub.dartlang.org"
176
+      url: "https://pub.flutter-io.cn"
177 177
     source: hosted
178 178
     version: "6.1.2"
179 179
   flutter:
@@ -185,21 +185,21 @@ packages:
185 185
     dependency: "direct main"
186 186
     description:
187 187
       name: flutter_easyloading
188
-      url: "https://pub.dartlang.org"
188
+      url: "https://pub.flutter-io.cn"
189 189
     source: hosted
190 190
     version: "3.0.5"
191 191
   flutter_easyrefresh:
192 192
     dependency: "direct main"
193 193
     description:
194 194
       name: flutter_easyrefresh
195
-      url: "https://pub.dartlang.org"
195
+      url: "https://pub.flutter-io.cn"
196 196
     source: hosted
197 197
     version: "2.2.1"
198 198
   flutter_lints:
199 199
     dependency: "direct dev"
200 200
     description:
201 201
       name: flutter_lints
202
-      url: "https://pub.dartlang.org"
202
+      url: "https://pub.flutter-io.cn"
203 203
     source: hosted
204 204
     version: "1.0.4"
205 205
   flutter_localizations:
@@ -211,21 +211,21 @@ packages:
211 211
     dependency: transitive
212 212
     description:
213 213
       name: flutter_plugin_android_lifecycle
214
-      url: "https://pub.dartlang.org"
214
+      url: "https://pub.flutter-io.cn"
215 215
     source: hosted
216 216
     version: "2.0.6"
217 217
   flutter_screenutil:
218 218
     dependency: "direct main"
219 219
     description:
220 220
       name: flutter_screenutil
221
-      url: "https://pub.dartlang.org"
221
+      url: "https://pub.flutter-io.cn"
222 222
     source: hosted
223
-    version: "5.5.3+1"
223
+    version: "5.5.3+2"
224 224
   flutter_spinkit:
225 225
     dependency: transitive
226 226
     description:
227 227
       name: flutter_spinkit
228
-      url: "https://pub.dartlang.org"
228
+      url: "https://pub.flutter-io.cn"
229 229
     source: hosted
230 230
     version: "5.1.0"
231 231
   flutter_test:
@@ -242,238 +242,238 @@ packages:
242 242
     dependency: "direct main"
243 243
     description:
244 244
       name: fluttertoast
245
-      url: "https://pub.dartlang.org"
245
+      url: "https://pub.flutter-io.cn"
246 246
     source: hosted
247 247
     version: "8.0.9"
248 248
   fluwx:
249 249
     dependency: "direct main"
250 250
     description:
251 251
       name: fluwx
252
-      url: "https://pub.dartlang.org"
252
+      url: "https://pub.flutter-io.cn"
253 253
     source: hosted
254 254
     version: "3.9.0+2"
255 255
   get:
256 256
     dependency: "direct main"
257 257
     description:
258 258
       name: get
259
-      url: "https://pub.dartlang.org"
259
+      url: "https://pub.flutter-io.cn"
260 260
     source: hosted
261
-    version: "4.6.1"
261
+    version: "4.6.5"
262 262
   get_storage:
263 263
     dependency: "direct main"
264 264
     description:
265 265
       name: get_storage
266
-      url: "https://pub.dartlang.org"
266
+      url: "https://pub.flutter-io.cn"
267 267
     source: hosted
268 268
     version: "2.0.3"
269 269
   glob:
270 270
     dependency: transitive
271 271
     description:
272 272
       name: glob
273
-      url: "https://pub.dartlang.org"
273
+      url: "https://pub.flutter-io.cn"
274 274
     source: hosted
275
-    version: "2.0.2"
275
+    version: "2.1.0"
276 276
   http_parser:
277 277
     dependency: transitive
278 278
     description:
279 279
       name: http_parser
280
-      url: "https://pub.dartlang.org"
280
+      url: "https://pub.flutter-io.cn"
281 281
     source: hosted
282 282
     version: "4.0.1"
283 283
   intl:
284 284
     dependency: transitive
285 285
     description:
286 286
       name: intl
287
-      url: "https://pub.dartlang.org"
287
+      url: "https://pub.flutter-io.cn"
288 288
     source: hosted
289 289
     version: "0.17.0"
290 290
   js:
291 291
     dependency: transitive
292 292
     description:
293 293
       name: js
294
-      url: "https://pub.dartlang.org"
294
+      url: "https://pub.flutter-io.cn"
295 295
     source: hosted
296 296
     version: "0.6.3"
297 297
   json_annotation:
298 298
     dependency: transitive
299 299
     description:
300 300
       name: json_annotation
301
-      url: "https://pub.dartlang.org"
301
+      url: "https://pub.flutter-io.cn"
302 302
     source: hosted
303 303
     version: "4.5.0"
304 304
   json_serializable:
305 305
     dependency: "direct main"
306 306
     description:
307 307
       name: json_serializable
308
-      url: "https://pub.dartlang.org"
308
+      url: "https://pub.flutter-io.cn"
309 309
     source: hosted
310 310
     version: "6.2.0"
311 311
   lints:
312 312
     dependency: transitive
313 313
     description:
314 314
       name: lints
315
-      url: "https://pub.dartlang.org"
315
+      url: "https://pub.flutter-io.cn"
316 316
     source: hosted
317 317
     version: "1.0.1"
318 318
   logging:
319 319
     dependency: transitive
320 320
     description:
321 321
       name: logging
322
-      url: "https://pub.dartlang.org"
322
+      url: "https://pub.flutter-io.cn"
323 323
     source: hosted
324 324
     version: "1.0.2"
325 325
   matcher:
326 326
     dependency: transitive
327 327
     description:
328 328
       name: matcher
329
-      url: "https://pub.dartlang.org"
329
+      url: "https://pub.flutter-io.cn"
330 330
     source: hosted
331 331
     version: "0.12.11"
332 332
   material_color_utilities:
333 333
     dependency: transitive
334 334
     description:
335 335
       name: material_color_utilities
336
-      url: "https://pub.dartlang.org"
336
+      url: "https://pub.flutter-io.cn"
337 337
     source: hosted
338 338
     version: "0.1.3"
339 339
   meta:
340 340
     dependency: transitive
341 341
     description:
342 342
       name: meta
343
-      url: "https://pub.dartlang.org"
343
+      url: "https://pub.flutter-io.cn"
344 344
     source: hosted
345 345
     version: "1.7.0"
346 346
   package_config:
347 347
     dependency: transitive
348 348
     description:
349 349
       name: package_config
350
-      url: "https://pub.dartlang.org"
350
+      url: "https://pub.flutter-io.cn"
351 351
     source: hosted
352
-    version: "2.0.2"
352
+    version: "2.1.0"
353 353
   path:
354 354
     dependency: transitive
355 355
     description:
356 356
       name: path
357
-      url: "https://pub.dartlang.org"
357
+      url: "https://pub.flutter-io.cn"
358 358
     source: hosted
359 359
     version: "1.8.0"
360 360
   path_provider:
361 361
     dependency: transitive
362 362
     description:
363 363
       name: path_provider
364
-      url: "https://pub.dartlang.org"
364
+      url: "https://pub.flutter-io.cn"
365 365
     source: hosted
366
-    version: "2.0.10"
366
+    version: "2.0.11"
367 367
   path_provider_android:
368 368
     dependency: transitive
369 369
     description:
370 370
       name: path_provider_android
371
-      url: "https://pub.dartlang.org"
371
+      url: "https://pub.flutter-io.cn"
372 372
     source: hosted
373 373
     version: "2.0.14"
374 374
   path_provider_ios:
375 375
     dependency: transitive
376 376
     description:
377 377
       name: path_provider_ios
378
-      url: "https://pub.dartlang.org"
378
+      url: "https://pub.flutter-io.cn"
379 379
     source: hosted
380 380
     version: "2.0.9"
381 381
   path_provider_linux:
382 382
     dependency: transitive
383 383
     description:
384 384
       name: path_provider_linux
385
-      url: "https://pub.dartlang.org"
385
+      url: "https://pub.flutter-io.cn"
386 386
     source: hosted
387
-    version: "2.1.6"
387
+    version: "2.1.7"
388 388
   path_provider_macos:
389 389
     dependency: transitive
390 390
     description:
391 391
       name: path_provider_macos
392
-      url: "https://pub.dartlang.org"
392
+      url: "https://pub.flutter-io.cn"
393 393
     source: hosted
394 394
     version: "2.0.6"
395 395
   path_provider_platform_interface:
396 396
     dependency: transitive
397 397
     description:
398 398
       name: path_provider_platform_interface
399
-      url: "https://pub.dartlang.org"
399
+      url: "https://pub.flutter-io.cn"
400 400
     source: hosted
401 401
     version: "2.0.4"
402 402
   path_provider_windows:
403 403
     dependency: transitive
404 404
     description:
405 405
       name: path_provider_windows
406
-      url: "https://pub.dartlang.org"
406
+      url: "https://pub.flutter-io.cn"
407 407
     source: hosted
408
-    version: "2.0.6"
408
+    version: "2.0.7"
409 409
   permission_handler:
410 410
     dependency: "direct main"
411 411
     description:
412 412
       name: permission_handler
413
-      url: "https://pub.dartlang.org"
413
+      url: "https://pub.flutter-io.cn"
414 414
     source: hosted
415 415
     version: "9.2.0"
416 416
   permission_handler_android:
417 417
     dependency: transitive
418 418
     description:
419 419
       name: permission_handler_android
420
-      url: "https://pub.dartlang.org"
420
+      url: "https://pub.flutter-io.cn"
421 421
     source: hosted
422 422
     version: "9.0.2+1"
423 423
   permission_handler_apple:
424 424
     dependency: transitive
425 425
     description:
426 426
       name: permission_handler_apple
427
-      url: "https://pub.dartlang.org"
427
+      url: "https://pub.flutter-io.cn"
428 428
     source: hosted
429 429
     version: "9.0.4"
430 430
   permission_handler_platform_interface:
431 431
     dependency: transitive
432 432
     description:
433 433
       name: permission_handler_platform_interface
434
-      url: "https://pub.dartlang.org"
434
+      url: "https://pub.flutter-io.cn"
435 435
     source: hosted
436 436
     version: "3.7.0"
437 437
   permission_handler_windows:
438 438
     dependency: transitive
439 439
     description:
440 440
       name: permission_handler_windows
441
-      url: "https://pub.dartlang.org"
441
+      url: "https://pub.flutter-io.cn"
442 442
     source: hosted
443 443
     version: "0.1.0"
444 444
   platform:
445 445
     dependency: transitive
446 446
     description:
447 447
       name: platform
448
-      url: "https://pub.dartlang.org"
448
+      url: "https://pub.flutter-io.cn"
449 449
     source: hosted
450 450
     version: "3.1.0"
451 451
   plugin_platform_interface:
452 452
     dependency: transitive
453 453
     description:
454 454
       name: plugin_platform_interface
455
-      url: "https://pub.dartlang.org"
455
+      url: "https://pub.flutter-io.cn"
456 456
     source: hosted
457 457
     version: "2.1.2"
458 458
   process:
459 459
     dependency: transitive
460 460
     description:
461 461
       name: process
462
-      url: "https://pub.dartlang.org"
462
+      url: "https://pub.flutter-io.cn"
463 463
     source: hosted
464 464
     version: "4.2.4"
465 465
   pub_semver:
466 466
     dependency: transitive
467 467
     description:
468 468
       name: pub_semver
469
-      url: "https://pub.dartlang.org"
469
+      url: "https://pub.flutter-io.cn"
470 470
     source: hosted
471 471
     version: "2.1.1"
472 472
   pubspec_parse:
473 473
     dependency: transitive
474 474
     description:
475 475
       name: pubspec_parse
476
-      url: "https://pub.dartlang.org"
476
+      url: "https://pub.flutter-io.cn"
477 477
     source: hosted
478 478
     version: "1.2.0"
479 479
   sky_engine:
@@ -485,112 +485,112 @@ packages:
485 485
     dependency: transitive
486 486
     description:
487 487
       name: source_gen
488
-      url: "https://pub.dartlang.org"
488
+      url: "https://pub.flutter-io.cn"
489 489
     source: hosted
490 490
     version: "1.2.2"
491 491
   source_helper:
492 492
     dependency: transitive
493 493
     description:
494 494
       name: source_helper
495
-      url: "https://pub.dartlang.org"
495
+      url: "https://pub.flutter-io.cn"
496 496
     source: hosted
497 497
     version: "1.3.2"
498 498
   source_span:
499 499
     dependency: transitive
500 500
     description:
501 501
       name: source_span
502
-      url: "https://pub.dartlang.org"
502
+      url: "https://pub.flutter-io.cn"
503 503
     source: hosted
504 504
     version: "1.8.1"
505 505
   stack_trace:
506 506
     dependency: transitive
507 507
     description:
508 508
       name: stack_trace
509
-      url: "https://pub.dartlang.org"
509
+      url: "https://pub.flutter-io.cn"
510 510
     source: hosted
511 511
     version: "1.10.0"
512 512
   stream_channel:
513 513
     dependency: transitive
514 514
     description:
515 515
       name: stream_channel
516
-      url: "https://pub.dartlang.org"
516
+      url: "https://pub.flutter-io.cn"
517 517
     source: hosted
518 518
     version: "2.1.0"
519 519
   stream_transform:
520 520
     dependency: transitive
521 521
     description:
522 522
       name: stream_transform
523
-      url: "https://pub.dartlang.org"
523
+      url: "https://pub.flutter-io.cn"
524 524
     source: hosted
525 525
     version: "2.0.0"
526 526
   string_scanner:
527 527
     dependency: transitive
528 528
     description:
529 529
       name: string_scanner
530
-      url: "https://pub.dartlang.org"
530
+      url: "https://pub.flutter-io.cn"
531 531
     source: hosted
532 532
     version: "1.1.0"
533 533
   term_glyph:
534 534
     dependency: transitive
535 535
     description:
536 536
       name: term_glyph
537
-      url: "https://pub.dartlang.org"
537
+      url: "https://pub.flutter-io.cn"
538 538
     source: hosted
539 539
     version: "1.2.0"
540 540
   test_api:
541 541
     dependency: transitive
542 542
     description:
543 543
       name: test_api
544
-      url: "https://pub.dartlang.org"
544
+      url: "https://pub.flutter-io.cn"
545 545
     source: hosted
546 546
     version: "0.4.8"
547 547
   tobias:
548 548
     dependency: "direct main"
549 549
     description:
550 550
       name: tobias
551
-      url: "https://pub.dartlang.org"
551
+      url: "https://pub.flutter-io.cn"
552 552
     source: hosted
553 553
     version: "2.4.0+2"
554 554
   typed_data:
555 555
     dependency: transitive
556 556
     description:
557 557
       name: typed_data
558
-      url: "https://pub.dartlang.org"
558
+      url: "https://pub.flutter-io.cn"
559 559
     source: hosted
560 560
     version: "1.3.0"
561 561
   vector_math:
562 562
     dependency: transitive
563 563
     description:
564 564
       name: vector_math
565
-      url: "https://pub.dartlang.org"
565
+      url: "https://pub.flutter-io.cn"
566 566
     source: hosted
567 567
     version: "2.1.1"
568 568
   watcher:
569 569
     dependency: transitive
570 570
     description:
571 571
       name: watcher
572
-      url: "https://pub.dartlang.org"
572
+      url: "https://pub.flutter-io.cn"
573 573
     source: hosted
574 574
     version: "1.0.1"
575 575
   win32:
576 576
     dependency: transitive
577 577
     description:
578 578
       name: win32
579
-      url: "https://pub.dartlang.org"
579
+      url: "https://pub.flutter-io.cn"
580 580
     source: hosted
581 581
     version: "2.5.2"
582 582
   xdg_directories:
583 583
     dependency: transitive
584 584
     description:
585 585
       name: xdg_directories
586
-      url: "https://pub.dartlang.org"
586
+      url: "https://pub.flutter-io.cn"
587 587
     source: hosted
588 588
     version: "0.2.0+1"
589 589
   yaml:
590 590
     dependency: transitive
591 591
     description:
592 592
       name: yaml
593
-      url: "https://pub.dartlang.org"
593
+      url: "https://pub.flutter-io.cn"
594 594
     source: hosted
595 595
     version: "3.1.1"
596 596
 sdks: