Ver Fonte

判断setState时,当前页面是否被销毁

daxu0403 há 7 anos atrás
pai
commit
d2eab0946e

+ 9 - 8
lib/pages/my_page.dart

@@ -32,13 +32,13 @@ class _MyPageState extends State < MyPage > with AutomaticKeepAliveClientMixin {
   List < BtInfoObj > btList = [];
   Set btSet = Set();
   bool btLinkStatus = false;
-  List printTypeList = ["全部", "配件商", "修理厂", "司机", "货物", "货物外", "不打印"];
+  List printTypeList = ["全部", "发件方", "收件方", "物流公司", "货物", "货物外", "不打印"];
   static
   var printTypeMap = {
     "全部": "1",
-    "配件商": "2",
-    "修理厂": "3",
-    "司": "4",
+    "发件方": "2",
+    "收件方": "3",
+    "物流公司": "4",
     "货物": "5",
     "货物外": "6",
     "不打印": "7",
@@ -46,9 +46,9 @@ class _MyPageState extends State < MyPage > with AutomaticKeepAliveClientMixin {
   static
   var printTypeMapSecond = {
     "1": "全部",
-    "2": "配件商",
-    "3": "修理厂",
-    "4": "司",
+    "2": "发件方",
+    "3": "收件方",
+    "4": "物流公司",
     "5": "货物",
     "6": "货物外",
     "7": "不打印",
@@ -63,7 +63,7 @@ class _MyPageState extends State < MyPage > with AutomaticKeepAliveClientMixin {
     btSet.clear();
     super.initState();
     getStationList().then((resp) {
-      if (isNotError(context, resp)) {
+      if (isNotError(context, resp) && this.mounted) {
         stationObj = Station.fromJson(resp.data);
         getKey('stationId').then((value) {
           List < String > tempList = [];
@@ -387,6 +387,7 @@ class _MyPageState extends State < MyPage > with AutomaticKeepAliveClientMixin {
             _siteName = stationObj.data[value[0]].name;
           });
           setKey('stationId', stationObj.data[value[0]].id.toString());
+          setKey('stationName',stationObj.data[value[0]].name);
         } else if (type == "printType") {
           setState(() {
             printType = printTypeList[value[0]];

+ 1 - 1
lib/pages/my_page/revise_password_page.dart

@@ -119,7 +119,7 @@ class _RevisePasswordPageState extends State < RevisePasswordPage > {
                             loginStatus = false;
                           });
                           updataPasswrod(oldPassword, newPassword).then((resp) {
-                            if (isNotError(context, resp)) {
+                            if (isNotError(context, resp) && this.mounted) {
                               setKey('password', newPassword);
                               showDialog < Null > (
                                 context: context, //BuildContext对象

+ 3 - 3
lib/pages/order_detail/order_detail.dart

@@ -23,7 +23,7 @@ class _OrderDetailsPageState extends State < OrderDetailsPage > {
   void initState() {
     super.initState();
     getOrderDetail(widget.orderNo).then((resp){
-      if(isNotError(context, resp)){
+      if(isNotError(context, resp) && this.mounted){
        OrderDetailObj tempObj = OrderDetailObj.fromJson(resp.data);
        setState(() {
          orderDetailObj =tempObj.data;
@@ -121,7 +121,7 @@ class _ItemInfoWidgetState extends State < ItemInfoWidget > {
        afterCollectingFee =widget.obj.goodsAgencyFund/100;
     });
     getLineOfCompanyId(widget.obj.sendCompanyId.toString()).then((resp){
-     if(isNotError(context, resp)){
+     if(isNotError(context, resp) && this.mounted){
         CompanyOfLine obj = CompanyOfLine.fromJson(resp.data);
         setState(() {
             lineList = obj.data;
@@ -284,7 +284,7 @@ class _ItemInfoWidgetState extends State < ItemInfoWidget > {
         submitStatus = false;
       });
       updataOrder(lineId,orderNo,afterTransportFee,afterCollectingFee,afterGoodsNumber).then((resp){
-        if(isNotError(context, resp)){
+        if(isNotError(context, resp) && this.mounted){
           showDialog < Null > (
           context: context, //BuildContext对象
           barrierDismissible: false,

+ 54 - 7
lib/pages/order_management_page.dart

@@ -3,6 +3,8 @@ import 'package:flutter_screenutil/flutter_screenutil.dart';
 import 'dart:async';
 import 'order_management_page/order_detail_page.dart';
 import 'order_detail/order_detail.dart';
+import '../util/bluetooth_utils.dart';
+import '../util/session.dart';
 import '../showDialog.dart';
 import '../util/models.dart';
 import '../util/api.dart';
@@ -71,6 +73,7 @@ class _QueryWidgetState extends State < QueryWidget > {
   int orderStatus = 1; //0:代收单,1:待取件,2:运途中:已完成
   int page = 1;
   bool hasNextPage = true;
+  BluetoothUtils bluetooth = BluetoothUtils();
   List < FromStatusGetOrderList > orderList = [];
   List likeOrderNoList = [];
   var timer;
@@ -143,7 +146,7 @@ class _QueryWidgetState extends State < QueryWidget > {
                                 timer = Timer(Duration(milliseconds: 500), () {
                                   if (_orderNo.length >= 6) {
                                     orderNoLike(_orderNo, orderStatus).then((resp) {
-                                      if (isNotError(context, resp)) {
+                                      if (isNotError(context, resp) && this.mounted) {
                                         LikeOrderNo tempObj = LikeOrderNo.fromJson(resp.data);
                                         if (tempObj.data.length > 0) {
                                           setState(() {
@@ -335,7 +338,7 @@ class _QueryWidgetState extends State < QueryWidget > {
                         _orderNo = likeOrderNoList[index];
                       });
                       fromStatusGetOrderList(orderStatus, page, likeOrderNoList[index]).then((resp) {
-                        if (isNotError(context, resp)) {
+                        if (isNotError(context, resp) && this.mounted) {
                           FromStatusGetOrderObj tempObj = FromStatusGetOrderObj.fromJson(resp.data);
                           setState(() {
                             orderList = tempObj.data.items;
@@ -669,7 +672,51 @@ class _QueryWidgetState extends State < QueryWidget > {
                 return new LoadingDialog( //调用对话框
                   text: '是否确认打印', childCallback: (val) {
                     if (val) {
-                      //widget.callback(widget.index);
+                      getOrderDetail(obj.orderNo).then((resp){
+                        if(isNotError(context, resp) && this.mounted){
+                          OrderDetailData data = OrderDetailObj.fromJson(resp.data).data;
+                          getKey('printType').then((printType){
+                            getKey('stationName').then((stationName){
+                              getKey('nickName').then((nickName){
+                                 double goodsYs = (obj.goodsFreight/100)+(obj.goodsAgencyFund/100);
+                                  String nowDate = fromatDate( DateTime.now().millisecondsSinceEpoch);//打印时间
+                                  double goodsAgencyFunds = double.parse(resp.goodsAgencyFunds/100);
+                                  double goodsDFreight = 0;
+                                  double goodsXFreight = 0;
+
+                                  // Map<String, String> pum = {
+                                  //   "[logisticsNo]": "${data.orderNo ?? ''}",
+                                  //   "[createTime]": "",
+                                  //   "[sendStationName]": "$stationName",
+                                  //   "[dealerCode]": "${data.sendCompanyCode ?? ''}",
+                                  //   "[dealerName]": "${data.sendCompanyName}",
+                                  //   "[dealerTel]": "${data.sendCompanyPhone ?? ''}",
+                                  //   "[repairName]": "${data.receiptCompanyName ?? ''}",
+                                  //   "[repairTel]": "${data.receiptCompanyPhone ?? ''}",
+                                  //   "[endStationName]": "",
+                                  //   "[goodsLineCode]": "${data.goodsLineCode ?? ''}",
+                                  //   "[goodsLine]": "${data.goodsLine ?? ''}",
+                                  //   "[repairAddress]": "${data.receiptCompanyAddress ?? ''}",
+                                  //   "[goodsQuantity]": "${data.goodsQuantity ?? ''}",
+                                  //   "[goodsInsurance]": "${data.goodsInsurance ?? ''}",
+                                  //   "[goodsFlatCost]": "${data.goodsFlatCost ?? ''}",
+                                  //   // 到付 现付 金额
+                                  //   "[goodsDFreight]": "$goodsDFreight",
+                                  //   "[goodsXFreight]": "$goodsXFreight",
+                                  //   "[goodsAgencyFund]": "$goodsAgencyFunds",
+                                  //   "[goodsYs]": "$goodsYs",
+                                  //   "[dealerBankAccount]": "${data.sendCompanyBankCard ?? ''}",
+                                  //   "[goodsRemark]": "${data.goodsRemark ?? ''}",
+                                  //   "[realName]": "${nickName?? ''}",
+                                  //   "[currentTime]": "$nowDate",
+                                  //   "[currentGoodNumber]": "1/1",
+                                  // };
+                                  // bluetooth.printOrder(pum, int.parse(printType);
+                              });
+                            });
+                          });
+                        }
+                      });
                     } else {
                       return;
                     }
@@ -762,7 +809,7 @@ class _QueryWidgetState extends State < QueryWidget > {
     });
     page = 1;
     fromStatusGetOrderList(orderStatus, page, _orderNo).then((resp) {
-      if (isNotError(context, resp)) {
+      if (isNotError(context, resp) && this.mounted) {
         FromStatusGetOrderObj tempObj = FromStatusGetOrderObj.fromJson(resp.data);
         setState(() {
           orderList = tempObj.data.items;
@@ -777,7 +824,7 @@ class _QueryWidgetState extends State < QueryWidget > {
     }
     loadMoreStatus = false;
     fromStatusGetOrderList(orderStatus, page, _orderNo).then((resp) {
-      if (isNotError(context, resp)) {
+      if (isNotError(context, resp) && this.mounted) {
         FromStatusGetOrderObj tempObj = FromStatusGetOrderObj.fromJson(resp.data);
         setState(() {
           orderList.addAll(tempObj.data.items);
@@ -805,7 +852,7 @@ class _QueryWidgetState extends State < QueryWidget > {
   }
   myUpdataOrder(String myOrderNo, int myOrderStatus, int index) {
     updataOrderStatus(myOrderNo, myOrderStatus).then((resp) {
-      if (isNotError(context, resp)) {
+      if (isNotError(context, resp) && this.mounted) {
         deleteOrder(index);
       }
     });
@@ -813,7 +860,7 @@ class _QueryWidgetState extends State < QueryWidget > {
   Future refreshOrder() async {
     page = 1;
     await fromStatusGetOrderList(orderStatus, page, _orderNo).then((resp) {
-      if (isNotError(context, resp)) {
+      if (isNotError(context, resp) && this.mounted) {
         FromStatusGetOrderObj tempObj = FromStatusGetOrderObj.fromJson(resp.data);
         setState(() {
           orderList = tempObj.data.items;

+ 3 - 3
lib/pages/order_management_page/order_detail_page.dart

@@ -25,7 +25,7 @@ class _OrderDetailPageState extends State < OrderDetailPage > {
   void initState() {
     super.initState();
     getOrderDetail(widget.orderNo).then((resp){
-      if(isNotError(context, resp)){
+      if(isNotError(context, resp) && this.mounted){
        OrderDetailObj tempObj = OrderDetailObj.fromJson(resp.data);
        setState(() {
          orderDetailObj =tempObj.data;
@@ -125,7 +125,7 @@ class _ItemInfoWidgetState extends State < ItemInfoWidget > {
        afterCollectingFee =widget.obj.goodsAgencyFund/100;
     });
      getLineOfCompanyId(widget.obj.sendCompanyId.toString()).then((resp){
-     if(isNotError(context, resp)){
+     if(isNotError(context, resp) && this.mounted){
         CompanyOfLine obj = CompanyOfLine.fromJson(resp.data);
         setState(() {
             lineList = obj.data;
@@ -365,7 +365,7 @@ class _ItemInfoWidgetState extends State < ItemInfoWidget > {
         submitStatus = false;
       });
       updataOrder(lineId,orderNo,afterTransportFee,afterCollectingFee,afterGoodsNumber).then((resp){
-        if(isNotError(context, resp)){
+        if(isNotError(context, resp) && this.mounted){
           showDialog < Null > (
           context: context, //BuildContext对象
           barrierDismissible: false,

+ 7 - 7
lib/pages/order_taking_page.dart

@@ -38,7 +38,7 @@ class _OrderTakingPageState extends State < OrderTakingPage > with AutomaticKeep
         getKey('lineIdStr').then((value) {
           if (value != null) {
             getOrderList(stationId,value, page).then((resp) {
-              if (isNotError(context, resp)) {
+              if (isNotError(context, resp) && this.mounted) {
                 setState(() {
                   orderList = OrderListObj.fromJson(resp.data).data.items;
                   hasNextPage = OrderListObj.fromJson(resp.data).data.hasNextPage;
@@ -48,7 +48,7 @@ class _OrderTakingPageState extends State < OrderTakingPage > with AutomaticKeep
             });
           } else {
             getOrderList(stationId,lineIdStr, page).then((resp) {
-              if (isNotError(context, resp)) {
+              if (isNotError(context, resp) && this.mounted) {
                 setState(() {
                   orderList = OrderListObj.fromJson(resp.data).data.items;
                   hasNextPage = OrderListObj.fromJson(resp.data).data.hasNextPage;
@@ -72,7 +72,7 @@ class _OrderTakingPageState extends State < OrderTakingPage > with AutomaticKeep
           loadMoreOrder = false;
           page = ++page;
           getOrderList(stationId,lineIdStr, page).then((resp) {
-            if (isNotError(context, resp)) {
+            if (isNotError(context, resp) && this.mounted) {
               OrderListObj tempObj = OrderListObj.fromJson(resp.data);
               setState(() {
                 orderList.addAll(tempObj.data.items);
@@ -94,7 +94,7 @@ class _OrderTakingPageState extends State < OrderTakingPage > with AutomaticKeep
       lineList.clear();
     });
     await getAllLine().then((resp) {
-      if (isNotError(context, resp)) {
+      if (isNotError(context, resp) && this.mounted) {
         setState(() {
           checkStatusList = [];
           lineList = StationLine.fromJson(resp.data).data;
@@ -302,7 +302,7 @@ class _OrderTakingPageState extends State < OrderTakingPage > with AutomaticKeep
     page = 1;
     print(lineIdStr);
     await getOrderList(stationId,lineIdStr, page).then((resp) {
-      if (isNotError(context, resp)) {
+      if (isNotError(context, resp) && this.mounted) {
         setState(() {
           orderList = OrderListObj.fromJson(resp.data).data.items;
         });
@@ -355,7 +355,7 @@ class _OrderTakingPageState extends State < OrderTakingPage > with AutomaticKeep
       hasNextPage = true;
     });
     getOrderList(stationId,lineIdStr, page).then((resp) {
-      if (isNotError(context, resp)) {
+      if (isNotError(context, resp) && this.mounted) {
         OrderListObj tempObj = OrderListObj.fromJson(resp.data);
         setState(() {
           orderList = tempObj.data.items;
@@ -483,7 +483,7 @@ class _OrderCardContainerState extends State < OrderCardContainer > with SingleT
                     text: '是否确认接单', childCallback: (val) {
                       if (val) {
                         orderReception(orderNo).then((resp) {
-                          if (isNotError(context, resp)) {
+                          if (isNotError(context, resp) && this.mounted) {
                             widget.callback(widget.index);
                           }
                         });

+ 6 - 6
lib/pages/send_express_page.dart

@@ -107,7 +107,7 @@ class _SendExpressPageState extends State < SendExpressPage > with AutomaticKeep
     super.initState();
 
     goodsCategory().then((resp) {
-      if (isNotError(context, resp)) {
+      if (isNotError(context, resp) && this.mounted) {
         GoodsCategory goodsCategoryObj = GoodsCategory.fromJson(resp.data);
         setState(() {
           goodsCateGoryList = goodsCategoryObj.data;
@@ -118,7 +118,7 @@ class _SendExpressPageState extends State < SendExpressPage > with AutomaticKeep
     });
 
     goodsPackage().then((resp) {
-      if (isNotError(context, resp)) {
+      if (isNotError(context, resp) && this.mounted) {
         GoodsPackage goodsPackageObj = GoodsPackage.fromJson(resp.data);
         setState(() {
           goodsPackageList = goodsPackageObj.data;
@@ -153,7 +153,7 @@ class _SendExpressPageState extends State < SendExpressPage > with AutomaticKeep
       timer = Timer(Duration(milliseconds: 500), () {
         if (sendCompanyPhoneController.text.length >= 6 && sendCompanyPhoneController.text.length < 11) {
           likePhone(sendCompanyPhoneController.text).then((resp) {
-            if (isNotError(context, resp)) {
+            if (isNotError(context, resp) && this.mounted) {
               LikePhone likePhoneObj = LikePhone.fromJson(resp.data);
               likePhoneList = likePhoneObj.data;
             }
@@ -195,7 +195,7 @@ class _SendExpressPageState extends State < SendExpressPage > with AutomaticKeep
       timer = Timer(Duration(milliseconds: 500), () {
         if (receiptCompanyPhoneController.text.length >= 6 && receiptCompanyPhoneController.text.length < 11) {
           likePhone(receiptCompanyPhoneController.text).then((resp) {
-            if (isNotError(context, resp)) {
+            if (isNotError(context, resp) && this.mounted) {
               LikePhone likePhoneObj = LikePhone.fromJson(resp.data);
               likePhoneList = likePhoneObj.data;
             }
@@ -818,7 +818,7 @@ class _SendExpressPageState extends State < SendExpressPage > with AutomaticKeep
             goodsFreight * 100, //商品运费 不能为空 ,已分为单位
             memo, //备注
           ).then((resp) {
-            if (isNotError(context, resp)) {
+            if (isNotError(context, resp) && this.mounted) {
               setState(() {
                 submitStatus = true;
               });
@@ -943,7 +943,7 @@ class _SendExpressPageState extends State < SendExpressPage > with AutomaticKeep
                 receiptCompanyNameController.text = obj.companyName;
                 receiptCompanyId = obj.id.toString();
                 getLineOfCompanyId(receiptCompanyId).then((resp){
-                  if(isNotError(context, resp)){
+                  if(isNotError(context, resp) && this.mounted){
                     CompanyOfLine obj = CompanyOfLine.fromJson(resp.data);
                     setState(() {
                         lineList = obj.data;

+ 3 - 3
lib/pages/send_express_page/order_detail_page.dart

@@ -24,7 +24,7 @@ class _OrderDetailState extends State < OrderDetail > {
   void initState() {
     super.initState();
     getOrderDetail(widget.orderId).then((resp) {
-      if (isNotError(context, resp)) {
+      if (isNotError(context, resp) && this.mounted) {
         OrderDetailObj orderDetailObj = OrderDetailObj.fromJson(resp.data);
         setState(() {
           data = orderDetailObj.data;
@@ -170,7 +170,7 @@ class _OrderDetailState extends State < OrderDetail > {
                                 })).then((resp){
                                   if(resp==true){
                                     getOrderDetail(widget.orderId).then((resp) {
-                                      if (isNotError(context, resp)) {
+                                      if (isNotError(context, resp) && this.mounted) {
                                         OrderDetailObj orderDetailObj = OrderDetailObj.fromJson(resp.data);
                                         setState(() {
                                           data = orderDetailObj.data;
@@ -259,7 +259,7 @@ class _OrderDetailState extends State < OrderDetail > {
 
     myUpdataOrder(int myOrderStatus) {
     updataOrderStatus(data.orderNo, myOrderStatus).then((resp) {
-      if (isNotError(context, resp)) {
+      if (isNotError(context, resp) && this.mounted) {
        
       }
     });

+ 2 - 1
lib/util/models.dart

@@ -344,7 +344,8 @@ class GoodsPackage {
         success: json['success'],
         code: json['code'],
         msg: json['msg'],
-        data: tempList);
+        data: tempList
+        );
   }
 }