Ver Fonte

订单管理列表

daxu0403 há 7 anos atrás
pai
commit
faf77e1d6d

+ 3 - 1
.gitignore

@@ -1,2 +1,4 @@
 /build/*
-.packages
+.packages
+android/.gradle/*
+

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


+ 96 - 22
lib/pages/order_management_page.dart

@@ -2,6 +2,9 @@ import 'package:flutter/material.dart';
 import 'package:flutter_screenutil/flutter_screenutil.dart';
 import 'order_management_page/order_detail_page.dart';
 import '../showDialog.dart';
+import '../util/models.dart';
+import '../util/api.dart';
+import '../util/util.dart';
 class OrderManagementPage extends StatefulWidget {
   final Widget child;
 
@@ -14,6 +17,7 @@ class OrderManagementPage extends StatefulWidget {
 }
 
 class _OrderManagementPageState extends State < OrderManagementPage > with AutomaticKeepAliveClientMixin {
+
   @override
   Widget build(BuildContext context) {
     return Container(
@@ -22,12 +26,6 @@ class _OrderManagementPageState extends State < OrderManagementPage > with Autom
           title: Text('订单管理', style: TextStyle(fontSize: ScreenUtil.getInstance().setSp(36)), ),
           centerTitle: true,
           backgroundColor: Color.fromRGBO(64, 98, 254, 1),
-          // actions: < Widget > [
-          //   IconButton(
-          //     icon: Icon(Icons.add_circle_outline),
-          //     onPressed: () {},
-          //   )
-          // ],
         ),
         body: Container(
           decoration: BoxDecoration(
@@ -68,10 +66,16 @@ class _QueryWidgetState extends State < QueryWidget > {
   double inputHeight = 0;
   bool showStatus = true; //提示层显示状态
   String _orderNo = "";
+  int orderStatus = 1; //0:代收单,1:待取件,2:运途中:已完成
+  int page = 1;
+  bool hasNextPage = true;
+  List<FromStatusGetOrderList> orderList=[];
+
 
   @override
   void initState() {
     super.initState();
+    switchOrderFromStatus(orderStatus, page);
     _scrollController.addListener((){
       if (_scrollController.position.pixels == _scrollController.position.maxScrollExtent) {
         print("滑到底部了");
@@ -245,14 +249,30 @@ class _QueryWidgetState extends State < QueryWidget > {
               Expanded(
                 child: Container(
                   padding: EdgeInsets.fromLTRB(ScreenUtil.getInstance().setWidth(20), ScreenUtil.getInstance().setWidth(20), ScreenUtil.getInstance().setWidth(20), 0),
-                  child: ListView(
-                    controller: _scrollController,
-                    children: < Widget > [
-                      _cardWiget(),
-                      _cardWiget(),
-                      _cardWiget(),
-                    ],
-                  ),
+                  child: 
+                  // ListView(
+                  //   controller: _scrollController,
+                  //   children: < Widget > [
+                  //     _cardWiget(),
+                  //     _cardWiget(),
+                  //     _cardWiget(),
+                  //   ],
+                  // ),
+                  ListView.builder(
+                  controller:_scrollController,
+                  itemCount: orderList.length,
+                  itemBuilder: (BuildContext context,int index){
+                    if(index<orderList.length){
+                      return _cardWiget(orderList[index]);
+                    }
+                    if (hasNextPage) {
+                        return _getMoreWidget();
+                      } else {
+                        return _noMoreWidegt();
+                      }
+                    
+                  },
+                  )
                 ),
               )
             ],
@@ -297,7 +317,13 @@ class _QueryWidgetState extends State < QueryWidget > {
       ],
     );
   }
-  Widget _cardWiget() {
+  Widget _cardWiget(FromStatusGetOrderList obj) {
+    Map<int,String> statusMap={
+      1:'待取货',
+      2:'运途中',
+      3:'已签收',
+      4:'拒收'
+    };
     return GestureDetector(
       child: Card(
         color: Colors.white,
@@ -310,8 +336,8 @@ class _QueryWidgetState extends State < QueryWidget > {
                 child: Row(
                   mainAxisAlignment: MainAxisAlignment.spaceBetween,
                   children: < Widget > [
-                    Text('订单号:10893477897899', style: TextStyle(fontSize: ScreenUtil.getInstance().setSp(24), color: Color.fromRGBO(102, 102, 102, 1)), ),
-                    Text("待取货", style: TextStyle(fontSize: ScreenUtil.getInstance().setSp(24), color: Color.fromRGBO(126, 211, 33, 1)), ),
+                    Text('订单号:${obj.orderNo}', style: TextStyle(fontSize: ScreenUtil.getInstance().setSp(24), color: Color.fromRGBO(102, 102, 102, 1)), ),
+                    Text('${statusMap[obj.orderStatus]}', style: TextStyle(fontSize: ScreenUtil.getInstance().setSp(24), color: Color.fromRGBO(126, 211, 33, 1)), ),
                   ],
                 )
               ),
@@ -319,7 +345,7 @@ class _QueryWidgetState extends State < QueryWidget > {
                 padding: EdgeInsets.only(bottom: ScreenUtil.getInstance().setHeight(20)),
                 child: Row(
                   children: < Widget > [
-                    Text('朝阳门大阳汽贸 --> 香河汽修厂', style: TextStyle(fontSize: ScreenUtil.getInstance().setSp(30)), ),
+                    Text('${obj.sendCompanyName} --> ${obj.receiptCompanyName}', style: TextStyle(fontSize: ScreenUtil.getInstance().setSp(30)), ),
                   ],
                 )
               ),
@@ -329,9 +355,9 @@ class _QueryWidgetState extends State < QueryWidget > {
                   children: < Widget > [
                     SizedBox(
                       width: ScreenUtil.getInstance().setWidth(355),
-                      child: Text('货物名称:汽车轮胎', style: TextStyle(fontSize: ScreenUtil.getInstance().setSp(24), color: Color.fromRGBO(155, 155, 155, 1)), ),
+                      child: Text('货物名称:${obj.goods}', style: TextStyle(fontSize: ScreenUtil.getInstance().setSp(24), color: Color.fromRGBO(155, 155, 155, 1)), ),
                     ),
-                    Text('代收款:2800元', style: TextStyle(fontSize: ScreenUtil.getInstance().setSp(24), color: Color.fromRGBO(155, 155, 155, 1)), ),
+                    Text('代收款:${obj.goodsAgencyFund/100}元', style: TextStyle(fontSize: ScreenUtil.getInstance().setSp(24), color: Color.fromRGBO(155, 155, 155, 1)), ),
                   ],
                 ),
               ),
@@ -341,9 +367,9 @@ class _QueryWidgetState extends State < QueryWidget > {
                   children: < Widget > [
                     SizedBox(
                       width: ScreenUtil.getInstance().setWidth(355),
-                      child: Text('货物件数:4件', style: TextStyle(fontSize: ScreenUtil.getInstance().setSp(24), color: Color.fromRGBO(155, 155, 155, 1)), ),
+                      child: Text('货物件数:${obj.goodsQuantity}件', style: TextStyle(fontSize: ScreenUtil.getInstance().setSp(24), color: Color.fromRGBO(155, 155, 155, 1)), ),
                     ),
-                    Text('运费:280元', style: TextStyle(fontSize: ScreenUtil.getInstance().setSp(24), color: Color.fromRGBO(155, 155, 155, 1)), ),
+                    Text('运费:${obj.goodsFreight/100}元', style: TextStyle(fontSize: ScreenUtil.getInstance().setSp(24), color: Color.fromRGBO(155, 155, 155, 1)), ),
                   ],
                 ),
               ),
@@ -569,4 +595,52 @@ class _QueryWidgetState extends State < QueryWidget > {
       },
     );
   }
+
+  switchOrderFromStatus(int orderStatus,int page){
+    fromStatusGetOrderList(orderStatus,page).then((resp){
+      print(resp);
+      if(isNotError(context, resp)){
+        FromStatusGetOrderObj tempObj = FromStatusGetOrderObj.fromJson(resp.data);
+        setState(() {
+          orderList =tempObj.data.items;
+        });
+      }
+    });
+  }
+
+  Widget _getMoreWidget() {
+    return Center(
+      child: Padding(
+        padding: EdgeInsets.all(10.0),
+        child: Row(
+          mainAxisAlignment: MainAxisAlignment.center,
+          crossAxisAlignment: CrossAxisAlignment.center,
+          children: < Widget > [
+            Text(
+              '加载中...',
+              style: TextStyle(fontSize: 16.0),
+            ),
+            Container(
+              width: ScreenUtil.getInstance().setWidth(50),
+              height: ScreenUtil.getInstance().setHeight(50),
+              child: CircularProgressIndicator()
+            )
+
+          ],
+        ),
+      ),
+    );
+  }
+
+  Widget _noMoreWidegt() {
+    return Center(
+      child: Padding(
+        padding: EdgeInsets.all(10.0),
+        child: Text(
+          '没有更多数据了...',
+          style: TextStyle(fontSize: 16.0),
+        ),
+      ),
+    );
+  }
 }

+ 7 - 6
lib/pages/order_taking_page.dart

@@ -373,7 +373,7 @@ class _OrderCardContainerState extends State < OrderCardContainer > with SingleT
             orderItem('货物名称', widget.order.goods, 15),
             orderItem('货物件数', '${widget.order.goodsQuantity}件', 30),
             orderCutLine(),
-            orderBtn(context, animationStatus, controller, str),
+            orderBtn(context, animationStatus, controller, str,widget.order.orderNo),
             AnimatedOpen(animation: animation, openInfo: widget.order, )
           ],
         ),
@@ -386,7 +386,7 @@ class _OrderCardContainerState extends State < OrderCardContainer > with SingleT
     super.dispose();
   }
 
-  Widget orderBtn(BuildContext context, bool animationStatus, AnimationController controller, String str) {
+  Widget orderBtn(BuildContext context, bool animationStatus, AnimationController controller, String str,String orderNo) {
     return Container(
       margin: EdgeInsets.only(bottom: ScreenUtil.getInstance().setHeight(20)),
       child: Row(
@@ -424,9 +424,6 @@ class _OrderCardContainerState extends State < OrderCardContainer > with SingleT
               ),
             ),
             onTap: () {
-              getKey('stationId').then((value) {
-                print(value);
-              });
               showDialog < Null > (
                 context: context, //BuildContext对象
                 barrierDismissible: false,
@@ -434,7 +431,11 @@ class _OrderCardContainerState extends State < OrderCardContainer > with SingleT
                   return new LoadingDialog( //调用对话框
                     text: '是否确认接单', childCallback: (val) {
                       if (val) {
-                        widget.callback(widget.index);
+                        orderReception(orderNo).then((resp){
+                          if(isNotError(context, resp)){
+                            widget.callback(widget.index);
+                          }
+                        });
                       } else {
                         return;
                       }

+ 12 - 0
lib/util/api.dart

@@ -136,4 +136,16 @@ Future goodsPackage(){
 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});
+  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});
+  return response;
 }

+ 128 - 19
lib/util/models.dart

@@ -464,24 +464,24 @@ class OrderDetailObj {
   factory OrderDetailObj.fromJson(Map < String, dynamic > json) {
     OrderDetailData tempData = OrderDetailData.fromJson(json['data']);
     return OrderDetailObj(
-      success:json['success'],
-      code:json['code'],
-      msg:json['msg'],
-      data:tempData
+      success: json['success'],
+      code: json['code'],
+      msg: json['msg'],
+      data: tempData
     );
   }
 }
 class OrderDetailData {
   String orderNo;
   String goods; //商品名称
-  double goodsAgencyFund; //代收款
-  double goodsFlatCost; //工本费
-  double goodsFreight; //运费
-  double goodsInsurance; //商品保险费
-  double goodsOtherFees; //其他费用
-  double goodsPriceProtection; //商品保价
+  int goodsAgencyFund; //代收款
+  int goodsFlatCost; //工本费
+  int goodsFreight; //运费
+  int goodsInsurance; //商品保险费
+  int goodsOtherFees; //其他费用
+  int goodsPriceProtection; //商品保价
   int goodsQuantity; //商品数量
-  double goodsValue; //商品价值
+  int goodsValue; //商品价值
   double goodsWeight; //商品重量
   int id; //订单Id
   String memo; //备注
@@ -536,16 +536,16 @@ class OrderDetailData {
     this.sendCompanyAddress,
     this.sendCompanyAreaCode,
     this.sendCompanyAreaName,
-    this.sendCompanyBankCard, 
+    this.sendCompanyBankCard,
     this.sendCompanyCityCode,
     this.sendCompanyCityName,
-    this.sendCompanyId, 
-    this.sendCompanyName, 
-    this.sendCompanyProvinceCode, 
-    this.sendCompanyProvinceName, 
-    this.senderIdCard, 
-    this.senderName, 
-    this.senderPhone 
+    this.sendCompanyId,
+    this.sendCompanyName,
+    this.sendCompanyProvinceCode,
+    this.sendCompanyProvinceName,
+    this.senderIdCard,
+    this.senderName,
+    this.senderPhone
   });
 
   factory OrderDetailData.fromJson(Map < String, dynamic > json) {
@@ -588,4 +588,113 @@ class OrderDetailData {
       senderPhone: json['senderPhone']
     );
   }
+}
+
+class OrderReception {
+  bool success;
+  int code;
+  String msg;
+
+  OrderReception({
+    this.success,
+    this.code,
+    this.msg,
+  });
+
+  factory OrderReception.fromJson(Map < String, dynamic > json) {
+    return OrderReception(
+      success: json['success'],
+      code: json['code'],
+      msg: json['msg'],
+    );
+  }
+}
+
+//订单管理获取列表
+class FromStatusGetOrderObj {
+  bool success;
+  int code;
+  String msg;
+  FromStatusGetOrderData data;
+
+  FromStatusGetOrderObj({
+    this.success,
+    this.code,
+    this.msg,
+    this.data
+  });
+
+  factory FromStatusGetOrderObj.fromJson(Map < String, dynamic > json) {
+    return FromStatusGetOrderObj(
+      success: json['success'],
+      code: json['code'],
+      msg: json['msg'],
+      data: FromStatusGetOrderData.fromJson(json['data'])
+    );
+  }
+}
+
+class FromStatusGetOrderData {
+  bool hasNextPage;
+  List < FromStatusGetOrderList > items;
+  int limit;
+  int page;
+  int totalCount;
+  int totalPage;
+
+  FromStatusGetOrderData({
+    this.hasNextPage,
+    this.items,
+    this.limit,
+    this.page,
+    this.totalCount,
+    this.totalPage,
+  });
+
+  factory FromStatusGetOrderData.fromJson(Map < String, dynamic > json) {
+    List list = json['items'] as List;
+    List < FromStatusGetOrderList > tempList = list.map((i) => FromStatusGetOrderList.fromJson(i)).toList();
+    return FromStatusGetOrderData(
+      hasNextPage: json['hasNextPage'],
+      items: tempList,
+      limit: json['limit'],
+      page: json['page'],
+      totalCount: json['totalCount'],
+      totalPage: json['totalPage'],
+    );
+  }
+}
+class FromStatusGetOrderList {
+  int goodsAgencyFund;
+  int goodsFreight;
+  int goodsQuantity;
+  int orderStatus;
+  String orderNo;
+  String goods;
+  String receiptCompanyName;
+  String sendCompanyName;
+
+  FromStatusGetOrderList({
+    this.goodsAgencyFund,
+    this.goodsFreight,
+    this.goodsQuantity,
+    this.orderStatus,
+    this.orderNo,
+    this.goods,
+    this.receiptCompanyName,
+    this.sendCompanyName,
+  });
+
+  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'],
+    );
+  }
 }