login update

parent 5f22bd0b
...@@ -21,7 +21,7 @@ class MyApp extends StatelessWidget { ...@@ -21,7 +21,7 @@ class MyApp extends StatelessWidget {
//home: ShopNearbyPlacesPage(), //home: ShopNearbyPlacesPage(),
// home: service_tab(), // home: service_tab(),
home: LoginPage(), home: SplashScreenPage(),
); );
} }
} }
...@@ -45,7 +45,10 @@ class _LoginPageState extends State<LoginPage> with TickerProviderStateMixin { ...@@ -45,7 +45,10 @@ class _LoginPageState extends State<LoginPage> with TickerProviderStateMixin {
} }
_setupView() { _setupView() {
return SingleChildScrollView( return Container(
child: Column( child: Column(
children: <Widget>[ children: <Widget>[
Container( Container(
...@@ -86,19 +89,28 @@ class _LoginPageState extends State<LoginPage> with TickerProviderStateMixin { ...@@ -86,19 +89,28 @@ class _LoginPageState extends State<LoginPage> with TickerProviderStateMixin {
], ],
), ),
SizedBox(height: SizeConfig.getWidth(30)), SizedBox(height: SizeConfig.getWidth(30)),
new Container( Expanded(
height: double.maxFinite, child: new Container(
// height: double.maxFinite,
child: new TabBarView( child: new TabBarView(
controller: _tabController, controller: _tabController,
children: <Widget>[ children: <Widget>[
_formLogin(), _formLogin(),
_phoneLogin() _phoneLogin()
// Container(
// color: Colors.red,
// ),
// Container(
// color: Colors.green,
// ),
], ],
), ),
), ),
),
// _phoneLogin(), // _phoneLogin(),
], ],
), ),
...@@ -107,7 +119,7 @@ class _LoginPageState extends State<LoginPage> with TickerProviderStateMixin { ...@@ -107,7 +119,7 @@ class _LoginPageState extends State<LoginPage> with TickerProviderStateMixin {
Widget _formLogin() { Widget _formLogin() {
print("index = " +"${_tabController.index}"); print("index = " +"${_tabController.index}");
return Container( return SingleChildScrollView(
child: Form( child: Form(
child: Column( child: Column(
children: <Widget>[ children: <Widget>[
...@@ -218,7 +230,7 @@ class _LoginPageState extends State<LoginPage> with TickerProviderStateMixin { ...@@ -218,7 +230,7 @@ class _LoginPageState extends State<LoginPage> with TickerProviderStateMixin {
Widget _phoneLogin() { Widget _phoneLogin() {
print("index = " +"${_tabController.index}"); print("index = " +"${_tabController.index}");
return Container( return SingleChildScrollView(
child: Form( child: Form(
child: Column( child: Column(
children: <Widget>[ children: <Widget>[
...@@ -246,7 +258,7 @@ class _LoginPageState extends State<LoginPage> with TickerProviderStateMixin { ...@@ -246,7 +258,7 @@ class _LoginPageState extends State<LoginPage> with TickerProviderStateMixin {
), ),
), ),
child: TextFormField( child: TextFormField(
// controller: loginBloc.emailCtrl, controller: presenter.phonenumberCtrl,
// validator: loginBloc.validateField, // validator: loginBloc.validateField,
decoration: InputDecoration( decoration: InputDecoration(
contentPadding: EdgeInsets.symmetric( contentPadding: EdgeInsets.symmetric(
...@@ -285,7 +297,7 @@ class _LoginPageState extends State<LoginPage> with TickerProviderStateMixin { ...@@ -285,7 +297,7 @@ class _LoginPageState extends State<LoginPage> with TickerProviderStateMixin {
BorderRadius.circular(SizeConfig.getPadding(50.0)), BorderRadius.circular(SizeConfig.getPadding(50.0)),
), ),
child: TextFormField( child: TextFormField(
// controller: loginBloc.passCtrl, controller: presenter.passCtrl,
// validator: loginBloc.validateField, // validator: loginBloc.validateField,
decoration: InputDecoration( decoration: InputDecoration(
contentPadding: EdgeInsets.symmetric( contentPadding: EdgeInsets.symmetric(
...@@ -339,8 +351,13 @@ class _LoginPageState extends State<LoginPage> with TickerProviderStateMixin { ...@@ -339,8 +351,13 @@ class _LoginPageState extends State<LoginPage> with TickerProviderStateMixin {
padding: EdgeInsets.all(0), padding: EdgeInsets.all(0),
borderRadius: BorderRadius.all(Radius.circular(50)), borderRadius: BorderRadius.all(Radius.circular(50)),
onPressed: () { onPressed: () {
if (_tabController.index==0){
presenter.letCheckData();}
else{
presenter.onSignIn(); presenter.letCheckData_phone();
}
// Navigator.push( // Navigator.push(
// context, // context,
// MaterialPageRoute(builder: (context) => HomePage()), // MaterialPageRoute(builder: (context) => HomePage()),
...@@ -403,7 +420,7 @@ class _LoginPageState extends State<LoginPage> with TickerProviderStateMixin { ...@@ -403,7 +420,7 @@ class _LoginPageState extends State<LoginPage> with TickerProviderStateMixin {
Widget _policyText() { Widget _policyText() {
return Column( return Column(
children: <Widget>[ children: <Widget>[
Stack( Column(
children: <Widget>[ children: <Widget>[
Container( Container(
padding: EdgeInsets.only( padding: EdgeInsets.only(
...@@ -412,16 +429,31 @@ class _LoginPageState extends State<LoginPage> with TickerProviderStateMixin { ...@@ -412,16 +429,31 @@ class _LoginPageState extends State<LoginPage> with TickerProviderStateMixin {
top: SizeConfig.getPadding(30)), top: SizeConfig.getPadding(30)),
child: Center( child: Center(
child: Text( child: Text(
'คุณยอมรับ ข้อกำหนดการใช้งาน และ นโยบายความเป็นส่วนตัว ของอโกด้าเมื่อดำเนินการต่อ', 'คุณยอมรับ ข้อกำหนดการใช้งาน และ นโยบาย',
style: TextStyle(fontSize: SizeConfig.getFontSize(12)),
textAlign: TextAlign.center,
),
),
),
Row(
children: <Widget>[
Container(
padding: EdgeInsets.only(
left: SizeConfig.getPadding(30),
right: SizeConfig.getPadding(10),
),
child: Center(
child: Text(
'ความเป็นส่วนตัวของอโกด้าเมื่อดำเนินการต่อ',
style: TextStyle(fontSize: SizeConfig.getFontSize(12)), style: TextStyle(fontSize: SizeConfig.getFontSize(12)),
textAlign: TextAlign.center, textAlign: TextAlign.center,
), ),
), ),
), ),
Container( Container(
margin: EdgeInsets.only(
right: SizeConfig.getPadding(34),
top: SizeConfig.getPadding(47)),
alignment: Alignment.centerRight, alignment: Alignment.centerRight,
child: GestureDetector( child: GestureDetector(
onTap: () { onTap: () {
...@@ -443,6 +475,10 @@ class _LoginPageState extends State<LoginPage> with TickerProviderStateMixin { ...@@ -443,6 +475,10 @@ class _LoginPageState extends State<LoginPage> with TickerProviderStateMixin {
), ),
), ),
) )
]),
], ],
), ),
Container( Container(
......
import 'dart:async';
import 'dart:developer'; import 'dart:developer';
import 'package:feelverapp/model/Login/login_model.dart'; import 'package:feelverapp/model/Login/login_model.dart';
...@@ -7,6 +8,7 @@ import 'package:feelverapp/service/Loading.dart'; ...@@ -7,6 +8,7 @@ import 'package:feelverapp/service/Loading.dart';
import 'package:feelverapp/service/api.dart'; import 'package:feelverapp/service/api.dart';
import 'package:feelverapp/service/base_presenter.dart'; import 'package:feelverapp/service/base_presenter.dart';
import 'package:feelverapp/ui/home/home.dart';
import 'package:feelverapp/ui/login/login.dart'; import 'package:feelverapp/ui/login/login.dart';
import 'package:flutter/cupertino.dart'; import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
...@@ -16,10 +18,11 @@ import 'package:rflutter_alert/rflutter_alert.dart'; ...@@ -16,10 +18,11 @@ import 'package:rflutter_alert/rflutter_alert.dart';
class LoginPresenter extends BasePresenter<LoginPage> { class LoginPresenter extends BasePresenter<LoginPage> {
Api _api; Api _api;
Timer _timer;
final formKey = GlobalKey<FormState>(); final formKey = GlobalKey<FormState>();
TextEditingController emailCtrl = TextEditingController(); TextEditingController emailCtrl = TextEditingController();
TextEditingController passCtrl = TextEditingController(); TextEditingController passCtrl = TextEditingController();
TextEditingController phonenumberCtrl = TextEditingController();
...@@ -27,8 +30,32 @@ class LoginPresenter extends BasePresenter<LoginPage> { ...@@ -27,8 +30,32 @@ class LoginPresenter extends BasePresenter<LoginPage> {
LoginPresenter(State<LoginPage> state) : super(state); LoginPresenter(State<LoginPage> state) : super(state);
onSignIn() async {
if (emailCtrl.text.isEmpty) {
/////email Login/////////
letCheckData() async {
// if(!verifyPhoneState){
// throw(allTranslations.text(key: 'please_verify_phone'));
// }
try {
if (emailCtrl.text.isEmpty ) throw ('กรุณากรอก\nอีเมล์');
else if (passCtrl.text.isEmpty ) throw('กรุณากรอก\nรหัสผ่าน');
Pattern pattern =
r"^[a-zA-Z0-9.a-zA-Z0-9.!#$%&'*+-/=?^_`{|}~]+@[a-zA-Z0-9]+\.[a-zA-Z]+";
RegExp regex = new RegExp(pattern);
if (!regex.hasMatch(emailCtrl.text))
throw ('รูปแบบอีเมล์\nไม่ถูกต้อง');
else {
await letSignIn();
}
} catch (e) {
Alert( Alert(
style: AlertStyle( style: AlertStyle(
animationType: AnimationType.fromTop, animationType: AnimationType.fromTop,
...@@ -36,7 +63,7 @@ class LoginPresenter extends BasePresenter<LoginPage> { ...@@ -36,7 +63,7 @@ class LoginPresenter extends BasePresenter<LoginPage> {
), ),
context: state.context, context: state.context,
title: "กรุณากรอกอีเมล์", title: '$e',
content: Icon(Icons.warning,color: Colors.orange,size: 80,), content: Icon(Icons.warning,color: Colors.orange,size: 80,),
buttons: [ buttons: [
DialogButton( DialogButton(
...@@ -49,7 +76,48 @@ class LoginPresenter extends BasePresenter<LoginPage> { ...@@ -49,7 +76,48 @@ class LoginPresenter extends BasePresenter<LoginPage> {
) )
]).show(); ]).show();
} }
if (passCtrl.text.isEmpty) {
}
letSignIn() async {
LoadingView(state.context).show();
_api = Api<LoginModel>();
var res = await _api.login({
"access_type":"portal",
"access_status":"customer",
"email": emailCtrl.text,
'password':passCtrl.text
});
LoadingView(state.context).hide();
if (res.fail == null) {
Alert(
style: AlertStyle(
animationType: AnimationType.fromTop,
isCloseButton: false,
),
context: state.context,
title: "เข้าสู่ระบบสำเร็จ",
content: Icon(Icons.check_circle,color: Color.fromRGBO(106, 179, 170, 1),size: 80,),
buttons: [
DialogButton(
color: Color.fromRGBO(106, 179, 170, 1),
onPressed: () =>
Navigator.pushReplacement(state.context, CupertinoPageRoute(builder: (_) => HomePage())),
child: Text(
"ตกลง",
style: TextStyle(color: Colors.white, fontSize: 20),
),
)
]).show();
LoginModel model = res.success;
// print("Username ="+"${model.user}");
print("Token ="+"${model.token}");
} else {
Alert( Alert(
style: AlertStyle( style: AlertStyle(
animationType: AnimationType.fromTop, animationType: AnimationType.fromTop,
...@@ -57,32 +125,50 @@ class LoginPresenter extends BasePresenter<LoginPage> { ...@@ -57,32 +125,50 @@ class LoginPresenter extends BasePresenter<LoginPage> {
), ),
context: state.context, context: state.context,
title: "กรุณากรอกรหัสผ่าน", title: "อีเมล์หรือรหัสผ่าน\nไม่ถูกต้อง",
content: Icon(Icons.warning,color: Colors.orange,size: 80,), content: Icon(Icons.warning,color: Colors.orange,size: 80,),
buttons: [ buttons: [
DialogButton( DialogButton(
color: Color.fromRGBO(106, 179, 170, 1), color: Color.fromRGBO(106, 179, 170, 1),
onPressed: () => Navigator.pop(state.context), onPressed: () => Navigator.pop(state.context),
child: Text( child: Text(
"ตกลง", "ลองอีกครั้ง",
style: TextStyle(color: Colors.white, fontSize: 20), style: TextStyle(color: Colors.white, fontSize: 20),
), ),
) )
]).show(); ]).show();
} }
else letSignIn();
} }
letSignIn() async {
///////phone log in////////////////
letSignIn_phone() async {
LoadingView(state.context).show(); LoadingView(state.context).show();
_api = Api<LoginModel>(); _api = Api<LoginModel>();
var res = await _api.login({ var res = await _api.login({
"access_type":"portal", "access_type":"portal",
"access_status":"customer", "access_status":"customer",
"email": emailCtrl.text, "email": phonenumberCtrl.text,
'password':passCtrl.text 'password':passCtrl.text
}); });
LoadingView(state.context).hide(); LoadingView(state.context).hide();
...@@ -101,7 +187,8 @@ class LoginPresenter extends BasePresenter<LoginPage> { ...@@ -101,7 +187,8 @@ class LoginPresenter extends BasePresenter<LoginPage> {
buttons: [ buttons: [
DialogButton( DialogButton(
color: Color.fromRGBO(106, 179, 170, 1), color: Color.fromRGBO(106, 179, 170, 1),
onPressed: () => Navigator.pop(state.context), onPressed: () =>
Navigator.pushReplacement(state.context, CupertinoPageRoute(builder: (_) => HomePage())),
child: Text( child: Text(
"ตกลง", "ตกลง",
style: TextStyle(color: Colors.white, fontSize: 20), style: TextStyle(color: Colors.white, fontSize: 20),
...@@ -120,7 +207,7 @@ class LoginPresenter extends BasePresenter<LoginPage> { ...@@ -120,7 +207,7 @@ class LoginPresenter extends BasePresenter<LoginPage> {
), ),
context: state.context, context: state.context,
title: "อีเมล์หรือรหัสผ่านผิด", title: "เบอร์โทรศัพท์หรือรหัสผ่าน\nไม่ถูกต้อง",
content: Icon(Icons.warning,color: Colors.orange,size: 80,), content: Icon(Icons.warning,color: Colors.orange,size: 80,),
buttons: [ buttons: [
DialogButton( DialogButton(
...@@ -134,6 +221,51 @@ class LoginPresenter extends BasePresenter<LoginPage> { ...@@ -134,6 +221,51 @@ class LoginPresenter extends BasePresenter<LoginPage> {
]).show(); ]).show();
} }
} }
letCheckData_phone() async {
// if(!verifyPhoneState){
// throw(allTranslations.text(key: 'please_verify_phone'));
// }
try {
if (phonenumberCtrl.text.isEmpty ) throw ('กรุณากรอก\nเบอร์โทรศัพท์มือถือ');
else if (passCtrl.text.isEmpty ) throw('กรุณากรอก\nรหัสผ่าน');
Pattern pattern =
r'(^(?:[+0]9)?[0-9]{10,12}$)';
RegExp regex = new RegExp(pattern);
if (!regex.hasMatch(phonenumberCtrl.text))
throw ('รูปแบบเบอร์โทรศัพท์\nไม่ถูกต้อง');
else {
await letSignIn_phone();
}
} catch (e) {
Alert(
style: AlertStyle(
animationType: AnimationType.fromTop,
isCloseButton: false,
),
context: state.context,
title: '$e',
content: Icon(Icons.warning,color: Colors.orange,size: 80,),
buttons: [
DialogButton(
color: Color.fromRGBO(106, 179, 170, 1),
onPressed: () => Navigator.pop(state.context),
child: Text(
"ตกลง",
style: TextStyle(color: Colors.white, fontSize: 20),
),
)
]).show();
}
}
// facebookLogin() async { // facebookLogin() async {
......
import 'dart:async'; import 'dart:async';
import 'package:feelverapp/ui/home/home.dart'; import 'package:feelverapp/ui/home/home.dart';
import 'package:feelverapp/ui/login/login.dart';
import 'package:flutter/cupertino.dart'; import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
...@@ -14,7 +15,7 @@ class _SplashScreenPageState extends State<SplashScreenPage> { ...@@ -14,7 +15,7 @@ class _SplashScreenPageState extends State<SplashScreenPage> {
@override @override
void initState() { void initState() {
_timer = new Timer(Duration(seconds: 2), () => Navigator.pushReplacement(context, CupertinoPageRoute(builder: (_) => HomePage()))); _timer = new Timer(Duration(seconds: 2), () => Navigator.pushReplacement(context, CupertinoPageRoute(builder: (_) => LoginPage())));
super.initState(); super.initState();
} }
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment