diff --git a/lib/order/order_view/order_status.dart b/lib/order/order_view/order_status.dart index 5aad2bbc..ab3af21a 100644 --- a/lib/order/order_view/order_status.dart +++ b/lib/order/order_view/order_status.dart @@ -91,7 +91,7 @@ class _OrderStatus extends State { ), ), Image.asset( - "assets/image/order_ok.png", + statusPicture(widget.title), height: 66.h, width:66.w, ), @@ -205,6 +205,18 @@ class _OrderStatus extends State { ]; } - + statusPicture(String status) { + String tripStatus = "assets/image/wait_meal.png"; + if (status.contains(S.of(context).dingdanyiwancheng)) { + tripStatus = "assets/image/order_ok.png"; + } else if (status.contains(S.of(context).dingdanyituikuan)) { + tripStatus = "assets/image/order_refund.png"; + } else if (status.contains(S.of(context).quxiaodingdan)) { + tripStatus = "assets/image/oeder_cancel.png"; + } else if (status.contains(S.of(context).dengdaiyonghuqucan)) { + tripStatus = "assets/image/wait_meal.png"; + } + return tripStatus; + } } \ No newline at end of file diff --git a/lib/store/store_order.dart b/lib/store/store_order.dart index e2b0d76c..49dfe413 100644 --- a/lib/store/store_order.dart +++ b/lib/store/store_order.dart @@ -359,7 +359,11 @@ class _StoreOrderPage extends State onTap: () { Navigator.of(context).pushNamed( '/router/settlement', - arguments: widget.arguments, + arguments: { + "storeName": storeInfo.storeName, + "address": storeInfo.address, + "headMobile": storeInfo.headMobile, + }, ); }, child: RoundButton( diff --git a/lib/store/store_view/settlement.dart b/lib/store/store_view/settlement.dart index 224eaea0..8a7f2ab8 100644 --- a/lib/store/store_view/settlement.dart +++ b/lib/store/store_view/settlement.dart @@ -7,10 +7,13 @@ import 'package:huixiang/order/order_view/order_commodity.dart'; import 'package:huixiang/retrofit/data/base_data.dart'; import 'package:huixiang/retrofit/data/order_info.dart'; import 'package:huixiang/retrofit/data/settleOrderInfo.dart'; +import 'package:huixiang/retrofit/data/store_info.dart'; import 'package:huixiang/retrofit/min_api.dart'; import 'package:huixiang/retrofit/retrofit_api.dart'; import 'package:huixiang/utils/font_weight.dart'; import 'package:huixiang/view_widget/my_appbar.dart'; +import 'package:huixiang/view_widget/rename_dialog.dart'; +import 'package:huixiang/view_widget/rename_dialog_content.dart'; import 'package:huixiang/view_widget/round_button.dart'; import 'package:shared_preferences/shared_preferences.dart'; import 'package:flutter_screenutil/flutter_screenutil.dart'; @@ -19,7 +22,7 @@ class Settlement extends StatefulWidget { final arguments; final OrderInfo orderInfo; - Settlement({this.arguments, this.orderInfo}); + Settlement({this.arguments,this.orderInfo}); @override State createState() { @@ -28,7 +31,7 @@ class Settlement extends StatefulWidget { } class _Settlement extends State { - + ApiService apiService; MinApiService minService; int selectedBtn = 0; @@ -37,17 +40,17 @@ class _Settlement extends State { super.initState(); SharedPreferences.getInstance().then((value) { - minService = MinApiService( + apiService = ApiService( Dio(), context: context, - token: value.getString("minToken"), - tenant: value.getString("tenant"), + token: value.getString("token"), ); queryOrderInfo(); }); } OrderInfo orderInfo; + StoreInfo storeInfo; int payStatus = 0; int orderStatus = 0; int sendStatus = 0; @@ -55,41 +58,40 @@ class _Settlement extends State { int refundStatus = 0; // String storeType = "NORMALSTORE"; //NORMALSTORE FASTSTORE RETAILSTORE - // queryDetails() async { - // BaseData baseData = - // await apiService.orderDetail(widget.arguments["id"]); - // if (baseData != null && baseData.isSuccess) { - // orderInfo = baseData.data; - // payStatus = orderInfo.payStatus; - // orderStatus = orderInfo.orderStatus; - // sendStatus = orderInfo.sendStatus; - // isTakeOut = orderInfo.isTakeOut; - // refundStatus = orderInfo.refundStatus; - // // storeType = orderInfo.storeVO.posType.code; - // print("order refund_status: $refundStatus"); - // print("order payStatus: $payStatus"); - // print("order orderStatus: $orderStatus"); - // print("order sendStatus: $sendStatus"); - // print("order isTakeOut: $isTakeOut"); - // if (mounted) - // setState(() { - // statusTitle(); - // }); - // } - // } + queryDetails() async { + BaseData baseData = await apiService.orderDetail(widget.arguments["id"]); + if (baseData != null && baseData.isSuccess) { + orderInfo = baseData.data; + payStatus = orderInfo.payStatus; + orderStatus = orderInfo.orderStatus; + sendStatus = orderInfo.sendStatus; + isTakeOut = orderInfo.isTakeOut; + refundStatus = orderInfo.refundStatus; + // storeType = orderInfo.storeVO.posType.code; + print("order refund_status: $refundStatus"); + print("order payStatus: $payStatus"); + print("order orderStatus: $orderStatus"); + print("order sendStatus: $sendStatus"); + print("order isTakeOut: $isTakeOut"); + if (mounted) + setState(() { + statusTitle(); + }); + } + } ///订单结算信息 queryOrderInfo() async { - // BaseData baseData = await minService.getOrderInfo({ - // "addressId":0, - // "isTake": 0, - // "memberCouponId": 0, - // "orderId": widget.arguments["orderId"], - // "promotionId": 0 - // }); - // if (baseData != null && baseData.isSuccess) { - // setState(() {}); - // } + BaseData baseData = await minService.getOrderInfo({ + "addressId":0, + "isTake": 0, + "memberCouponId": 0, + "orderId": widget.arguments["orderId"], + "promotionId": 0 + }); + if (baseData != null && baseData.isSuccess) { + setState(() {}); + } } @override @@ -115,9 +117,8 @@ class _Settlement extends State { appBar: MyAppBar( background: Color(0xFF3A405A), leadingColor: Colors.white, - title: S.of(context).dingdanjiesuan, + title:S.of(context).dingdanjiesuan, titleColor: Colors.white, - brightness: Brightness.dark, titleSize: 18.sp, ), body: Container( @@ -127,10 +128,7 @@ class _Settlement extends State { child: Column( children: [ distributionMode(), - - SizedBox( - height: 14, - ), + SizedBox(height: 14,), ///订单商品 OrderCommodity(orderInfo), @@ -142,6 +140,9 @@ class _Settlement extends State { ///支付方式 payMethod(), + + + ], ), ), @@ -157,55 +158,57 @@ class _Settlement extends State { bottom: 0, left: 0, right: 0, - child: Container( - height: 54.h, - color: Colors.white, - child: Row( - crossAxisAlignment: CrossAxisAlignment.center, - children: [ - Spacer(), - Text( - S.of(context).heji, - style: TextStyle( - fontSize: 12.sp, - fontWeight: MyFontWeight.regular, - color: Colors.black, - ), - ), - Text( - "¥19.00", - style: TextStyle( - fontSize: 20.sp, - fontWeight: MyFontWeight.semi_bold, - color: Color(0xFF32A060), - ), - ), - SizedBox( - width: 28, - ), - GestureDetector( - onTap: () {}, - child: RoundButton( - width: 103.w, - height: 54.h, - text: S.current.jiesuan, - textColor: Colors.white, - fontWeight: MyFontWeight.regular, - backgroup: Color(0xFF32A060), - fontSize: 16.sp, - padding: EdgeInsets.symmetric(vertical: 5.h), - ), + child: + Container( + height: 54.h, + color: Colors.white, + child: Row( + crossAxisAlignment: CrossAxisAlignment.center, + children: [ + Spacer(), + Text( + S.of(context).heji, + style: TextStyle( + fontSize: 12.sp, + fontWeight: MyFontWeight.regular, + color: Colors.black, + ), + ), + Text( + "¥19.00", + style: TextStyle( + fontSize: 20.sp, + fontWeight: MyFontWeight.semi_bold, + color: Color(0xFF32A060), + ), + ), + SizedBox(width: 28,), + GestureDetector( + onTap: () { + + }, + child: RoundButton( + width: 103.w, + height: 54.h, + text: S.current.jiesuan, + textColor: Colors.white, + fontWeight: MyFontWeight.regular, + backgroup: Color(0xFF32A060), + fontSize: 16.sp, + padding: EdgeInsets.symmetric(vertical: 5.h), + ), + ), + ], ), - ], - ), - ), - ), + ), + ) ], ); } String title = ""; String center = ""; + TextEditingController _vc = TextEditingController(); statusTitle() { if (isTakeOut == 0) { @@ -309,11 +312,7 @@ class _Settlement extends State { borderRadius: BorderRadius.circular(8), ), height: 175.h, - margin: EdgeInsets.only( - left: 16, - right: 16, - top: 15, - ), + margin: EdgeInsets.only(left: 16, right: 16, top: 15), child: Stack( children: [ Column( @@ -334,40 +333,37 @@ class _Settlement extends State { Expanded( flex: 1, child: Container( - height: 50.h, - decoration: BoxDecoration( - image: selectedBtn == 0 - ? DecorationImage( - image: - AssetImage("assets/image/order_btn1.png"), - fit: BoxFit.fill, - ) - : null, - borderRadius: BorderRadius.only( - topLeft: Radius.circular(8), - ), - ), - child: GestureDetector( - onTap: () { - setState(() { - selectedBtn = 0; - }); - }, - child: Stack( - alignment: Alignment.center, - children: [ - Text( - S.of(context).daodianziqu, - style: TextStyle( - fontSize: 14.sp, - fontWeight: MyFontWeight.semi_bold, - color: Colors.black, + height: 50.h, + decoration: BoxDecoration( + image: selectedBtn == 0 + ? DecorationImage( + image: AssetImage( + "assets/image/order_btn1.png"), + fit: BoxFit.fill, + ) + : null, + borderRadius: BorderRadius.only( + topLeft: Radius.circular(8))), + child: GestureDetector( + onTap: () { + setState(() { + selectedBtn = 0; + }); + }, + child: Stack( + alignment: Alignment.center, + children: [ + Text( + S.of(context).daodianziqu, + style: TextStyle( + fontSize: 14.sp, + fontWeight: MyFontWeight.semi_bold, + color: Colors.black, + ), ), - ), - ], - ), - ), - ), + ], + ), + )), ), Expanded( flex: 1, @@ -387,7 +383,7 @@ class _Settlement extends State { fit: BoxFit.fill, ), Text( - S.of(context).waimaipeisong, + S.of(context).waimaipeisong, style: TextStyle( fontSize: 14.sp, fontWeight: MyFontWeight.regular, @@ -445,39 +441,37 @@ class _Settlement extends State { children: [ Row( children: [ - Expanded( - child: Column( - mainAxisAlignment: MainAxisAlignment.spaceBetween, - crossAxisAlignment: CrossAxisAlignment.start, - children: [ - Text( - "前进麦味·天然烘焙(凯德1818店)", - overflow: TextOverflow.ellipsis, - style: TextStyle( - fontSize: 14.sp, - fontWeight: MyFontWeight.semi_bold, - color: Color(0xFF4C4C4C), - ), - ), - SizedBox( - height: 4, - ), - Text( - "武昌区中国铁建凯德1818蓝调步行街中北路109附33门牌号05", - overflow: TextOverflow.ellipsis, - maxLines: 2, - style: TextStyle( - fontSize: 12.sp, - fontWeight: MyFontWeight.regular, - color: Color(0xFF727272), - ), + Expanded(child:Column( + mainAxisAlignment: MainAxisAlignment.spaceBetween, + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Text( + storeInfo != null ? (storeInfo.storeName ?? "") : "", + overflow: TextOverflow.ellipsis, + style: TextStyle( + fontSize: 14.sp, + fontWeight: MyFontWeight.semi_bold, + color: Color(0xFF4C4C4C), ), - SizedBox( - height: 12, + ), + SizedBox( + height: 4, + ), + Text( + storeInfo != null ? storeInfo.address : "", + overflow: TextOverflow.ellipsis, + maxLines: 2, + style: TextStyle( + fontSize: 12.sp, + fontWeight: MyFontWeight.regular, + color: Color(0xFF727272), ), - ], - ), - ), + ), + SizedBox( + height: 12, + ), + ], + ),), SizedBox( width: 18, ), @@ -489,58 +483,59 @@ class _Settlement extends State { Image.asset( "assets/image/map.png", height: 61.h, - width: 61.w, - ), - ], - ), - Column( - children: [ - RoundButton( - width: 41.w, - height: 13, - text: "距离您11m", - textColor: Color(0xFF34A262), - fontWeight: MyFontWeight.semi_bold, - radius: 7.5, - backgroup: Colors.white, - fontSize: 7.sp, - ), - Image.asset( - "assets/image/landmark.png", - height: 24.h, - width: 24.w, + width:61.w, ), ], ), + Column(children: [ + RoundButton( + width: 41.w, + height: 13, + text: "距离您11m", + textColor:Color(0xFF34A262), + fontWeight: MyFontWeight.semi_bold, + radius:7.5, + backgroup:Colors.white, + fontSize:7.sp, + ), + Image.asset( + "assets/image/landmark.png", + height: 24.h, + width:24.w, + ), + ],), ], ) ], ), Row( children: [ - Expanded( - child: Text( - S.of(context).yuliudianhua, - overflow: TextOverflow.ellipsis, - style: TextStyle( - fontSize: 14.sp, - fontWeight: MyFontWeight.regular, - color: Color(0xFF4C4C4C), - ), + Expanded(child: Text( + S.of(context).yuliudianhua, + overflow: TextOverflow.ellipsis, + style: TextStyle( + fontSize: 14.sp, + fontWeight: MyFontWeight.regular, + color: Color(0xFF4C4C4C), ), - ), + )), Text( - "12309090909", + storeInfo != null ? storeInfo.headMobile:"", style: TextStyle( fontSize: 14.sp, fontWeight: MyFontWeight.medium, color: Color(0xFF4C4C4C), ), ), - Image.asset( - "assets/image/pen.png", - height: 14.h, - width: 14.w, + GestureDetector( + onTap: (){ + showAlertDialog(); + }, + child:Image.asset( + "assets/image/pen.png", + height:14.h, + width:14.w, + ), ), ], ) @@ -609,7 +604,7 @@ class _Settlement extends State { ); } - Widget activityRemarks() { + Widget activityRemarks(){ return Container( decoration: BoxDecoration( color: Colors.white, @@ -624,40 +619,29 @@ class _Settlement extends State { borderRadius: BorderRadius.circular(8), ), height: 86.h, - margin: EdgeInsets.only( - left: 16, - right: 16, - top: 15, - ), - padding: EdgeInsets.only( - left: 16, - right: 16, - top: 16, - ), + margin: EdgeInsets.only(left: 16, right: 16, top: 15), + padding: EdgeInsets.only(left: 16, right: 16, top: 16), child: Column( children: [ Row( mainAxisAlignment: MainAxisAlignment.center, crossAxisAlignment: CrossAxisAlignment.center, children: [ - Expanded( - flex: 1, - child: Text( - S.of(context).youhuiquan, - style: TextStyle( - fontWeight: MyFontWeight.regular, - fontSize: 14.sp, - color: Color(0xFF353535), - ), + Expanded(flex: 1,child:Text( + S.of(context).youhuiquan, + style: TextStyle( + fontWeight: MyFontWeight.regular, + fontSize: 14.sp, + color: Color(0xFF353535), ), - ), + )), Text( "满30减10", textAlign: TextAlign.end, style: TextStyle( fontSize: 14.sp, color: Color(0xFF32A060), - fontWeight: MyFontWeight.semi_bold, + fontWeight: MyFontWeight.semi_bold ), ), Icon( @@ -666,31 +650,27 @@ class _Settlement extends State { ), ], ), - SizedBox( - height: 13, + SizedBox(height: 13, ), Row( mainAxisAlignment: MainAxisAlignment.center, crossAxisAlignment: CrossAxisAlignment.center, children: [ - Expanded( - flex: 1, - child: Text( - S.of(context).beizhu, - style: TextStyle( - fontWeight: MyFontWeight.regular, - fontSize: 14.sp, - color: Color(0xFF353535), - ), + Expanded(flex: 1,child:Text( + S.of(context).beizhu, + style: TextStyle( + fontWeight: MyFontWeight.regular, + fontSize: 14.sp, + color: Color(0xFF353535), ), - ), + )), Text( "口味、面包硬度等", textAlign: TextAlign.end, style: TextStyle( - fontSize: 14.sp, - color: Color(0xFF353535), - fontWeight: MyFontWeight.semi_bold, + fontSize: 14.sp, + color: Color(0xFF353535), + fontWeight: MyFontWeight.semi_bold ), ), Icon( @@ -704,7 +684,7 @@ class _Settlement extends State { ); } - Widget payMethod() { + Widget payMethod(){ return Container( width: double.infinity, margin: EdgeInsets.only( @@ -741,14 +721,14 @@ class _Settlement extends State { style: TextStyle( fontSize: 16.sp, color: Colors.black, - fontWeight: MyFontWeight.regular, + fontWeight:MyFontWeight.regular, ), ), ), GestureDetector( onTap: () { setState(() { - checkIndex = 1; + checkIndex =1; }); }, child: Row( @@ -761,19 +741,17 @@ class _Settlement extends State { style: TextStyle( fontSize: 14.sp, color: Color(0xff353535), - fontWeight: MyFontWeight.semi_bold, + fontWeight: MyFontWeight.semi_bold ), ), ], ), ), - SizedBox( - height: 10, - ), + SizedBox(height: 10,), GestureDetector( onTap: () { setState(() { - checkIndex = 2; + checkIndex =2; }); }, child: Row( @@ -786,15 +764,13 @@ class _Settlement extends State { style: TextStyle( fontSize: 14.sp, color: Color(0xff353535), - fontWeight: MyFontWeight.semi_bold, + fontWeight: MyFontWeight.semi_bold, ), ), ], ), ), - SizedBox( - height: 10, - ), + SizedBox(height: 10,), GestureDetector( onTap: () { setState(() { @@ -815,7 +791,7 @@ class _Settlement extends State { style: TextStyle( fontSize: 14.sp, color: Color(0xff353535), - fontWeight: MyFontWeight.semi_bold, + fontWeight: MyFontWeight.semi_bold, ), ), ), @@ -827,6 +803,27 @@ class _Settlement extends State { ); } + showAlertDialog() { + //显示对话框 + showDialog( + barrierDismissible: false, + context: context, + builder: (context) { + return RenameDialog( + contentWidget: RenameDialogContent( + title: "请输入新的手机号码", + okBtnTap: () { + // print( + // "输入框中的文字为:${_vc.text}", + // ); + }, + vc: _vc, + cancelBtnTap: () {}, + ), + ); + }); + } + var checkIndex = 1; Widget checkView(var index) { diff --git a/lib/view_widget/rename_dialog.dart b/lib/view_widget/rename_dialog.dart new file mode 100644 index 00000000..9ad45101 --- /dev/null +++ b/lib/view_widget/rename_dialog.dart @@ -0,0 +1,12 @@ +import 'package:flutter/material.dart'; + +class RenameDialog extends AlertDialog { + RenameDialog({Widget contentWidget}) + : super( + content: contentWidget, + contentPadding: EdgeInsets.zero, + shape: RoundedRectangleBorder( + borderRadius: BorderRadius.circular(20), + side: BorderSide(color: Colors.white, width: 3)), + ); +} diff --git a/lib/view_widget/rename_dialog_content.dart b/lib/view_widget/rename_dialog_content.dart new file mode 100644 index 00000000..98e6362d --- /dev/null +++ b/lib/view_widget/rename_dialog_content.dart @@ -0,0 +1,104 @@ +import 'package:flutter/material.dart'; +import 'package:huixiang/generated/l10n.dart'; + +double btnHeight = 60; +double borderWidth = 2; + +class RenameDialogContent extends StatefulWidget { + final String title; + final VoidCallback cancelBtnTap; + final VoidCallback okBtnTap; + final TextEditingController vc; + RenameDialogContent( + {@required this.title, + this.cancelBtnTap, + this.okBtnTap, + this.vc}); + + @override + _RenameDialogContentState createState() => + _RenameDialogContentState(); +} + +class _RenameDialogContentState extends State { + @override + Widget build(BuildContext context) { + return Container( + margin: EdgeInsets.only(top: 20), + height: 200, + width: 10000, + alignment: Alignment.bottomCenter, + child: Column( + children: [ + Container( + alignment: Alignment.center, + child: Text( + widget.title, + style: TextStyle(color: Colors.grey), + )), + Spacer(), + Padding( + padding: EdgeInsets.fromLTRB(30, 0, 30, 0), + child: TextField( + style: TextStyle(color: Colors.black87), + controller: widget.vc, + decoration: InputDecoration( + enabledBorder: UnderlineInputBorder( + borderSide: BorderSide(color: Colors.black), + ), + focusedBorder: UnderlineInputBorder( + borderSide: BorderSide(color: Colors.black), + )), + ), + ), + Container( + // color: Colors.red, + height: btnHeight, + margin: EdgeInsets.fromLTRB(0, 30, 0, 0), + child: Column( + children: [ + Container( + // 按钮上面的横线 + width: double.infinity, + color: Colors.white, + height: borderWidth, + ), + Row( + mainAxisAlignment: MainAxisAlignment.spaceEvenly, + children: [ + FlatButton( + onPressed: () { + widget.vc.text = ""; + widget.cancelBtnTap(); + Navigator.of(context).pop(); + }, + child: Text( + S.of(context).quxiao, + style: TextStyle(fontSize: 18, color: Colors.black), + ), + ), + Container( + // 按钮中间的竖线 + width: borderWidth, + color: Colors.grey, + height: btnHeight - borderWidth - borderWidth, + ), + FlatButton( + onPressed: () { + widget.okBtnTap(); + Navigator.of(context).pop(); + widget.vc.text = ""; + }, + child: Text( + S.of(context).queding, + style: TextStyle(fontSize:18, color: Colors.black), + )), + ], + ), + ], + ), + ) + ], + )); + } +}