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/api.dart'; import '../../util/models.dart'; import '../../util/util.dart'; import '../../util/session.dart'; import '../../util/bluetooth_utils.dart'; import '../../showAlert.dart'; class OrderDetail extends StatefulWidget { final String orderNo; OrderDetail({ Key key, @required this.orderNo }): super(key: key); _OrderDetailState createState() => _OrderDetailState(); } class _OrderDetailState extends State < OrderDetail > { OrderDetailData data; BluetoothUtils bluetooth = BluetoothUtils(); @override void initState() { super.initState(); getOrderDetail(widget.orderNo).then((resp) { if (isNotError(context, resp) && this.mounted) { OrderDetailObj orderDetailObj = OrderDetailObj.fromJson(resp.data); setState(() { data = orderDetailObj.data; }); } }); } @override Widget build(BuildContext context) { return Container( child: Scaffold( appBar: AppBar( title: Text('订单'), centerTitle: true, backgroundColor: Color.fromRGBO(64, 98, 254, 1), ), body: Container( child: data==null?_getMoreWidget():_cardWiget() ), ) ); } Widget _cardWiget() { return InkWell( child: Card( color: Colors.white, child: Container( padding: EdgeInsets.fromLTRB(ScreenUtil.getInstance().setWidth(30), ScreenUtil.getInstance().setWidth(30), ScreenUtil.getInstance().setWidth(30), ScreenUtil.getInstance().setWidth(20)), child: Column( children: < Widget > [ Padding( padding: EdgeInsets.only(bottom: ScreenUtil.getInstance().setHeight(30)), child: Row( mainAxisAlignment: MainAxisAlignment.spaceBetween, children: < Widget > [ Text('订单号:${data.orderNo}', 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)), ), ], ) ), Padding( padding: EdgeInsets.only(bottom: ScreenUtil.getInstance().setHeight(20)), child: Row( children: < Widget > [ Text('${data.sendCompanyName} --> ${data.receiptCompanyName}', style: TextStyle(fontSize: ScreenUtil.getInstance().setSp(30)), ), ], ) ), Padding( padding: EdgeInsets.only(bottom: ScreenUtil.getInstance().setHeight(15)), child: Row( children: < Widget > [ SizedBox( width: ScreenUtil.getInstance().setWidth(355), child: Text('货物名称:${data.goods}', style: TextStyle(fontSize: ScreenUtil.getInstance().setSp(24), color: Color.fromRGBO(155, 155, 155, 1)), ), ), Text('代收款:${data.goodsAgencyFund/100}元', style: TextStyle(fontSize: ScreenUtil.getInstance().setSp(24), color: Color.fromRGBO(155, 155, 155, 1)), ), ], ), ), Padding( padding: EdgeInsets.only(bottom: ScreenUtil.getInstance().setHeight(30)), child: Row( children: < Widget > [ SizedBox( width: ScreenUtil.getInstance().setWidth(355), child: Text('货物件数:${data.goodsQuantity}件', style: TextStyle(fontSize: ScreenUtil.getInstance().setSp(24), color: Color.fromRGBO(155, 155, 155, 1)), ), ), Text('运费:${data.goodsFreight/100}元', style: TextStyle(fontSize: ScreenUtil.getInstance().setSp(24), color: Color.fromRGBO(155, 155, 155, 1)), ), ], ), ), Padding( padding: EdgeInsets.only(bottom: ScreenUtil.getInstance().setHeight(20)), child: Container( height: ScreenUtil.getInstance().setHeight(1), color: Color.fromRGBO(223, 223, 223, 1), ), ), Row( mainAxisAlignment: MainAxisAlignment.spaceBetween, children: < Widget > [ GestureDetector( child: Offstage( offstage: false, child: Container( width: ScreenUtil.getInstance().setWidth(94), height: ScreenUtil.getInstance().setHeight(48), decoration: BoxDecoration( color: Color.fromRGBO(239, 243, 249, 1), borderRadius: BorderRadius.all(Radius.circular(4.0)) ), child: Center( child: Text('作废', style: TextStyle(fontSize: ScreenUtil.getInstance().setSp(24), color: Color.fromRGBO(64, 98, 254, 1))), ), ), ), onTap: () { showDialog < Null > ( context: context, //BuildContext对象 barrierDismissible: false, builder: (BuildContext context) { return new LoadingDialog( //调用对话框 text: '是否确认作废', childCallback: (val) { if (val) { myUpdataOrder(5); } else { return; } }, ); }); print("作废"); }, ), InkWell( child: Offstage( offstage: false, child: Container( width: ScreenUtil.getInstance().setWidth(94), height: ScreenUtil.getInstance().setHeight(48), decoration: BoxDecoration( color: Color.fromRGBO(239, 243, 249, 1), borderRadius: BorderRadius.all(Radius.circular(4.0)) ), child: Center( child: Text('改单', style: TextStyle(fontSize: ScreenUtil.getInstance().setSp(24), color: Color.fromRGBO(64, 98, 254, 1))), ), ), ), onTap: () { showDialog < Null > ( context: context, //BuildContext对象 barrierDismissible: false, builder: (BuildContext context) { return new LoadingDialog( //调用对话框 text: '是否确认改单', childCallback: (val) { if (val) { print(val); Navigator.push(context, MaterialPageRoute(builder: (context) { return OrderDetailPage(orderNo: '${data.orderNo}', ); })).then((resp){ if(resp==true){ getOrderDetail(widget.orderNo).then((resp) { if (isNotError(context, resp) && this.mounted) { OrderDetailObj orderDetailObj = OrderDetailObj.fromJson(resp.data); setState(() { data = orderDetailObj.data; }); } }); } }); } else { return; } }, ); }); print("改单"); }, ), InkWell( child: Offstage( offstage: false, child: Container( width: ScreenUtil.getInstance().setWidth(94), height: ScreenUtil.getInstance().setHeight(48), decoration: BoxDecoration( color: Color.fromRGBO(239, 243, 249, 1), borderRadius: BorderRadius.all(Radius.circular(4.0)) ), child: Center( child: Text('打印', style: TextStyle(fontSize: ScreenUtil.getInstance().setSp(24), color: Color.fromRGBO(64, 98, 254, 1))), ), ), ), onTap: () { showDialog < Null > ( context: context, //BuildContext对象 barrierDismissible: false, builder: (BuildContext context) { return new LoadingDialog( //调用对话框 text: '是否确认打印', childCallback: (val) { if (val) { checkBlueToothAndPrintOrder(widget); } else { return; } }, ); }); print("打印"); }, ), ], ) ], ), ) ), onTap: () { }, ); } 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() ) ], ), ), ); } myUpdataOrder(int myOrderStatus) { updataOrderStatus(data.orderNo, myOrderStatus).then((resp) { if (isNotError(context, resp) && this.mounted) { } }); } void checkBlueToothAndPrintOrder(var obj){ bluetooth.isBTDevice().then((resp){ if(resp){ bluetooth.isEnableBluetooth().then((resp){ if(resp){ 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 = (data.goodsFreight/100)+(data.goodsAgencyFund/100); String nowDate = fromatDate( DateTime.now().millisecondsSinceEpoch);//打印时间 String createTime = fromatDate(data.createTime); double goodsAgencyFunds = data.goodsAgencyFund/100; double goodsDFreight = data.goodsPaymentMethod==1?data.goodsFreight/100:0; double goodsXFreight = data.goodsPaymentMethod==2?data.goodsFreight/100:0; String receiptAddress = data.receiptCompanyAddress.length>10?data.receiptCompanyAddress.substring(0,10):data.receiptCompanyAddress; Map pum = { "[logisticsNo]": "${data.orderNo ?? ''}", "[createTime]": "$createTime", "[sendStationName]": "$stationName", "[dealerCode]": "${data.sendCompanyCode ?? ''}", "[dealerName]": "${data.sendCompanyName}", "[dealerTel]": "${data.sendCompanyPhone ?? ''}", "[repairName]": "${data.receiptCompanyName ?? ''}", "[repairTel]": "${data.receiptCompanyPhone ?? ''}", "[endStationName]": "${data.receiptStationName}", "[goodsLineCode]": "${data.lineCode ?? ''}", "[goodsLine]": "${data.lineName ?? ''}", "[repairAddress]": "${receiptAddress?? ''}", "[goodsQuantity]": "${data.goodsQuantity ?? ''}", "[goodsInsurance]": "${data.goodsInsurance ?? ''}", "[goodsFlatCost]": "${data.goodsFlatCost ?? ''}", // 到付 现付 金额 "[goodsDFreight]": "$goodsDFreight", "[goodsXFreight]": "$goodsXFreight", "[goodsAgencyFund]": "$goodsAgencyFunds", "[goodsYs]": "$goodsYs", "[dealerBankAccount]": "${data.sendCompanyBankCard ?? ''}", "[goodsRemark]": "${data.memo ?? ''}", "[realName]": "${nickName?? ''}", "[currentTime]": "$nowDate", "[currentGoodNumber]": "1/1", }; bluetooth.printOrder(pum, int.parse(printType)); }); }); }); } }); }else{ showDialog ( context: context, barrierDismissible: false, builder: (BuildContext context) { return MyAlertDialog(text: '请打开蓝牙并连接打印机',childCallback:(val){}); } ); } }); }else{ showDialog ( context: context, barrierDismissible: false, builder: (BuildContext context) { return MyAlertDialog(text: '当前设备不支持蓝牙',childCallback:(val){}); } ); } }); } }