From 2f523efbb43aa4bec8973893708a26a815808b39 Mon Sep 17 00:00:00 2001 From: PH2 <1293456824@qq.com> Date: Fri, 27 Nov 2020 13:48:13 +0800 Subject: [PATCH] =?UTF-8?q?1=E3=80=81=E8=BF=94=E5=9B=9E=E9=A6=96=E9=A1=B5?= =?UTF-8?q?=E7=9A=84=E9=97=AE=E9=A2=98=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../account/login_account_page.dart | 3 +- .../login_page/invite/login_invite_page.dart | 117 +++++------------- .../mob_util/secverify/quick_login_util.dart | 4 +- lib/util/router_util.dart | 6 + 4 files changed, 42 insertions(+), 88 deletions(-) diff --git a/lib/pages/login_page/account/login_account_page.dart b/lib/pages/login_page/account/login_account_page.dart index 22910d9..70d2461 100644 --- a/lib/pages/login_page/account/login_account_page.dart +++ b/lib/pages/login_page/account/login_account_page.dart @@ -69,7 +69,8 @@ class _LoginAccountPageContianerState extends State i /// 登陆成功页面 void _openLoginSuccessPage() { RouterUtil.hideKeyboard(context); - Navigator.pushAndRemoveUntil(context, MaterialPageRoute(builder: (BuildContext context) => PageFactory.create('homePage', null)), (Route route) => false,); + RouterUtil.goBackHomePage(context); + // Navigator.pushAndRemoveUntil(context, MaterialPageRoute(builder: (BuildContext context) => PageFactory.create('homePage', null)), (Route route) => false,); } /// 返回上一页 diff --git a/lib/pages/login_page/invite/login_invite_page.dart b/lib/pages/login_page/invite/login_invite_page.dart index 412a5df..adbf0f1 100644 --- a/lib/pages/login_page/invite/login_invite_page.dart +++ b/lib/pages/login_page/invite/login_invite_page.dart @@ -21,8 +21,7 @@ class LoginInvitePage extends StatelessWidget { resizeToAvoidBottomInset: false, backgroundColor: HexColor.fromHex('#FFFFFF'), body: BlocProvider( - create: (_) => LoginInviteBloc(repostitory: LoginInviteRepository()) - ..add(LoginInviteInitEvent()), + create: (_) => LoginInviteBloc(repostitory: LoginInviteRepository())..add(LoginInviteInitEvent()), child: LoginInvitePageContainer(), ), ); @@ -33,8 +32,7 @@ class LoginInvitePage extends StatelessWidget { /// 邀请 class LoginInvitePageContainer extends StatefulWidget { @override - _LoginInvitePageContainerState createState() => - _LoginInvitePageContainerState(); + _LoginInvitePageContainerState createState() => _LoginInvitePageContainerState(); } class _LoginInvitePageContainerState extends State { @@ -55,13 +53,8 @@ class _LoginInvitePageContainerState extends State { /// 注册成功跳转 void _successJump() { RouterUtil.hideKeyboard(context); - Navigator.pushAndRemoveUntil( - context, - MaterialPageRoute( - builder: (BuildContext context) => - PageFactory.create('homePage', null)), - (Route route) => false, - ); + RouterUtil.goBackHomePage(context); + // Navigator.pushAndRemoveUntil(context, MaterialPageRoute(builder: (BuildContext context) => PageFactory.create('homePage', null)), (Route route) => false,); } /// 输入框输入变化 @@ -80,8 +73,7 @@ class _LoginInvitePageContainerState extends State { if (!EmptyUtil.isEmpty(inviteNum) && inviteNum.length < 3) { return; } - BlocProvider.of(context) - .add(LoginInviteQueryEvent(num: inviteNum)); + BlocProvider.of(context).add(LoginInviteQueryEvent(num: inviteNum)); } /// 填写邀请啊吗 @@ -92,13 +84,10 @@ class _LoginInvitePageContainerState extends State { String inviteNum = inviteUser?.userId ?? ''; /// 手机号 - UserInfoModel model = - await Provider.of(context, listen: false) - ?.getUserInfoModel(); + UserInfoModel model = await Provider.of(context, listen: false)?.getUserInfoModel(); String mobile = model?.mobile ?? ''; if (!EmptyUtil.isEmpty(inviteNum) && !EmptyUtil.isEmpty(mobile)) { - BlocProvider.of(context) - .add(LoginInviteSubmitEvent(mobile: mobile, num: inviteNum)); + BlocProvider.of(context).add(LoginInviteSubmitEvent(mobile: mobile, num: inviteNum)); } } @@ -158,8 +147,7 @@ class _LoginInvitePageContainerState extends State { /// 邀请码成功 跳转 if (current is LoginInviteSubmitSuccess) { // 缓存数据 - Provider.of(context, listen: false) - .setUserInfo(current.model); + Provider.of(context, listen: false).setUserInfo(current.model); _successJump(); return false; } @@ -184,31 +172,20 @@ class _LoginInvitePageContainerState extends State { Widget _getMainWidget(LoginModel model, LoginInviteUser inviteUser) { return Column( children: [ - /// appbar _getAppBar(model), /// 标题 - Padding( - padding: const EdgeInsets.only(left: 27.5, right: 27.5, top: 40), - child: _getTitleWidget(model)), + Padding(padding: const EdgeInsets.only(left: 27.5, right: 27.5, top: 40), child: _getTitleWidget(model)), /// 输入框 - Padding( - padding: const EdgeInsets.only(left: 27.5, right: 27.5, top: 30), - child: _getInviteInputWidget(model)), + Padding(padding: const EdgeInsets.only(left: 27.5, right: 27.5, top: 30), child: _getInviteInputWidget(model)), /// 邀请人信息 - Visibility( - visible: inviteUser != null && _showInviteInfo, - child: Padding( - padding: const EdgeInsets.only(left: 27.5, right: 27.5, top: 8), - child: _getInviteInfoWidget(inviteUser))), + Visibility(visible: inviteUser != null && _showInviteInfo, child: Padding(padding: const EdgeInsets.only(left: 27.5, right: 27.5, top: 8), child: _getInviteInfoWidget(inviteUser))), /// 按钮 - Padding( - padding: const EdgeInsets.only(left: 27.5, right: 27.5, top: 30), - child: _getSubmiBtnWidget(model, inviteUser)), + Padding(padding: const EdgeInsets.only(left: 27.5, right: 27.5, top: 30), child: _getSubmiBtnWidget(model, inviteUser)), ], ); } @@ -221,9 +198,7 @@ class _LoginInvitePageContainerState extends State { elevation: 0, title: Text( model?.invite?.appBarTitle ?? '登录', - style: TextStyle( - color: - HexColor.fromHex(model?.invite?.appBarTitleColor ?? '#333333')), + style: TextStyle(color: HexColor.fromHex(model?.invite?.appBarTitleColor ?? '#333333')), ), centerTitle: true, leading: IconButton( @@ -243,9 +218,7 @@ class _LoginInvitePageContainerState extends State { alignment: Alignment.centerLeft, child: Text( model?.invite?.title ?? '输入邀请码', - style: TextStyle( - color: HexColor.fromHex(model?.invite?.titleColor ?? '#333333'), - fontSize: 25), + style: TextStyle(color: HexColor.fromHex(model?.invite?.titleColor ?? '#333333'), fontSize: 25), )); } @@ -266,13 +239,10 @@ class _LoginInvitePageContainerState extends State { Widget _getInviteInfoWidget(LoginInviteUser model) { return Container( // height: 77.5, - decoration: BoxDecoration( - borderRadius: BorderRadius.circular(8), - border: Border.all(color: HexColor.fromHex('#E8E8E8'), width: 0.5)), + decoration: BoxDecoration(borderRadius: BorderRadius.circular(8), border: Border.all(color: HexColor.fromHex('#E8E8E8'), width: 0.5)), padding: const EdgeInsets.all(15), child: Row( children: [ - /// 头像 CircleAvatar( radius: 23.5, @@ -283,30 +253,20 @@ class _LoginInvitePageContainerState extends State { mainAxisAlignment: MainAxisAlignment.spaceAround, crossAxisAlignment: CrossAxisAlignment.start, children: [ - /// 名字 Text( '${model?.nickname}', - style: TextStyle( - color: HexColor.fromHex(model?.nickNameColor), - fontSize: 13), + style: TextStyle(color: HexColor.fromHex(model?.nickNameColor), fontSize: 13), ), /// 邀请 RichText( - text: TextSpan( - text: '邀请您进入', - style: TextStyle( - fontSize: 11, - color: HexColor.fromHex(model?.nickNameColor)), - children: [ - TextSpan( - text: '${model?.appName}', - style: TextStyle( - fontSize: 11, - color: HexColor.fromHex(model?.appNameColor)), - ), - ]), + text: TextSpan(text: '邀请您进入', style: TextStyle(fontSize: 11, color: HexColor.fromHex(model?.nickNameColor)), children: [ + TextSpan( + text: '${model?.appName}', + style: TextStyle(fontSize: 11, color: HexColor.fromHex(model?.appNameColor)), + ), + ]), ) ], ) @@ -327,36 +287,22 @@ class _LoginInvitePageContainerState extends State { model?.invite?.btnSubmitText ?? '进入智莺生活', style: TextStyle(fontSize: 15), ), - textColor: - HexColor.fromHex(model?.invite?.btnSubmitTextColor ?? '#FFFFFF'), + textColor: HexColor.fromHex(model?.invite?.btnSubmitTextColor ?? '#FFFFFF'), color: HexColor.fromHex(model?.invite?.btnSubmitBgColor ?? '#FF3939'), - disabledColor: - HexColor.fromHex(model?.invite?.btnBanBgColor ?? '#F5F5F5'), - disabledTextColor: - HexColor.fromHex(model?.invite?.btnBanTextColor ?? '#999999'), + disabledColor: HexColor.fromHex(model?.invite?.btnBanBgColor ?? '#F5F5F5'), + disabledTextColor: HexColor.fromHex(model?.invite?.btnBanTextColor ?? '#999999'), elevation: 5, - shape: RoundedRectangleBorder( - borderRadius: BorderRadius.circular(52 / 2)), - onPressed: _showInviteInfo && inviteUser != null - ? () => _submitOnClick(inviteUser) - : null, + shape: RoundedRectangleBorder(borderRadius: BorderRadius.circular(52 / 2)), + onPressed: _showInviteInfo && inviteUser != null ? () => _submitOnClick(inviteUser) : null, ), ), ); } /// 自定义输入框 - Widget _getCustomInputWidget({String hint, - String hintColor, - String bgColor, - String textColor, - String iconUrl, - TextEditingController controller, - ValueChanged onChanged, - FocusNode focusNode}) { - var border = OutlineInputBorder( - borderRadius: BorderRadius.circular(8), - borderSide: BorderSide(color: HexColor.fromHex(bgColor), width: 0)); + Widget _getCustomInputWidget( + {String hint, String hintColor, String bgColor, String textColor, String iconUrl, TextEditingController controller, ValueChanged onChanged, FocusNode focusNode}) { + var border = OutlineInputBorder(borderRadius: BorderRadius.circular(8), borderSide: BorderSide(color: HexColor.fromHex(bgColor), width: 0)); return Container( height: 42, @@ -385,8 +331,7 @@ class _LoginInvitePageContainerState extends State { decoration: InputDecoration( contentPadding: EdgeInsets.only(top: 30, left: 7.5), hintText: hint, - hintStyle: - TextStyle(fontSize: 13, color: HexColor.fromHex(hintColor)), + hintStyle: TextStyle(fontSize: 13, color: HexColor.fromHex(hintColor)), hintMaxLines: 1, filled: true, fillColor: Colors.transparent, diff --git a/lib/util/mob_util/secverify/quick_login_util.dart b/lib/util/mob_util/secverify/quick_login_util.dart index 75a2d28..bd5db20 100644 --- a/lib/util/mob_util/secverify/quick_login_util.dart +++ b/lib/util/mob_util/secverify/quick_login_util.dart @@ -14,6 +14,7 @@ import 'package:zhiying_comm/util/log/let_log.dart'; import 'package:zhiying_comm/util/net_util.dart'; import 'package:provider/provider.dart'; import 'package:fluttertoast/fluttertoast.dart'; +import 'package:zhiying_comm/util/router_util.dart'; import '../../page_factory.dart'; class QuickLoginUtil { @@ -84,7 +85,8 @@ class QuickLoginUtil { /// 打开首页的方法 void _openHomePage(BuildContext context) { - Navigator.pushAndRemoveUntil(context, MaterialPageRoute(builder: (BuildContext context) => PageFactory.create('homePage', null)), (Route route) => false); + RouterUtil.goBackHomePage(context); + // Navigator.pushAndRemoveUntil(context, MaterialPageRoute(builder: (BuildContext context) => PageFactory.create('homePage', null)), (Route route) => false); } // 需要自己实现这部分 diff --git a/lib/util/router_util.dart b/lib/util/router_util.dart index 0cc0df2..6b569a0 100644 --- a/lib/util/router_util.dart +++ b/lib/util/router_util.dart @@ -52,6 +52,7 @@ class RouterUtil { })); } + // 打开网页 static Future openWebview(String url, BuildContext context) { if (url == null || url == '') { Logger.error('跳转链接不能为空'); @@ -63,7 +64,12 @@ class RouterUtil { RouterUtil.route(model, model.toJson(), context); } + // 回到首页 + static Future goBackHomePage(BuildContext context){ + Navigator.popUntil(context, ModalRoute.withName('/homePage')); + } + // 隐藏键盘 static void hideKeyboard(BuildContext context){ try { FocusScopeNode currentFocus = FocusScope.of(context);