From bb7abe8e76be4d968cf69c0e3984ca1c6691983b Mon Sep 17 00:00:00 2001 From: laiiihz Date: Thu, 3 Dec 2020 10:09:08 +0800 Subject: [PATCH] =?UTF-8?q?=E8=AE=A2=E5=8D=95=E9=A1=B5=E9=9D=A2=E6=B7=BB?= =?UTF-8?q?=E5=8A=A0=E6=B5=B7=E5=A4=96=E5=95=86=E5=93=81=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- lib/models/order_preview_model.dart | 6 ++ lib/models/order_preview_model.g.dart | 3 + .../home/classify/order_preview_page.dart | 70 +++++++++++++++++++ lib/pages/home/items/goods_item_order.dart | 65 ++++++++++++----- .../items/oversea_accept_license_page.dart | 59 ++++++++++++++++ 5 files changed, 184 insertions(+), 19 deletions(-) create mode 100644 lib/pages/home/items/oversea_accept_license_page.dart diff --git a/lib/models/order_preview_model.dart b/lib/models/order_preview_model.dart index ff38c21..ae17a87 100644 --- a/lib/models/order_preview_model.dart +++ b/lib/models/order_preview_model.dart @@ -361,6 +361,9 @@ class OrderGoods extends Object { double goodsAmount; //商品总金额 单价x数量,不含其他费用减除 double expressFee; //快递费 double actualAmount; //实际支付的金额 + num isImport; + num isFerme; + num storehouse; OrderGoods( this.goodsId, @@ -379,6 +382,9 @@ class OrderGoods extends Object { this.goodsAmount, this.expressFee, this.actualAmount, + this.isImport, + this.isFerme, + this.storehouse, ); factory OrderGoods.fromJson(Map srcJson) => diff --git a/lib/models/order_preview_model.g.dart b/lib/models/order_preview_model.g.dart index 3bec838..e96622b 100644 --- a/lib/models/order_preview_model.g.dart +++ b/lib/models/order_preview_model.g.dart @@ -180,6 +180,9 @@ OrderGoods _$OrderGoodsFromJson(Map json) { (json['goodsAmount'] as num)?.toDouble(), (json['expressFee'] as num)?.toDouble(), (json['actualAmount'] as num)?.toDouble(), + json['isImport']as num, + json['isFerme']as num, + json['storehouse']as num, ); } diff --git a/lib/pages/home/classify/order_preview_page.dart b/lib/pages/home/classify/order_preview_page.dart index 481a321..12110ad 100644 --- a/lib/pages/home/classify/order_preview_page.dart +++ b/lib/pages/home/classify/order_preview_page.dart @@ -21,7 +21,10 @@ import 'package:recook/models/self_pickup_store_list_model.dart'; import 'package:recook/pages/home/classify/mvp/order_mvp/order_presenter_impl.dart'; import 'package:recook/pages/home/classify/order_prepay_page.dart'; import 'package:recook/pages/home/items/goods_item_order.dart'; +import 'package:recook/pages/home/items/oversea_accept_license_page.dart'; import 'package:recook/pages/user/address/receiving_address_page.dart'; +import 'package:recook/pages/user/widget/recook_check_box.dart'; +import 'package:recook/utils/custom_route.dart'; import 'package:recook/widgets/bottom_sheet/bottom_list.dart'; import 'package:recook/widgets/custom_app_bar.dart'; import 'package:recook/widgets/custom_image_button.dart'; @@ -52,6 +55,8 @@ class _GoodsOrderPageState extends BaseStoreState { List _storeList; String _selectedStoreName; + bool _accept = false; + @override void initState() { super.initState(); @@ -207,6 +212,9 @@ class _GoodsOrderPageState extends BaseStoreState { SliverToBoxAdapter( child: _bottomInfoTitle(), ), + SliverToBoxAdapter( + child: _buildOverseaTitle(), + ), SliverToBoxAdapter( child: SizedBox( height: 80 + MediaQuery.of(context).viewPadding.bottom, @@ -584,6 +592,21 @@ class _GoodsOrderPageState extends BaseStoreState { _titleRow("运费", "", "+¥${_orderModel.data.expressTotalFee.toStringAsFixed(2)}", rightTitleColor: Colors.black), + Builder( + builder: (context) { + bool isOversea = false; + for (var item in _orderModel.data.brands) { + for (var childItem in item.goods) { + if (childItem.isImport == 1) isOversea = true; + } + } + + return isOversea + ? _titleRow("进口税", "", "+¥${(0).toStringAsFixed(2)}", + rightTitleColor: Colors.black) + : SizedBox(); + }, + ), _titleRow( "优惠券", "", @@ -599,6 +622,53 @@ class _GoodsOrderPageState extends BaseStoreState { ); } + _buildOverseaTitle() { + bool isOversea = false; + for (var item in _orderModel.data.brands) { + for (var childItem in item.goods) { + if (childItem.isImport == 1) isOversea = true; + } + } + return isOversea + ? Container( + margin: EdgeInsets.only(top: rSize(16), bottom: rSize(42)), + child: GestureDetector( + onTap: () { + _accept = !_accept; + setState(() {}); + }, + child: Row( + children: [ + rWBox(15), + RecookCheckBox(state: _accept), + rWBox(10), + Text( + '同意并接受', + style: TextStyle( + color: AppColor.blackColor, + fontSize: rSP(13), + ), + ), + InkWell( + onTap: () => CRoute.push( + context, + OverseaAcceptLicensePage(), + ), + child: Text( + '《跨境商品用户购买须知》', + style: TextStyle( + color: Color(0xFF007AFF), + fontSize: rSP(13), + ), + ), + ), + ], + ), + ), + ) + : SizedBox(); + } + _titleRow(title, subTitle, rightTitle, {titleColor, subTitleColor, diff --git a/lib/pages/home/items/goods_item_order.dart b/lib/pages/home/items/goods_item_order.dart index 56c1dd8..4f5c52f 100644 --- a/lib/pages/home/items/goods_item_order.dart +++ b/lib/pages/home/items/goods_item_order.dart @@ -186,28 +186,55 @@ class _GoodsOrderItemState extends State { style: AppTextStyle.generate(ScreenAdapterUtils.setSp(14), fontWeight: FontWeight.w400), ), - Padding( - padding: EdgeInsets.symmetric( - vertical: 15, + rHBox(5), + Container( + decoration: BoxDecoration( + borderRadius: BorderRadius.circular(2), + color: Color(0xffeff1f6), ), - child: Container( - decoration: BoxDecoration( - borderRadius: BorderRadius.circular(2), - color: Color(0xffeff1f6), - ), - padding: const EdgeInsets.symmetric( - vertical: 3, horizontal: 6), - child: Text( - goods.skuName, - maxLines: 3, - overflow: TextOverflow.ellipsis, - style: AppTextStyle.generate( - ScreenAdapterUtils.setSp(11), - color: Colors.grey[600], - fontWeight: FontWeight.w300), - ), + padding: + const EdgeInsets.symmetric(vertical: 3, horizontal: 6), + child: Text( + goods.skuName, + maxLines: 3, + overflow: TextOverflow.ellipsis, + style: AppTextStyle.generate(ScreenAdapterUtils.setSp(11), + color: Colors.grey[600], fontWeight: FontWeight.w300), ), ), + rHBox(2), + goods.isImport == 0 + ? SizedBox() + : Row( + children: [ + goods.isFerme == 1 + ? Container( + padding: EdgeInsets.symmetric( + horizontal: rSize(3)), + decoration: BoxDecoration( + color: Color(0xFFFFE5ED), + borderRadius: + BorderRadius.circular(rSize(2)), + ), + child: Text( + '包税', + style: TextStyle( + color: Color(0xFFCC1B4F), + fontSize: rSP(10), + ), + ), + ) + : SizedBox(), + rWBox(4), + Text( + '此商品不支持7天无理由退换', + style: TextStyle( + color: Color(0xFFEF7115), + fontSize: rSP(10), + ), + ), + ], + ), // TextUtils.isEmpty(goods.promotionName) // ? Spacer() // : Row( diff --git a/lib/pages/home/items/oversea_accept_license_page.dart b/lib/pages/home/items/oversea_accept_license_page.dart new file mode 100644 index 0000000..2572b40 --- /dev/null +++ b/lib/pages/home/items/oversea_accept_license_page.dart @@ -0,0 +1,59 @@ +import 'package:flutter/material.dart'; +import 'package:recook/constants/constants.dart'; +import 'package:recook/widgets/recook/recook_scaffold.dart'; + +class OverseaAcceptLicensePage extends StatelessWidget { + const OverseaAcceptLicensePage({Key key}) : super(key: key); + + @override + Widget build(BuildContext context) { + return RecookScaffold( + title: '跨境商品用户购买须知', + body: SingleChildScrollView( + padding: EdgeInsets.fromLTRB( + rSize(16), + rSize(10), + rSize(16), + rSize(40), + ), + child: Text( + '''欢迎您使用由宁波商盟海市供应链管理有限公司(以下称“瑞库客)提供的各项服务。本协议为使用服务的用户(以下简称“用户或您”)和瑞库客达成的共识,具有法律效力。为了保障您的权利,请详细阅读以下所有内容,当您勾选“同意并接受《跨境商品用户购买须知》”时,该行为表示您同意且愿意遵守本《跨境商品用户购买须知》(以下简称“购买须知”)中的约定。 + +1、您承诺在瑞库客所购买的商品系个人合理自用,不得进行二次销售。 + +2、针对保税区发货的各种商品,您委托瑞库客代理申报、代缴税款等通关事宜。以上委托关系系如实填写,您愿意接受海关、检验检疫机构及其他监管部门的监管,并承担相应法律责任。 + +3、您在瑞库客购买的跨境商品等同于原产地直接销售商品,因此商品本身无中文标签,如您第一次使用或不了解该商品的使用方法等,请通过商品详情查看商品标签的中文翻译或联系客服。因客户使用不当导致的损害将由客户自己承担。 + +4、您购买的跨境商品符合原产地有关品质、健康标识的相关标准,与我国产品标准或有所不同,由此可能造成的危害、损失或者其他风险,由您承担责任。 + +5、基于监管要求和获得更好的服务,您同意瑞库客保留您的身份信息及收货信息,并授权瑞库客根据需要将必要信息披露给中国海关及商品物流商。瑞库客将对用户的信息给予保密,除非得到您的授权或法律法规另有规定,瑞库客不会向外界披露。 + +6、您已知悉并确认所购买的跨境商品不适用“七天无理由退换货”,如有质量问题,请及时联系瑞库客客服。如您不同意该项内容,则应立即停止使用本服务。同时,也请您知悉境外商品的包装更注重环保和便捷,而不是注重奢华,大部分的境外一线品牌、奢侈品的包装均比较简单。 + +7、如您发现任何人未经授权使用您的登录名和密码,或发生违反您意志的交易行为的,请及时联系瑞库客客服处理,避免产生损失。 + +8、对发生下列情形之一所造成的不便或损害,瑞库客将免责: + +a )定期检查或施工,更新软硬件而造成的服务中断,或突发性的软硬件设备与电子通信设备故障; + +b )网络服务提供商线路或其他故障,黑客攻击、病毒入侵等,服务器遭受损害,无法正常运作; + +c )在紧急情况之下依照法律的规定而采取的措施; + +d )因您提供的身份信息不完整或不准确而导致的通关失败或其他损失的,将由您承担责任; + +e )您与其它任何第三方的纠纷。 + +9、您保证遵守《海关法》和国家关法律法规,保证所提供的身份信息和收货信息完整,无侵犯他人权益的行为,以上委托关系系如实填写,用户愿意接受海关、检验检疫机构及其他监管部门的监管,并承担相应法律责任。 + +10、您同时应遵守已签署的《瑞库客用户协议》的相关规定。''', + style: TextStyle( + color: Color(0xFF666666), + fontSize: rSP(10), + ), + ), + ), + ); + } +}