import 'dart:math'; import 'dart:ui'; import 'package:akuCommunity/pages/setting_page/agreement_page/agreement_page.dart'; import 'package:akuCommunity/pages/setting_page/agreement_page/privacy_page.dart'; import 'package:akuCommunity/pages/sign/user_authentication_page.dart'; import 'package:ani_route/ani_route.dart'; import 'package:extended_text/extended_text.dart'; import 'package:flustars/flustars.dart' show TextUtil; import 'package:flutter/material.dart'; import 'package:flutter/cupertino.dart'; import 'package:akuCommunity/utils/screenutil.dart'; import 'package:akuCommunity/base/base_style.dart'; import 'package:akuCommunity/base/assets_image.dart'; import 'package:oktoast/oktoast.dart'; import 'package:flutter_screenutil/flutter_screenutil.dart'; class SignInPage extends StatefulWidget { SignInPage({Key key}) : super(key: key); @override _SignInPageState createState() => _SignInPageState(); } class _SignInPageState extends State { TextEditingController _phone = new TextEditingController(); TextEditingController _code = new TextEditingController(); String _verifyStr = '获取验证码'; AppBar _appBar() { return AppBar( elevation: 0, backgroundColor: Colors.white, // leading: IconButton( // icon: Icon(AntDesign.left, size: Screenutil.size(40)), // onPressed: () { // Navigator.pop(context); // }, // ), ); } Container _containerTextField(String imagePath, TextEditingController controller, String hintText, bool isCode) { return Container( padding: EdgeInsets.symmetric(horizontal: Screenutil.length(29)), margin: EdgeInsets.symmetric(horizontal: Screenutil.length(82)), decoration: BoxDecoration( color: Color(0xfffff4d7), borderRadius: BorderRadius.all(Radius.circular(36)), ), child: Row( mainAxisAlignment: MainAxisAlignment.start, children: [ Image.asset( imagePath, height: Screenutil.length(50), width: Screenutil.length(50), ), SizedBox(width: Screenutil.length(24)), Expanded( child: TextFormField( obscureText: false, obscuringCharacter:'*', cursorColor: Color(0xffffc40c), style: TextStyle( fontSize: BaseStyle.fontSize28, fontWeight: FontWeight.w600, ), controller: controller, onChanged: (String value) {}, maxLines: 1, decoration: InputDecoration( isDense: true, contentPadding: EdgeInsets.symmetric( vertical: Screenutil.length(25), ), hintText: hintText, border: InputBorder.none, //去掉输入框的下滑线 fillColor: Color(0xfffff4d7), filled: true, hintStyle: TextStyle( color: BaseStyle.color999999, fontSize: BaseStyle.fontSize28, fontWeight: FontWeight.normal, ), ), ), ), isCode ? Row( mainAxisAlignment: MainAxisAlignment.start, children: [ SizedBox( width: 2, height: Screenutil.length(29), child: DecoratedBox( decoration: BoxDecoration(color: Color(0xffd8d8d8)), ), ), SizedBox(width: Screenutil.length(16)), InkWell( child: Text( _verifyStr, style: TextStyle( color: BaseStyle.color999999, fontSize: BaseStyle.fontSize28, fontWeight: FontWeight.w500, ), ), onTap: null, ), ], ) : SizedBox(), ], ), ); } Container _containerImage() { return Container( alignment: Alignment.center, child: Image.asset( AssetsImage.LOGO, height: Screenutil.length(184), width: Screenutil.length(266), ), ); } InkWell _inkWellLogin() { return InkWell( onTap: () { if (TextUtil.isEmpty(_phone.text)) showToast('账号不能为空'); else if (TextUtil.isEmpty(_code.text)) showToast('密码不能为空'); else { showCupertinoDialog( context: context, builder: (context) { return CupertinoAlertDialog( title: Text('点击登录即表示您已阅读并同意'), content: Text( '''点击登录即表示您已阅读并同意《闲鱼用户服务协议》《支付服务协议》(特别是免除或限制责任、管辖等粗体下划线标注的条款)。如您不同意上述协议的任何条款,您应立即停止登录及使用本软件及服务。'''), actions: [ CupertinoDialogAction( child: Text('同意'), onPressed: () { Future.delayed( Duration(milliseconds: 1000 + Random().nextInt(500)), () { Navigator.pop(context); (_phone.text == '17855823545') && (_code.text == '000000') ? ARoute.push(context, UserAuthenticationPage()) : showToast('账号或密码错误!'); }, ); }, ), CupertinoDialogAction( child: Text('拒绝'), onPressed: () { Navigator.pop(context); }, ), ], ); }, ); } }, child: Container( alignment: Alignment.center, height: Screenutil.length(89), width: Screenutil.length(586), padding: EdgeInsets.only( top: Screenutil.length(25), bottom: Screenutil.length(24)), margin: EdgeInsets.symmetric(horizontal: Screenutil.length(82)), decoration: BoxDecoration( color: Color(0xffffc40c), borderRadius: BorderRadius.all(Radius.circular(36)), ), child: Text( '登录', style: TextStyle( fontWeight: FontWeight.w600, fontSize: BaseStyle.fontSize28, color: BaseStyle.color333333, ), ), ), ); } @override Widget build(BuildContext context) { double _statusHeight = MediaQuery.of(context).padding.top; return Scaffold( backgroundColor: Colors.white, appBar: _appBar(), body: SingleChildScrollView( child: Container( child: GestureDetector( behavior: HitTestBehavior.opaque, onTap: () { FocusScope.of(context).requestFocus(FocusNode()); }, child: Container( color: Colors.white, child: ListView( shrinkWrap: true, children: [ SizedBox( height: Screenutil.length(153), ), _containerImage(), SizedBox(height: Screenutil.length(16)), Container( alignment: Alignment.center, child: Text( '欢迎登录小蜜蜂', style: TextStyle( fontWeight: FontWeight.w600, fontSize: BaseStyle.fontSize38, color: BaseStyle.color333333), ), ), SizedBox(height: Screenutil.length(89)), _containerTextField( AssetsImage.PHONELOGO, _phone, '请输入手机号码', false), SizedBox(height: Screenutil.length(27)), _containerTextField( AssetsImage.CODELOGO, _code, '请输入验证码', true), SizedBox(height: Screenutil.length(59)), _inkWellLogin(), Row( mainAxisAlignment: MainAxisAlignment.center, children: [ FlatButton( onPressed: () { ARoute.push(context, AgreementPage()); }, child: Text('用户协议'), ), SizedBox(width: Screenutil.length(15)), FlatButton( onPressed: () { ARoute.push(context, PrivacyPage()); }, child: Text('隐私政策')) ], ), ], )), ), ), ), ); } }