From c66c1191ce4183a475832b04c71a77729ea3056e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=AB=A0=E6=96=87=E8=BD=A9?= <12812285557@qq.com> Date: Wed, 1 Sep 2021 18:18:19 +0800 Subject: [PATCH] =?UTF-8?q?=E5=85=85=E5=80=BC=E4=B8=9A=E5=8A=A1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- assets/cancel_icon.png | Bin 0 -> 801 bytes assets/mail_list_icon.png | Bin 0 -> 1249 bytes assets/tabbar_aku_normal.png | Bin 1588 -> 1747 bytes .../buy_tickets/choose_tickets_type_page.dart | 17 +- lib/pages/recharge/recharge_page.dart | 213 ++++++++++++++++++ .../cut_down_time_widget.dart | 0 .../seckill_activity_page.dart | 0 lib/pages/user/setting_page.dart | 12 +- 8 files changed, 224 insertions(+), 18 deletions(-) create mode 100644 assets/cancel_icon.png create mode 100644 assets/mail_list_icon.png create mode 100644 lib/pages/recharge/recharge_page.dart rename lib/{ => pages}/seckill_activity/cut_down_time_widget.dart (100%) rename lib/{ => pages}/seckill_activity/seckill_activity_page.dart (100%) diff --git a/assets/cancel_icon.png b/assets/cancel_icon.png new file mode 100644 index 0000000000000000000000000000000000000000..fa14e400197730621dc7de1ff1809b817c64d2cf GIT binary patch literal 801 zcmeAS@N?(olHy`uVBq!ia0vp^N+8U^1|+TAxeoy;#^NA%Cx&(BWL^R}E~ycoX}-P; zT0k}j17mw80}DtA5K93u0|WB{Mh0de%?J`(zyz07TEL88gA_7VEervY-JULvArYKs zXW05N8w#{;7Hn$sP|&iP;B=C4!NLd6SwdnOx|j>w=P-CU9%c;^Vw4qS;*=6ds+^y? zzUg}3UKK@~%nxaQk9|(*-<#YO#yll;r$$xyHr42l@xK{Rrt8?RIe(**N`fo%o73BZnN@$Wzk2U|!MjIXR7ue1|Hd56 zXLmmQ-TlM1Gx25?2iL@oSVR8Qga2-6{M7df)K`6Wtb8TwCZ)cbM^ozKeU2J%=6`7qjlf& zKf5y$+=}{hzx|ueBY(|Iq@^4v9&N4vRGmGV-h`6I)i;zV)i;Z%Nl(D#?;FIq8#v6;(#GcQTz*PCrxOZg22Cm)*2k-te>k}-J!KVM8u zkiqpnrfGjg<}b5JyHdaIWJSuVXqy!apZw3}$;sLLOwZ!A-^u^s3Sx%5XL>%Uq{h@$ zZJKo7n9Xp<;}G$6UL1{A4~Fe~QhDq_-si_R3{Jjc5B;?1?X&8GMT=D0nlkr=pA$5^ zQ)=O>zV<_XJ!g4R##_tH%a7mrC1zfnv}$jdU4c!HtATrxoX``kx@ozq{;&AScI(!O UHI;K?V?fE%)78&qol`;+04GL3w*UYD literal 0 HcmV?d00001 diff --git a/assets/mail_list_icon.png b/assets/mail_list_icon.png new file mode 100644 index 0000000000000000000000000000000000000000..3ab880c5713dceabcfa129c15f4364782da87f4a GIT binary patch literal 1249 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 FV1fs<*{T2l diff --git a/lib/pages/buy_tickets/choose_tickets_type_page.dart b/lib/pages/buy_tickets/choose_tickets_type_page.dart index 319ebaa..01867e7 100644 --- a/lib/pages/buy_tickets/choose_tickets_type_page.dart +++ b/lib/pages/buy_tickets/choose_tickets_type_page.dart @@ -37,20 +37,13 @@ class ChooseTicketsTypePage extends StatefulWidget { class _ChooseTicketsTypePageState extends State { final items = [ BottomNavigationBarItem( - icon: Icon( - Icons.pages, - size: rSize(14), - color: Color(0xFF666666), - ), - title: Text('订单'), + icon: Image.asset(R.ASSETS_TICKET_ORDER_TAB_ICON_PNG,width: 18.rw,height: 19.rw,), + + title: Text('订单',style: TextStyle(fontSize: 10.rsp),), ), BottomNavigationBarItem( - icon: Icon( - Icons.pages, - size: rSize(14), - color: Color(0xFF666666), - ), - title: Text("常用旅客")), + icon: Image.asset(R.ASSETS_TICKET_PASSAGER_TAB_ICON_PNG,width: 21.rw,height: 16.rw,), + title: Text("常用旅客",style: TextStyle(fontSize: 10.rsp),)), ]; //按钮选中类型 int _chooseType = 1; //1为飞机票 2为汽车票 3为火车票 diff --git a/lib/pages/recharge/recharge_page.dart b/lib/pages/recharge/recharge_page.dart new file mode 100644 index 0000000..dcd0b3b --- /dev/null +++ b/lib/pages/recharge/recharge_page.dart @@ -0,0 +1,213 @@ +import 'package:flutter/cupertino.dart'; +import 'package:flutter/material.dart'; +import 'package:flutter/rendering.dart'; +import 'package:flutter/services.dart'; +import 'package:recook/widgets/custom_app_bar.dart'; +import 'package:get/get.dart'; +import 'package:recook/constants/styles.dart'; +import 'package:recook/constants/header.dart'; +import 'package:recook/widgets/recook_back_button.dart'; +import 'package:velocity_x/velocity_x.dart'; + +class RechargePage extends StatefulWidget { + RechargePage({ + Key key, + }) : super(key: key); + + @override + _RechargePageState createState() => _RechargePageState(); +} + +class _RechargePageState extends State + with TickerProviderStateMixin { + + final items = [ + BottomNavigationBarItem( + icon: Image.asset(R.ASSETS_TICKET_ORDER_TAB_ICON_PNG,width: 18.rw,height: 19.rw,), + label: '订单', + ), + ]; + String _phone = ''; + //手机号的控制器 + TextEditingController _phoneController = TextEditingController(); + + @override + void initState() { + super.initState(); + } + + @override + void dispose() { + super.dispose(); + } + + @override + Widget build(BuildContext context) { + return Scaffold( + backgroundColor: AppColor.frenchColor, + resizeToAvoidBottomInset: false, + appBar: CustomAppBar( + appBackground: Colors.white, + leading: RecookBackButton( + white: false, + ), + elevation: 0, + title: Text( + "话费充值", + style: TextStyle( + color: Color(0xFF333333), + fontSize: 18.rsp, + ), + ), + ), + bottomNavigationBar: Container( + width: double.infinity, + height: 48.rw, + color: Colors.white, + child: Column( + children: [ + 16.hb, + Image.asset(R.ASSETS_TICKET_ORDER_TAB_ICON_PNG,width: 18.rw,height: 19.rw,), + Text('充值记录',style: TextStyle(color: Color(0xFF666666),fontSize: 10.rsp),) + ], + ) + ), + body: Container( + + child: _bodyWidget(), + ), + ); + } + + void onTap(int index) { + if (index == 0) { + //Get.to(); //充值记录页面 + } + } + + _bodyWidget() { + return Container( + width: 375.rw, + child: Stack( + children: [ + Positioned( + top:0, + left: 0, + child: Container( + + width: 375.rw, + height: 150.rw, + color: Color(0xFF04C580), + child: Row( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + 34.wb, + TextField( + controller:_phoneController, + decoration: InputDecoration( + + contentPadding: EdgeInsets.only(left: 2.rw, bottom: 4.rw,top: 30.rw), + hintText: '请输入11位手机号码', + counterText: '', + border:UnderlineInputBorder( + borderSide: BorderSide( + color: Colors.white, + width: 260.rw + ), + ), + suffixIconConstraints:BoxConstraints( + minHeight: 17.rw, + minWidth: 17.rw, + ), + suffixIcon: + Padding( + padding: EdgeInsets.all(5.rw), + child:GestureDetector( + onTap: (){ + _phoneController.clear(); + setState(() { + }); + }, + child:_phone!=''?Container( + + width: 17.rw, + height: 17.rw, + child: ImageIcon( + AssetImage(R.ASSETS_CANCEL_ICON_PNG), + size: 17.rw, + color: Colors.white, + ), + ):SizedBox(), + ), + ), + + + focusedBorder: UnderlineInputBorder( + borderSide: BorderSide( + color: Colors.white, + ), + ), + hintStyle: + AppTextStyle.generate(22.rsp, color: Color(0xFFFFFFFF)), + ), + inputFormatters: [ + FilteringTextInputFormatter.digitsOnly, + LengthLimitingTextInputFormatter(11),//最大长度 + ], + + keyboardType: TextInputType.number, + style: AppTextStyle.generate(22.rsp,color: Colors.white), + maxLength: 11, + maxLines: 1, + onChanged: (text) { + + + if (text == null) return; + _phone = text; + _phoneController.text = _getPhone(_phone); + _phoneController.selection = TextSelection.fromPosition( + TextPosition( + offset: _phoneController.text.length, affinity: TextAffinity.upstream)); + setState(() { + + }); + //print(_phone); + }, + ).expand(), + 100.wb, + Container( + padding: EdgeInsets.only(top: 34.rw), + child: Image.asset(R.ASSETS_TICKET_ORDER_TAB_ICON_PNG,width: 19.rw,height: 22.rw,color: Colors.white,), + + ), + + 60.wb, + ], + + ), + ), + ), + + ], + ), + ); + } + _getPhone(String text){ + if(text.isEmpty){ + return text; + }else{ + if(text.length<=3){ + + }else if(text.length>3&&text.length<8){ + + text = text.insert(" ",3); + + }else if(text.length>=8){ + text = text.insert(" ",3); + text = text.insert(" ",8); + } + return text; + } + + } +} diff --git a/lib/seckill_activity/cut_down_time_widget.dart b/lib/pages/seckill_activity/cut_down_time_widget.dart similarity index 100% rename from lib/seckill_activity/cut_down_time_widget.dart rename to lib/pages/seckill_activity/cut_down_time_widget.dart diff --git a/lib/seckill_activity/seckill_activity_page.dart b/lib/pages/seckill_activity/seckill_activity_page.dart similarity index 100% rename from lib/seckill_activity/seckill_activity_page.dart rename to lib/pages/seckill_activity/seckill_activity_page.dart diff --git a/lib/pages/user/setting_page.dart b/lib/pages/user/setting_page.dart index f9e04d3..056f34f 100644 --- a/lib/pages/user/setting_page.dart +++ b/lib/pages/user/setting_page.dart @@ -6,8 +6,8 @@ import 'package:recook/constants/api.dart'; import 'package:recook/constants/header.dart'; import 'package:recook/manager/user_manager.dart'; import 'package:recook/pages/goods/goods_report/goods_report_page.dart'; +import 'package:recook/pages/recharge/recharge_page.dart'; import 'package:recook/pages/user/user_info_page.dart'; -import 'package:recook/seckill_activity/seckill_activity_page.dart'; import 'package:recook/widgets/alert.dart'; import 'package:recook/widgets/custom_app_bar.dart'; import 'package:recook/widgets/sc_tile.dart'; @@ -130,11 +130,11 @@ class _SettingItemListViewState extends ResumableState { //CRoute.push(context, PrivacyPageV2()); }), - //购票临时入口 - // SCTile.normalTile("购票(临时)", listener: () { - // Get.to(() => ChooseTicketsTypePage()); - // //CRoute.push(context, PrivacyPageV2()); - // }), + //充值临时入口 + SCTile.normalTile("购票(临时)", listener: () { + Get.to(() => RechargePage()); + //CRoute.push(context, PrivacyPageV2()); + }), getEmptyBox(), SCTile.normalTile("退出登录", listener: () {