Explorar el Código

订单管理页下拉刷新,上划加载

daxu0403 hace 7 años
padre
commit
eff12c831c
Se han modificado 2 ficheros con 65 adiciones y 35 borrados
  1. 59 33
      lib/pages/order_management_page.dart
  2. 6 2
      lib/pages/order_taking_page.dart

+ 59 - 33
lib/pages/order_management_page.dart

@@ -73,6 +73,7 @@ class _QueryWidgetState extends State < QueryWidget > {
   List < FromStatusGetOrderList > orderList = [];
   List likeOrderNoList = [];
   var timer;
+  bool loadMoreStatus = true;
 
 
   @override
@@ -81,7 +82,10 @@ class _QueryWidgetState extends State < QueryWidget > {
     switchOrderFromStatus(orderStatus, page);
     _scrollController.addListener(() {
       if (_scrollController.position.pixels == _scrollController.position.maxScrollExtent) {
-        print("滑到底部了");
+        if(loadMoreStatus){
+          page = ++page;
+          getMoreOrder(orderStatus, page);
+        }
       }
     });
   }
@@ -133,16 +137,16 @@ class _QueryWidgetState extends State < QueryWidget > {
                                   _orderNo = value;
                                 });
                                 if (_orderNo.length >= 6) {
-                                  if(timer!=null){
+                                  if (timer != null) {
                                     timer.cancel();
                                   }
-                                  timer = Timer(Duration(milliseconds: 500),(){
-                                    orderNoLike(_orderNo).then((resp){
-                                      if(isNotError(context, resp)){
+                                  timer = Timer(Duration(milliseconds: 500), () {
+                                    orderNoLike(_orderNo).then((resp) {
+                                      if (isNotError(context, resp)) {
                                         LikeOrderNo tempObj = LikeOrderNo.fromJson(resp.data);
-                                        if(tempObj.data.length>0){
+                                        if (tempObj.data.length > 0) {
                                           setState(() {
-                                            likeOrderNoList =tempObj.data;
+                                            likeOrderNoList = tempObj.data;
                                             showStatus = false;
                                           });
                                         }
@@ -275,20 +279,25 @@ class _QueryWidgetState extends State < QueryWidget > {
                   ) : orderList.length == 0 ? Center(
                     child: Text('暂无订单'),
                   ) :
-                  ListView.builder(
-                    controller: _scrollController,
-                    itemCount: orderList.length + 1,
-                    itemBuilder: (BuildContext context, int index) {
-                      if (index < orderList.length) {
-                        return _cardWiget(orderList[index], index);
-                      }
-                      if (hasNextPage) {
-                        return _getMoreWidget();
-                      } else {
-                        return _noMoreWidegt();
-                      }
-                    },
+                  RefreshIndicator(
+                    onRefresh: refreshOrder,
+                    child: ListView.builder(
+                      physics: AlwaysScrollableScrollPhysics(),
+                      controller: _scrollController,
+                      itemCount: orderList.length + 1,
+                      itemBuilder: (BuildContext context, int index) {
+                        if (index < orderList.length) {
+                          return _cardWiget(orderList[index], index);
+                        }
+                        if (hasNextPage) {
+                          return _getMoreWidget();
+                        } else {
+                          return _noMoreWidegt();
+                        }
+                      },
+                    )
                   )
+
                 ),
               )
             ],
@@ -312,16 +321,16 @@ class _QueryWidgetState extends State < QueryWidget > {
               child: ListView.builder(
                 itemCount: likeOrderNoList.length,
                 itemBuilder: (BuildContext context, int index) {
-                return InkWell(
+                  return InkWell(
                     child: Padding(
                       padding: EdgeInsets.all(10),
                       child: Text(likeOrderNoList[index]),
                     ),
                     onTap: () {
                       setState(() {
-                        page=1;
+                        page = 1;
                       });
-                      fromStatusGetOrderList(orderStatus, page,_orderNo).then((resp) {
+                      fromStatusGetOrderList(orderStatus, page, _orderNo).then((resp) {
                         if (isNotError(context, resp)) {
                           FromStatusGetOrderObj tempObj = FromStatusGetOrderObj.fromJson(resp.data);
                           setState(() {
@@ -337,7 +346,7 @@ class _QueryWidgetState extends State < QueryWidget > {
                       });
                     },
                   );
-               },
+                },
               ),
             ),
           )
@@ -438,7 +447,7 @@ class _QueryWidgetState extends State < QueryWidget > {
                 return new LoadingDialog( //调用对话框
                   text: '是否确认作废', childCallback: (val) {
                     if (val) {
-                      myUpdataOrder(obj.orderNo,5,index);
+                      myUpdataOrder(obj.orderNo, 5, index);
                     } else {
                       return;
                     }
@@ -515,7 +524,7 @@ class _QueryWidgetState extends State < QueryWidget > {
                 return new LoadingDialog( //调用对话框
                   text: '是否确认作废', childCallback: (val) {
                     if (val) {
-                     myUpdataOrder(obj.orderNo,5,index);
+                      myUpdataOrder(obj.orderNo, 5, index);
                     } else {
                       return;
                     }
@@ -545,7 +554,7 @@ class _QueryWidgetState extends State < QueryWidget > {
                 return new LoadingDialog( //调用对话框
                   text: '是否确认拒收', childCallback: (val) {
                     if (val) {
-                      myUpdataOrder(obj.orderNo,4,index);
+                      myUpdataOrder(obj.orderNo, 4, index);
                     } else {
                       return;
                     }
@@ -575,7 +584,7 @@ class _QueryWidgetState extends State < QueryWidget > {
                 return new LoadingDialog( //调用对话框
                   text: '是否确认签收', childCallback: (val) {
                     if (val) {
-                       myUpdataOrder(obj.orderNo,3,index);
+                      myUpdataOrder(obj.orderNo, 3, index);
                     } else {
                       return;
                     }
@@ -732,6 +741,7 @@ class _QueryWidgetState extends State < QueryWidget > {
     setState(() {
       orderList = null;
     });
+    page = 1;
     fromStatusGetOrderList(orderStatus, page).then((resp) {
       if (isNotError(context, resp)) {
         FromStatusGetOrderObj tempObj = FromStatusGetOrderObj.fromJson(resp.data);
@@ -746,6 +756,7 @@ class _QueryWidgetState extends State < QueryWidget > {
     if (!hasNextPage) {
       return;
     }
+    loadMoreStatus =false;
     fromStatusGetOrderList(orderStatus, page).then((resp) {
       if (isNotError(context, resp)) {
         FromStatusGetOrderObj tempObj = FromStatusGetOrderObj.fromJson(resp.data);
@@ -753,13 +764,16 @@ class _QueryWidgetState extends State < QueryWidget > {
           orderList.addAll(tempObj.data.items);
           hasNextPage = tempObj.data.hasNextPage;
         });
+        loadMoreStatus = true;
+      }else{
+        loadMoreStatus = true;
       }
     });
   }
 
-  deleteOrder(int index){
+  deleteOrder(int index) {
     setState(() {
-       orderList.removeAt(index);
+      orderList.removeAt(index);
     });
     if (orderList.length < 4) {
       if (hasNextPage) {
@@ -770,11 +784,23 @@ class _QueryWidgetState extends State < QueryWidget > {
       }
     }
   }
-  myUpdataOrder(String myOrderNo,int myOrderStatus,int index){
-    updataOrderStatus(myOrderNo, myOrderStatus).then((resp){
-      if(isNotError(context, resp)){
+  myUpdataOrder(String myOrderNo, int myOrderStatus, int index) {
+    updataOrderStatus(myOrderNo, myOrderStatus).then((resp) {
+      if (isNotError(context, resp)) {
         deleteOrder(index);
       }
     });
   }
+  Future refreshOrder() async {
+    page = 1;
+    await fromStatusGetOrderList(orderStatus, page).then((resp) {
+      if (isNotError(context, resp)) {
+        FromStatusGetOrderObj tempObj = FromStatusGetOrderObj.fromJson(resp.data);
+        setState(() {
+          orderList = tempObj.data.items;
+          hasNextPage = tempObj.data.hasNextPage;
+        });
+      }
+    });
+  }
 }

+ 6 - 2
lib/pages/order_taking_page.dart

@@ -28,6 +28,7 @@ class _OrderTakingPageState extends State < OrderTakingPage > with AutomaticKeep
   String lineIdStr = '';
   String oldLineIdStr = '';
   int page = 1;
+  bool loadMoreOrder = true;
   @override
   void initState() {
     super.initState();
@@ -54,8 +55,8 @@ class _OrderTakingPageState extends State < OrderTakingPage > with AutomaticKeep
         switchLine(context);
       }
       if (_scrollController.position.pixels == _scrollController.position.maxScrollExtent) {
-        print('滑动到底部了');
-        if (hasNextPage) {
+        if (hasNextPage && loadMoreOrder) {
+          loadMoreOrder = false;
           page = ++page;
           getOrderList(stationId, lineIdStr, page).then((resp) {
             if (isNotError(context, resp)) {
@@ -64,6 +65,9 @@ class _OrderTakingPageState extends State < OrderTakingPage > with AutomaticKeep
                 orderList.addAll(tempObj.data.items);
                 hasNextPage = tempObj.data.hasNextPage;
               });
+              loadMoreOrder = true;
+            }else{
+              loadMoreOrder = true;
             }
           });
         }