Переглянути джерело

订单管理模糊匹配订单号,优化首页下拉刷新

daxu0403 7 роки тому
батько
коміт
c8464046e2

BIN
android/.gradle/4.10.2/fileHashes/fileHashes.bin


BIN
android/.gradle/4.10.2/fileHashes/fileHashes.lock


BIN
android/.gradle/4.10.2/taskHistory/taskHistory.bin


BIN
android/.gradle/4.10.2/taskHistory/taskHistory.lock


BIN
android/.gradle/buildOutputCleanup/buildOutputCleanup.lock


+ 1 - 0
lib/pages/my_page.dart

@@ -329,6 +329,7 @@ class _MyPageState extends State < MyPage > with AutomaticKeepAliveClientMixin {
             return new LoadingDialog( //调用对话框
               text: '确认退出?', childCallback: (val) {
                 if (val) {
+                  clearKey();
                   Navigator.pushReplacement(context, MaterialPageRoute(builder: (context) {
                     return LoginPage();
                   }));

+ 93 - 54
lib/pages/order_management_page.dart

@@ -1,5 +1,6 @@
 import 'package:flutter/material.dart';
 import 'package:flutter_screenutil/flutter_screenutil.dart';
+import 'dart:async';
 import 'order_management_page/order_detail_page.dart';
 import '../showDialog.dart';
 import '../util/models.dart';
@@ -70,6 +71,8 @@ class _QueryWidgetState extends State < QueryWidget > {
   int page = 1;
   bool hasNextPage = true;
   List < FromStatusGetOrderList > orderList = [];
+  List likeOrderNoList = [];
+  var timer;
 
 
   @override
@@ -126,13 +129,25 @@ class _QueryWidgetState extends State < QueryWidget > {
                                 });
                               },
                               onChanged: ((value) {
-                                print(value);
                                 setState(() {
                                   _orderNo = value;
                                 });
                                 if (_orderNo.length >= 6) {
-                                  setState(() {
-                                    showStatus = false;
+                                  if(timer!=null){
+                                    timer.cancel();
+                                  }
+                                  timer = Timer(Duration(milliseconds: 500),(){
+                                    orderNoLike(_orderNo).then((resp){
+                                      if(isNotError(context, resp)){
+                                        LikeOrderNo tempObj = LikeOrderNo.fromJson(resp.data);
+                                        if(tempObj.data.length>0){
+                                          setState(() {
+                                            likeOrderNoList =tempObj.data;
+                                            showStatus = false;
+                                          });
+                                        }
+                                      }
+                                    });
                                   });
                                 } else {
                                   setState(() {
@@ -294,23 +309,35 @@ class _QueryWidgetState extends State < QueryWidget > {
                 border: Border.all(color: Color.fromRGBO(204, 204, 204, 1), width: 1),
                 borderRadius: BorderRadius.all(Radius.circular(5))
               ),
-              child: ListView(
-                children: < Widget > [
-                  InkWell(
+              child: ListView.builder(
+                itemCount: likeOrderNoList.length,
+                itemBuilder: (BuildContext context, int index) {
+                return InkWell(
                     child: Padding(
                       padding: EdgeInsets.all(10),
-                      child: Text("11012312312312312313123131"),
+                      child: Text(likeOrderNoList[index]),
                     ),
                     onTap: () {
                       setState(() {
-                        _orderController.text = ('11122223333333');
+                        page=1;
+                      });
+                      fromStatusGetOrderList(orderStatus, page,_orderNo).then((resp) {
+                        if (isNotError(context, resp)) {
+                          FromStatusGetOrderObj tempObj = FromStatusGetOrderObj.fromJson(resp.data);
+                          setState(() {
+                            orderList = tempObj.data.items;
+                            hasNextPage = tempObj.data.hasNextPage;
+                          });
+                        }
+                      });
+                      setState(() {
+                        _orderController.text = likeOrderNoList[index];
                         showStatus = true;
                         FocusScope.of(context).requestFocus(FocusNode());
                       });
                     },
-                  )
-
-                ],
+                  );
+               },
               ),
             ),
           )
@@ -386,36 +413,6 @@ class _QueryWidgetState extends State < QueryWidget > {
       )
     );
   }
-
-  switchOrderFromStatus(int orderStatus, int page) {
-    setState(() {
-      orderList = null;
-    });
-    fromStatusGetOrderList(orderStatus, page).then((resp) {
-      if (isNotError(context, resp)) {
-        FromStatusGetOrderObj tempObj = FromStatusGetOrderObj.fromJson(resp.data);
-        setState(() {
-          orderList = tempObj.data.items;
-          hasNextPage = tempObj.data.hasNextPage;
-        });
-      }
-    });
-  }
-  getMoreOrder(int orderStatus, int page) {
-    if (!hasNextPage) {
-      return;
-    }
-    fromStatusGetOrderList(orderStatus, page).then((resp) {
-      if (isNotError(context, resp)) {
-        FromStatusGetOrderObj tempObj = FromStatusGetOrderObj.fromJson(resp.data);
-        setState(() {
-          orderList.addAll(tempObj.data.items);
-          hasNextPage = tempObj.data.hasNextPage;
-        });
-      }
-    });
-  }
-
   Widget _status1Fun(FromStatusGetOrderList obj, int index) {
     return Row(
       mainAxisAlignment: MainAxisAlignment.spaceBetween,
@@ -440,7 +437,7 @@ class _QueryWidgetState extends State < QueryWidget > {
                 return new LoadingDialog( //调用对话框
                   text: '是否确认作废', childCallback: (val) {
                     if (val) {
-                      //widget.callback(widget.index);
+                      myUpdataOrder(obj.orderNo,5,index);
                     } else {
                       return;
                     }
@@ -478,15 +475,7 @@ class _QueryWidgetState extends State < QueryWidget > {
                           })
                       ).then((resp) {
                         if (resp == true) {
-                          orderList.removeAt(index);
-                          if (orderList.length < 4) {
-                            if (hasNextPage) {
-                              setState(() {
-                                page = ++page;
-                              });
-                              getMoreOrder(orderStatus, page);
-                            }
-                          }
+                          deleteOrder(index);
                         }
                       });
                     } else {
@@ -525,7 +514,7 @@ class _QueryWidgetState extends State < QueryWidget > {
                 return new LoadingDialog( //调用对话框
                   text: '是否确认作废', childCallback: (val) {
                     if (val) {
-                      //widget.callback(widget.index);
+                     myUpdataOrder(obj.orderNo,5,index);
                     } else {
                       return;
                     }
@@ -555,7 +544,7 @@ class _QueryWidgetState extends State < QueryWidget > {
                 return new LoadingDialog( //调用对话框
                   text: '是否确认拒收', childCallback: (val) {
                     if (val) {
-                      //widget.callback(widget.index);
+                      myUpdataOrder(obj.orderNo,4,index);
                     } else {
                       return;
                     }
@@ -585,7 +574,7 @@ class _QueryWidgetState extends State < QueryWidget > {
                 return new LoadingDialog( //调用对话框
                   text: '是否确认签收', childCallback: (val) {
                     if (val) {
-                      //widget.callback(widget.index);
+                       myUpdataOrder(obj.orderNo,3,index);
                     } else {
                       return;
                     }
@@ -737,4 +726,54 @@ class _QueryWidgetState extends State < QueryWidget > {
       ),
     );
   }
+
+  switchOrderFromStatus(int orderStatus, int page) {
+    setState(() {
+      orderList = null;
+    });
+    fromStatusGetOrderList(orderStatus, page).then((resp) {
+      if (isNotError(context, resp)) {
+        FromStatusGetOrderObj tempObj = FromStatusGetOrderObj.fromJson(resp.data);
+        setState(() {
+          orderList = tempObj.data.items;
+          hasNextPage = tempObj.data.hasNextPage;
+        });
+      }
+    });
+  }
+  getMoreOrder(int orderStatus, int page) {
+    if (!hasNextPage) {
+      return;
+    }
+    fromStatusGetOrderList(orderStatus, page).then((resp) {
+      if (isNotError(context, resp)) {
+        FromStatusGetOrderObj tempObj = FromStatusGetOrderObj.fromJson(resp.data);
+        setState(() {
+          orderList.addAll(tempObj.data.items);
+          hasNextPage = tempObj.data.hasNextPage;
+        });
+      }
+    });
+  }
+
+  deleteOrder(int index){
+    setState(() {
+       orderList.removeAt(index);
+    });
+    if (orderList.length < 4) {
+      if (hasNextPage) {
+        setState(() {
+          page = ++page;
+        });
+        getMoreOrder(orderStatus, page);
+      }
+    }
+  }
+  myUpdataOrder(String myOrderNo,int myOrderStatus,int index){
+    updataOrderStatus(myOrderNo, myOrderStatus).then((resp){
+      if(isNotError(context, resp)){
+        deleteOrder(index);
+      }
+    });
+  }
 }

+ 5 - 3
lib/pages/order_taking_page.dart

@@ -256,17 +256,19 @@ class _OrderTakingPageState extends State < OrderTakingPage > with AutomaticKeep
     );
   }
 
-  Future < Null > _onRefresh() async {
+  Future  _onRefresh() async{
+    var stationId;
     await getKey('stationId').then((value) {
+      stationId = value;
       page = 1;
-      getOrderList(value, lineIdStr, page).then((resp) {
+    });
+    await getOrderList(stationId, lineIdStr, page).then((resp) {
         if(isNotError(context, resp)){
           setState(() {
             orderList = OrderListObj.fromJson(resp.data).data.items;
           });
         }
       });
-    });
   }
 
   void deleteOrder(val) { //确认接单后的操作

+ 111 - 78
lib/util/api.dart

@@ -47,111 +47,144 @@ Future updataPasswrod(oldPassword, newPassword) async {
 
 //发件(创建订单)
 Future createOrder(
-  int sendCompanyId,//寄件公司Id
-  String sendCompanyName,//寄件公司名称 不能为空
-  String sendCompanyPhone,//寄件公司电话 不能为空
-  String sendCompanyCode,//寄件公司编码 
-  String sendCompanyProvinceName,//寄件公司省名称 不能为空
-  String sendCompanyProvinceCode,//寄件公司省编码 不能为空
-  String sendCompanyCityName,//寄件公司市名称 不能为空
-  String sendCompanyCityCode,//寄件公司市编码 不能为空
-  String sendCompanyAreaName,//寄件公司区名称 不能为空
-  String sendCompanyAreaCode,//寄件公司区编码 不能为空
-  String sendCompanyAddress,//寄件公司详细地址,不能为空
-  int receiptCompanyId,//收件公司id
-  String receiptCompanyPhone,//收件公司电话 不能为空
-  String receiptCompanyName,//收件公司名称 不能为空
-  String receiptCompanyProvinceName,//收件公司省名称 不能为空
-  String receiptCompanyProvinceCode,//收件公司省编码 不能为空
-  String receiptCompanyCityName,//收件公司市名称 不能为空
-  String receiptCompanyCityCode,//收件公市编码 不能为空
-  String receiptCompanyAreaName,//收件公区名称 不能为空
-  String receiptCompanyAreaCode,//收件公司区编码 不能为空
-  String receiptCompanyAddress,//收件公司地址详情 不能为空
-  String goods,//商品名称不能为空
-  int goodsQuantity,//商品数量 不能为空
-  int goodsPackingId,//商品包装ID 不能为空
-  int goodsCategoryId,//商品类别ID 不能为空
-  int goodsPaymentMethod,//付款方式 不能为空
-  double goodsWeight,//商品重量 
-  double goodsPriceProtection,//商品保价
-  double goodsAgencyFund,//商品代收款
-  double goodsFreight,//运费 不能为空
-  String memo//备注
-) async{
-  var response = await Http().post('app/order/logistics_order_create',data:{
-    'sendCompanyId':sendCompanyId,
-    'sendCompanyName':sendCompanyName,
-    'sendCompanyPhone':sendCompanyPhone,
-    'sendCompanyCode':sendCompanyCode,
-    'sendCompanyProvinceName':sendCompanyProvinceName,
-    'sendCompanyProvinceCode':sendCompanyProvinceCode,
-    'sendCompanyCityName':sendCompanyCityName,
-    'sendCompanyCityCode':sendCompanyCityCode,
-    'sendCompanyAreaName':sendCompanyAreaName,
-    'sendCompanyAreaCode':sendCompanyAreaCode,
-    'sendCompanyAddress':sendCompanyAddress,
-    'receiptCompanyId':receiptCompanyId,
-    'receiptCompanyPhone':receiptCompanyPhone,
-    'receiptCompanyName':receiptCompanyName,
-    'receiptCompanyProvinceName':receiptCompanyProvinceName,
-    'receiptCompanyProvinceCode':receiptCompanyProvinceCode,
-    'receiptCompanyCityName':receiptCompanyCityName,
-    'receiptCompanyCityCode':receiptCompanyCityCode,
-    'receiptCompanyAreaName':receiptCompanyAreaName,
-    'receiptCompanyAreaCode':receiptCompanyAreaCode,
-    'receiptCompanyAddress':receiptCompanyAddress,
-    'goods':goods,
-    'goodsQuantity':goodsQuantity,
-    'goodsPackingId':goodsPackingId,
-    'goodsCategoryId':goodsCategoryId,
-    'goodsPaymentMethod':goodsPaymentMethod,
-    'goodsWeight':goodsWeight,
-    'goodsPriceProtection':goodsPriceProtection,
-    'goodsAgencyFund':goodsAgencyFund,
-    'goodsFreight':goodsFreight,
-    'memo':memo
+  int sendCompanyId, //寄件公司Id
+  String sendCompanyName, //寄件公司名称 不能为空
+  String sendCompanyPhone, //寄件公司电话 不能为空
+  String sendCompanyCode, //寄件公司编码 
+  String sendCompanyProvinceName, //寄件公司省名称 不能为空
+  String sendCompanyProvinceCode, //寄件公司省编码 不能为空
+  String sendCompanyCityName, //寄件公司市名称 不能为空
+  String sendCompanyCityCode, //寄件公司市编码 不能为空
+  String sendCompanyAreaName, //寄件公司区名称 不能为空
+  String sendCompanyAreaCode, //寄件公司区编码 不能为空
+  String sendCompanyAddress, //寄件公司详细地址,不能为空
+  int receiptCompanyId, //收件公司id
+  String receiptCompanyPhone, //收件公司电话 不能为空
+  String receiptCompanyName, //收件公司名称 不能为空
+  String receiptCompanyProvinceName, //收件公司省名称 不能为空
+  String receiptCompanyProvinceCode, //收件公司省编码 不能为空
+  String receiptCompanyCityName, //收件公司市名称 不能为空
+  String receiptCompanyCityCode, //收件公市编码 不能为空
+  String receiptCompanyAreaName, //收件公区名称 不能为空
+  String receiptCompanyAreaCode, //收件公司区编码 不能为空
+  String receiptCompanyAddress, //收件公司地址详情 不能为空
+  String goods, //商品名称不能为空
+  int goodsQuantity, //商品数量 不能为空
+  int goodsPackingId, //商品包装ID 不能为空
+  int goodsCategoryId, //商品类别ID 不能为空
+  int goodsPaymentMethod, //付款方式 不能为空
+  double goodsWeight, //商品重量 
+  double goodsPriceProtection, //商品保价
+  double goodsAgencyFund, //商品代收款
+  double goodsFreight, //运费 不能为空
+  String memo //备注
+) async {
+  var response = await Http().post('app/order/logistics_order_create', data: {
+    'sendCompanyId': sendCompanyId,
+    'sendCompanyName': sendCompanyName,
+    'sendCompanyPhone': sendCompanyPhone,
+    'sendCompanyCode': sendCompanyCode,
+    'sendCompanyProvinceName': sendCompanyProvinceName,
+    'sendCompanyProvinceCode': sendCompanyProvinceCode,
+    'sendCompanyCityName': sendCompanyCityName,
+    'sendCompanyCityCode': sendCompanyCityCode,
+    'sendCompanyAreaName': sendCompanyAreaName,
+    'sendCompanyAreaCode': sendCompanyAreaCode,
+    'sendCompanyAddress': sendCompanyAddress,
+    'receiptCompanyId': receiptCompanyId,
+    'receiptCompanyPhone': receiptCompanyPhone,
+    'receiptCompanyName': receiptCompanyName,
+    'receiptCompanyProvinceName': receiptCompanyProvinceName,
+    'receiptCompanyProvinceCode': receiptCompanyProvinceCode,
+    'receiptCompanyCityName': receiptCompanyCityName,
+    'receiptCompanyCityCode': receiptCompanyCityCode,
+    'receiptCompanyAreaName': receiptCompanyAreaName,
+    'receiptCompanyAreaCode': receiptCompanyAreaCode,
+    'receiptCompanyAddress': receiptCompanyAddress,
+    'goods': goods,
+    'goodsQuantity': goodsQuantity,
+    'goodsPackingId': goodsPackingId,
+    'goodsCategoryId': goodsCategoryId,
+    'goodsPaymentMethod': goodsPaymentMethod,
+    'goodsWeight': goodsWeight,
+    'goodsPriceProtection': goodsPriceProtection,
+    'goodsAgencyFund': goodsAgencyFund,
+    'goodsFreight': goodsFreight,
+    'memo': memo
   });
   return response;
 }
 
 //模糊匹配手机号
-Future likePhone(String phone){
-  var response  =Http().get('app/uzer_company/uzer_company_like',data:{'phone':phone});
+Future likePhone(String phone) {
+  var response = Http().get('app/uzer_company/uzer_company_like', data: {
+    'phone': phone
+  });
   return response;
 }
 
 //商品类别
-Future goodsCategory(){
-  var response =Http().get('app/goods_category/goods_category_list');
+Future goodsCategory() {
+  var response = Http().get('app/goods_category/goods_category_list');
   return response;
 }
 //商品包装类别
-Future goodsPackage(){
-  var response =Http().get('app/goods_packing/goods_packing_list');
+Future goodsPackage() {
+  var response = Http().get('app/goods_packing/goods_packing_list');
   return response;
 }
 
 //订单详情
-Future getOrderDetail(orderNo){
-  var response =Http().get('app/order/order_info',data: {'orderNo':orderNo});
+Future getOrderDetail(orderNo) {
+  var response = Http().get('app/order/order_info', data: {
+    'orderNo': orderNo
+  });
   return response;
 }
 
 //接单接口
-Future orderReception(orderNo){
-  var response = Http().get('app/order/order_reception',data: {'orderNo':orderNo});
+Future orderReception(orderNo) {
+  var response = Http().get('app/order/order_reception', data: {
+    'orderNo': orderNo
+  });
   return response;
 }
 
 //订单管理接口  0:代收单,1:已接单,2:配送中,3:已签收,4:拒收
-Future fromStatusGetOrderList(int orderStatus,int page,[String orderNo='']){
-  var response =Http().post('app/order/logistics_order_list_pages',data: {'orderNo':orderNo,'orderStatus':orderStatus,'page':page,'limit':limit});
+Future fromStatusGetOrderList(int orderStatus, int page, [String orderNo = '']) {
+  var response = Http().post('app/order/logistics_order_list_pages', data: {
+    'orderNo': orderNo,
+    'orderStatus': orderStatus,
+    'page': page,
+    'limit': limit
+  });
   return response;
 }
 
 //改单接口
-Future updataOrder(String orderNo,double afterTransportFee,double afterCollectingFee,int afterGoodsNumber){
-  var response =Http().post('app/order/update_order',data: {'orderNo':orderNo,'afterTransportFee':afterTransportFee*100,'afterCollectingFee':afterCollectingFee*100,'afterGoodsNumber':afterGoodsNumber});
+Future updataOrder(String orderNo, double afterTransportFee, double afterCollectingFee, int afterGoodsNumber) {
+  var response = Http().post('app/order/update_order', data: {
+    'orderNo': orderNo,
+    'afterTransportFee': afterTransportFee * 100,
+    'afterCollectingFee': afterCollectingFee * 100,
+    'afterGoodsNumber': afterGoodsNumber
+  });
+  return response;
+}
+
+//作废、拒收、签收接口
+Future updataOrderStatus(String orderNo, int orderStatus) {
+  var response = Http().post('app/order/update_order_status', data: {
+    'orderNo': orderNo,
+    'orderStatus': orderStatus
+  });
+  return response;
+}
+
+//模糊匹配订单号
+Future orderNoLike(String orderNo) {
+  var response = Http().get('app/order/order_no_like', data: {
+    'orderNo': orderNo
+  });
   return response;
 }

+ 38 - 14
lib/util/models.dart

@@ -493,7 +493,7 @@ class OrderDetailData {
   String receiptCompanyCityCode; //收件市码
   String receiptCompanyCityName; //收件市名
   String receiptCompanyName; //收件公司名称
-  String receiptCompanyPhone;//收件公司电话
+  String receiptCompanyPhone; //收件公司电话
   String receiptCompanyProvinceCode; //收件省码
   String receiptCompanyProvinceName; //收件省名
   String sendCompanyAddress; //发件详细地址
@@ -504,7 +504,7 @@ class OrderDetailData {
   String sendCompanyCityName; //发件市名
   int sendCompanyId; //发件公司id
   String sendCompanyName; //发件公司名称
-  String sendCompanyCode;//发件公司编码
+  String sendCompanyCode; //发件公司编码
   String sendCompanyProvinceCode; //发件公司市码
   String sendCompanyProvinceName; //发件公司市名
   String senderIdCard; //发件人身份证号
@@ -575,7 +575,7 @@ class OrderDetailData {
       receiptCompanyCityCode: json['receiptCompanyCityCode'],
       receiptCompanyCityName: json['receiptCompanyCityName'],
       receiptCompanyName: json['receiptCompanyName'],
-      receiptCompanyPhone:json['receiptCompanyPhone'],
+      receiptCompanyPhone: json['receiptCompanyPhone'],
       receiptCompanyProvinceCode: json['receiptCompanyProvinceCode'],
       receiptCompanyProvinceName: json['receiptCompanyProvinceName'],
       sendCompanyAddress: json['sendCompanyAddress'],
@@ -586,7 +586,7 @@ class OrderDetailData {
       sendCompanyCityName: json['sendCompanyCityName '],
       sendCompanyId: json['sendCompanyId'],
       sendCompanyName: json['sendCompanyName'],
-      sendCompanyCode:json['sendCompanyCode'],
+      sendCompanyCode: json['sendCompanyCode'],
       sendCompanyProvinceCode: json['sendCompanyProvinceCode'],
       sendCompanyProvinceName: json['sendCompanyProvinceName'],
       senderIdCard: json['senderIdCard'],
@@ -694,20 +694,20 @@ class FromStatusGetOrderList {
 
   factory FromStatusGetOrderList.fromJson(Map < String, dynamic > json) {
     return FromStatusGetOrderList(
-      goodsAgencyFund:json['goodsAgencyFund'],
-      goodsFreight:json['goodsFreight'],
-      goodsQuantity:json['goodsQuantity'],
-      orderStatus:json['orderStatus'],
-      orderNo:json['orderNo'],
-      goods:json['goods'],
-      receiptCompanyName:json['receiptCompanyName'],
-      sendCompanyName:json['sendCompanyName'],
+      goodsAgencyFund: json['goodsAgencyFund'],
+      goodsFreight: json['goodsFreight'],
+      goodsQuantity: json['goodsQuantity'],
+      orderStatus: json['orderStatus'],
+      orderNo: json['orderNo'],
+      goods: json['goods'],
+      receiptCompanyName: json['receiptCompanyName'],
+      sendCompanyName: json['sendCompanyName'],
     );
   }
 }
 
 //提交改单、作废、寄件、拒收、签收后返回对象
-class OrderStatusReturnObj{
+class OrderStatusReturnObj {
   bool success;
   int code;
   String msg;
@@ -718,11 +718,35 @@ class OrderStatusReturnObj{
     this.msg
   });
 
-  factory OrderStatusReturnObj.fromJson(Map<String,dynamic> json){
+  factory OrderStatusReturnObj.fromJson(Map < String, dynamic > json) {
     return OrderStatusReturnObj(
+      success: json['success'],
+      code: json['code'],
+      msg: json['msg'],
+    );
+  }
+}
+
+//模糊匹配订单号返回对象
+class LikeOrderNo {
+  bool success;
+  int code;
+  String msg;
+  List data;
+
+  LikeOrderNo({
+    this.success,
+    this.code,
+    this.msg,
+    this.data,
+  });
+
+  factory LikeOrderNo.fromJson(Map<String,dynamic>json){
+    return LikeOrderNo(
       success:json['success'],
       code:json['code'],
       msg:json['msg'],
+      data:json['data'],
     );
   }
 }

+ 4 - 2
lib/util/session.dart

@@ -12,6 +12,8 @@ Future<String> getKey(key) async{
   return value;
 }
 
-void clearKey(){
-
+Future<bool> clearKey()async{
+  SharedPreferences prefs = await SharedPreferences.getInstance();
+  prefs.clear();
+  return true;
 }