import 'dart:io'; import 'package:flutter/cupertino.dart'; import 'package:flutter/material.dart'; import 'package:flutter_smart_dialog/flutter_smart_dialog.dart'; import 'package:huixiang/generated/l10n.dart'; import 'package:huixiang/retrofit/data/min_order_info.dart'; import 'package:huixiang/retrofit/data/settleOrderInfo.dart'; import 'package:huixiang/utils/font_weight.dart'; import 'package:flutter_screenutil/flutter_screenutil.dart'; class ActivityCouponRemarks extends StatefulWidget { final Function() couponCart; final Function() activityCart; final Function() editRemark; final String coupons; final String promotions; final SettleOrderInfo settleOrderInfo; final MinOrderInfo minOrderInfo; final int couponCount; final bool placeOrder; final String remark; final int tableId; final Function(bool useVipPriceSelect) vipPriceSelect; final Function showVipTips; ActivityCouponRemarks( this.couponCart, this.activityCart, this.settleOrderInfo, this.minOrderInfo, this.coupons, this.promotions, this.couponCount, this.placeOrder, this.remark, this.editRemark, this.tableId, this.vipPriceSelect, this.showVipTips); @override State createState() { return _ActivityCouponRemarks(); } } class _ActivityCouponRemarks extends State { bool vipSelect = false; @override Widget build(BuildContext context) { return Container( decoration: BoxDecoration( color: Colors.white, boxShadow: [ BoxShadow( color: Color(0x0D000000), offset: Offset(0, 1), blurRadius: 8, spreadRadius: 0, ), ], borderRadius: BorderRadius.circular(8), ), // height: 122.h / (!widget.placeOrder ? 2 : 1), margin: EdgeInsets.only(left: 16, right: 16, top: 15, bottom: 14), padding: EdgeInsets.only( left: 16, right: 16, top: 14, bottom: 14, ), child: Column( mainAxisAlignment: MainAxisAlignment.spaceEvenly, crossAxisAlignment: CrossAxisAlignment.center, children: [ if(!(widget?.settleOrderInfo?.isRaise ?? false)) Row( mainAxisAlignment: MainAxisAlignment.center, crossAxisAlignment: CrossAxisAlignment.center, children: [ Expanded( flex: 1, child: Text( "VIP价格", style: TextStyle( fontWeight: MyFontWeight.regular, fontSize: 14.sp, color: Color(0xFF353535), ), ), ), Platform.isAndroid ? Switch.adaptive( value: (widget.coupons != null && widget.coupons != ""||widget.promotions != null && widget.promotions != "") ? false:vipSelect, materialTapTargetSize: MaterialTapTargetSize.shrinkWrap, activeColor: Color(0xff32A060), onChanged: (bool value) { setState(() { if((widget?.settleOrderInfo?.memberVO?.isVip ?? false)){ vipSelect = !vipSelect; widget.vipPriceSelect(vipSelect); }else{ widget.showVipTips(); return; } }); }, ): GestureDetector( onTap: () { setState(() { // (widget.coupons != null && widget.coupons != ""||widget.promotions != null && widget.promotions != "") ? false:vipSelect, if ((widget?.settleOrderInfo?.memberVO?.isVip ?? false)) { vipSelect = !vipSelect; widget.vipPriceSelect(vipSelect); } else { widget.showVipTips(); return; } }); }, child: Container( padding: EdgeInsets.only(bottom: 18.w), alignment: Alignment.center, child: Image.asset( vipSelect ? "assets/image/vip_price.webp" : "assets/image/vip_unprice.webp", width: 38.w, height: 20.h, ), ), ) ], ), if (widget.placeOrder && widget?.settleOrderInfo?.benefitDiscountAmount != null && widget?.settleOrderInfo?.benefitDiscountAmount != "0") Container( margin: EdgeInsets.only(bottom: 13), child: Row( mainAxisAlignment: MainAxisAlignment.center, crossAxisAlignment: CrossAxisAlignment.center, children: [ Expanded( flex: 1, child: Text( "会员优惠金额", style: TextStyle( fontWeight: MyFontWeight.regular, fontSize: 14.sp, color: Color(0xFF353535), ), ), ), Text( widget.settleOrderInfo.benefitDiscountAmount, textAlign: TextAlign.end, style: TextStyle( fontSize: 14.sp, color: Color(0xFF32A060), fontWeight: MyFontWeight.semi_bold, ), ), ], ), ), if (widget.placeOrder && widget.tableId <= 0 && !(widget?.settleOrderInfo?.isRaise ?? false)) InkWell( onTap: () { widget.activityCart(); }, child: Row( mainAxisAlignment: MainAxisAlignment.center, crossAxisAlignment: CrossAxisAlignment.center, children: [ Expanded( flex: 1, child: Text( S.of(context).huodong, style: TextStyle( fontWeight: MyFontWeight.regular, fontSize: 14.sp, color: Color(0xFF353535), ), ), ), Text( activityText(), textAlign: TextAlign.end, style: TextStyle( fontSize: 14.sp, color: Color(0xFF32A060), fontWeight: MyFontWeight.semi_bold, ), ), Icon( Icons.keyboard_arrow_right, size: 16, ), ], ), ), if (widget.placeOrder && !(widget?.settleOrderInfo?.isRaise ?? false)) SizedBox( height: 13, ), if (widget.placeOrder && !(widget?.settleOrderInfo?.isRaise ?? false)) InkWell( onTap: () { widget.couponCart(); }, child: 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), ), ), ), Text( couponText(), textAlign: TextAlign.end, style: TextStyle( fontSize: 14.sp, color: Color(0xFF32A060), fontWeight: MyFontWeight.semi_bold, ), ), Icon( Icons.keyboard_arrow_right, size: 16, ), ], ), ), if (widget.placeOrder && !(widget?.settleOrderInfo?.isRaise ?? false)) SizedBox( height: 13, ), InkWell( onTap: () { widget.editRemark(); }, child: 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( child: Text( widget.remark != "" ? widget.remark : "点击添加备注", textAlign: TextAlign.end, style: TextStyle( fontSize: 14.sp, color: Color(0xFF858585), fontWeight: MyFontWeight.medium, ), ), ), Icon( Icons.keyboard_arrow_right, size: 16, ), ], ), ), ], ), ); } String activityText() { String promotion = ""; if (widget.promotions == null || widget.promotions == "") { promotion = "未选择任何活动"; if (widget.settleOrderInfo == null || widget.settleOrderInfo.promotionInfoList == null) { promotion = "暂无可选活动"; } else if (widget.coupons != null && widget.coupons != "") { promotion = "活动与优惠券不可同享"; } } else { promotion = widget.promotions; } return promotion; } String couponText() { String coupon = ""; if (widget.coupons == null || widget.coupons == "") { coupon = "未选择任何优惠券"; if (widget.placeOrder) if (widget.minOrderInfo == null || widget.minOrderInfo.orderInfoVo.couponList == null) { coupon = "未选择任何优惠券"; } else if (widget.promotions != null && widget.promotions != "") { coupon = "优惠券与活动不可同享"; } if (widget.settleOrderInfo == null || widget.settleOrderInfo.couponList == null) { coupon = "暂无可选优惠券"; } else if (widget.promotions != null && widget.promotions != "") { coupon = "优惠券与活动不可同享"; } } else { coupon = widget.coupons; } return coupon; } }