|
@@ -1,10 +1,11 @@
|
1
|
1
|
import 'package:flutter/material.dart';
|
|
2
|
+import 'package:flutter_easyrefresh/easy_refresh.dart';
|
2
|
3
|
import 'package:flutter_screenutil/flutter_screenutil.dart';
|
3
|
4
|
import 'package:get/get.dart';
|
4
|
5
|
import 'package:worker_client/models/entities/Order.dart';
|
5
|
6
|
import 'package:worker_client/services/order.dart';
|
6
|
|
-import 'package:worker_client/widgets/MoreList.dart';
|
7
|
7
|
import 'package:worker_client/widgets/MyCard/index.dart';
|
|
8
|
+import 'package:worker_client/widgets/NullCard.dart';
|
8
|
9
|
import 'package:worker_client/widgets/layout/BasicPage.dart';
|
9
|
10
|
|
10
|
11
|
class Order extends BasicPage {
|
|
@@ -12,8 +13,7 @@ class Order extends BasicPage {
|
12
|
13
|
tabIndex = 1;
|
13
|
14
|
naviTitle = '订单列表';
|
14
|
15
|
}
|
15
|
|
-
|
16
|
|
- List<OrderModel> orderList = [];
|
|
16
|
+ final orderList = Rx<List<OrderModel>>([]);
|
17
|
17
|
final q = Rx<String>('');
|
18
|
18
|
|
19
|
19
|
List<String> tabValues = [
|
|
@@ -23,9 +23,64 @@ class Order extends BasicPage {
|
23
|
23
|
];
|
24
|
24
|
final currentIndex = Rx<int>(0);
|
25
|
25
|
|
|
26
|
+ //测试上拉加载更多
|
|
27
|
+ EasyRefreshController _controller = EasyRefreshController();
|
|
28
|
+ var pageIndex = 1;
|
|
29
|
+ var count = 10;
|
|
30
|
+ int maxSum = 0;
|
|
31
|
+ final params = Rx<Map<String, dynamic>>({'pageNum': 1, 'workStatus': 1});
|
|
32
|
+ final newOrderList = Rx<List<OrderModel>>([]);
|
|
33
|
+ void getNewData() {
|
|
34
|
+ Map<String, dynamic> map = {...params.value};
|
|
35
|
+ pageIndex = 1;
|
|
36
|
+ map['pageNum'] = pageIndex;
|
|
37
|
+ map['workStatus'] = currentIndex.value;
|
|
38
|
+ if (map['workStatus'] == 2) {
|
|
39
|
+ map['workStatus'] = 3;
|
|
40
|
+ }
|
|
41
|
+ map['q'] = q.value;
|
|
42
|
+ params(map);
|
|
43
|
+ getOrderList(params.value).then((value) {
|
|
44
|
+ maxSum = value['total'];
|
|
45
|
+
|
|
46
|
+ List<OrderModel> list = [];
|
|
47
|
+ value['records'].forEach((item) {
|
|
48
|
+ list.add(OrderModel.fromJson(item));
|
|
49
|
+ });
|
|
50
|
+ orderList(list);
|
|
51
|
+ newOrderList(list);
|
|
52
|
+ });
|
|
53
|
+ }
|
|
54
|
+
|
|
55
|
+ void getMoreData() {
|
|
56
|
+ Map<String, dynamic> map = {...params.value};
|
|
57
|
+ pageIndex++;
|
|
58
|
+ map['pageNum'] = pageIndex;
|
|
59
|
+ map['workStatus'] = currentIndex.value;
|
|
60
|
+ if (map['workStatus'] == 2) {
|
|
61
|
+ map['workStatus'] = 3;
|
|
62
|
+ }
|
|
63
|
+ map['q'] = q.value;
|
|
64
|
+ params(map);
|
|
65
|
+ getOrderList(params.value).then((value) {
|
|
66
|
+ maxSum = value['total'];
|
|
67
|
+ List<OrderModel> list = [];
|
|
68
|
+ List<OrderModel> Newlist = [];
|
|
69
|
+ value['records'].forEach((item) {
|
|
70
|
+ list.add(OrderModel.fromJson(item));
|
|
71
|
+ });
|
|
72
|
+ newOrderList.value.addAll(list);
|
|
73
|
+ Newlist.addAll(newOrderList.value);
|
|
74
|
+ orderList(Newlist);
|
|
75
|
+ });
|
|
76
|
+ }
|
|
77
|
+
|
|
78
|
+ int _count = 0;
|
|
79
|
+
|
26
|
80
|
@override
|
27
|
81
|
void beforeShow() {
|
28
|
82
|
super.beforeShow();
|
|
83
|
+ getNewData();
|
29
|
84
|
}
|
30
|
85
|
|
31
|
86
|
List<OrderModel> GetList(value) {
|
|
@@ -34,8 +89,6 @@ class Order extends BasicPage {
|
34
|
89
|
return list;
|
35
|
90
|
}
|
36
|
91
|
|
37
|
|
- Map<String, dynamic> map = {'pageNum': 1};
|
38
|
|
-
|
39
|
92
|
void goDetail(OrderModel item) {
|
40
|
93
|
Get.toNamed('/orderDetail', arguments: {'id': item.orderId});
|
41
|
94
|
}
|
|
@@ -44,9 +97,7 @@ class Order extends BasicPage {
|
44
|
97
|
Widget builder(BuildContext context) {
|
45
|
98
|
return Container(
|
46
|
99
|
width: 375.w,
|
47
|
|
- decoration: const BoxDecoration(
|
48
|
|
- color: Colors.white
|
49
|
|
- ),
|
|
100
|
+ decoration: const BoxDecoration(color: Colors.white),
|
50
|
101
|
child: Column(
|
51
|
102
|
children: [
|
52
|
103
|
Container(
|
|
@@ -79,6 +130,7 @@ class Order extends BasicPage {
|
79
|
130
|
),
|
80
|
131
|
onChanged: (e) {
|
81
|
132
|
q(e);
|
|
133
|
+ getNewData();
|
82
|
134
|
},
|
83
|
135
|
),
|
84
|
136
|
),
|
|
@@ -111,6 +163,7 @@ class Order extends BasicPage {
|
111
|
163
|
child: GestureDetector(
|
112
|
164
|
onTap: () {
|
113
|
165
|
currentIndex(index);
|
|
166
|
+ getNewData();
|
114
|
167
|
},
|
115
|
168
|
child: SizedBox(
|
116
|
169
|
height: 44.h,
|
|
@@ -147,33 +200,65 @@ class Order extends BasicPage {
|
147
|
200
|
}).toList(),
|
148
|
201
|
))),
|
149
|
202
|
Expanded(
|
150
|
|
- flex:1,
|
151
|
|
- child: MoreList(
|
152
|
|
- serves: getOrderList,
|
153
|
|
- params: map,
|
154
|
|
- getJson: (BuildContext context, List<dynamic> jsonData) {
|
155
|
|
- orderList = GetList(jsonData);
|
156
|
|
- return Container(
|
157
|
|
- decoration: const BoxDecoration(color: Colors.white),
|
158
|
|
- padding: EdgeInsets.all(15.w),
|
159
|
|
- child: Column(
|
160
|
|
- children: orderList
|
161
|
|
- .map(
|
162
|
|
- (item) => MyCard(
|
163
|
|
- item: item,
|
164
|
|
- job: false,
|
165
|
|
- detail: false,
|
166
|
|
- goDetail: () {
|
167
|
|
- goDetail(item);
|
168
|
|
- },
|
169
|
|
- buttomText: item.status == 0 ? '开始作业' : '完成作业',
|
170
|
|
- onClick: () {},
|
171
|
|
- ),
|
172
|
|
- )
|
173
|
|
- .toList(),
|
174
|
|
- ),
|
175
|
|
- );
|
176
|
|
- },
|
|
203
|
+ flex: 1,
|
|
204
|
+ child: Obx(() => orderList.value.isNotEmpty
|
|
205
|
+ ? EasyRefresh(
|
|
206
|
+ controller: _controller,
|
|
207
|
+ header: ClassicalHeader(
|
|
208
|
+ infoText: '',
|
|
209
|
+ refreshedText: '刷新完成',
|
|
210
|
+ refreshText: '刷新中....',
|
|
211
|
+ refreshingText: '刷新中....',
|
|
212
|
+ refreshReadyText: '刷新完毕',
|
|
213
|
+ noMoreText: '',
|
|
214
|
+ textColor: const Color(0xff666666),
|
|
215
|
+ ),
|
|
216
|
+ footer: ClassicalFooter(
|
|
217
|
+ infoText: '',
|
|
218
|
+ loadText: '上拉加载更多',
|
|
219
|
+ loadingText: '加载中....',
|
|
220
|
+ loadReadyText: '释放加载',
|
|
221
|
+ noMoreText: '暂无更多',
|
|
222
|
+ enableInfiniteLoad: false,
|
|
223
|
+ textColor: const Color(0xff666666),
|
|
224
|
+ ),
|
|
225
|
+ // firstRefresh: true,//是否首次刷新
|
|
226
|
+ onRefresh: () async {
|
|
227
|
+ await Future.delayed(const Duration(seconds: 1), () {
|
|
228
|
+ // print("下拉刷新-----");
|
|
229
|
+ getNewData();
|
|
230
|
+ _count = orderList.value.length;
|
|
231
|
+ // print("最新条数" + _count.toString());
|
|
232
|
+ _controller.resetLoadState();
|
|
233
|
+ });
|
|
234
|
+ },
|
|
235
|
+ onLoad: () async {
|
|
236
|
+ await Future.delayed(const Duration(seconds: 1), () {
|
|
237
|
+ // print("上拉加载-----");
|
|
238
|
+ getMoreData();
|
|
239
|
+ _count = orderList.value.length;
|
|
240
|
+ // print("加载更多条数" + _count.toString());
|
|
241
|
+ _controller.finishLoad(noMore: _count >= maxSum);
|
|
242
|
+ });
|
|
243
|
+ },
|
|
244
|
+ child: Column(
|
|
245
|
+ children: orderList.value
|
|
246
|
+ .map(
|
|
247
|
+ (item) => MyCard(
|
|
248
|
+ item: item,
|
|
249
|
+ job: false,
|
|
250
|
+ detail: false,
|
|
251
|
+ onClick: () {},
|
|
252
|
+ goDetail: () {
|
|
253
|
+ // goDetail(item);
|
|
254
|
+ },
|
|
255
|
+ buttomText: item.status == 0 ? '开始作业' : '完成作业',
|
|
256
|
+ ),
|
|
257
|
+ )
|
|
258
|
+ .toList(),
|
|
259
|
+ ),
|
|
260
|
+ )
|
|
261
|
+ : const NullCard(text:'暂无订单'),
|
177
|
262
|
),
|
178
|
263
|
),
|
179
|
264
|
],
|