Browse Source

继续完成登录

liuyuqi-dellpc 2 years ago
parent
commit
c24064ede3
3 changed files with 89 additions and 73 deletions
  1. 7 2
      lib/dio/login_dao.dart
  2. 58 42
      lib/pages/login_page.dart
  3. 24 29
      lib/pages/register_page.dart

+ 7 - 2
lib/dio/login_dao.dart

@@ -7,8 +7,13 @@ class LoginDao {
 
   static Future<UserModel> login(String username, String password) async {
     params.addAll({"username": username, "password": password});
-    Response response = await Dio().post(Api.loginUrl, queryParameters: params);
-    return UserModel.fromJson(response.data);
+    try {
+      Response response = await Dio().post(
+          Api.loginUrl, queryParameters: params);
+      return UserModel.fromJson(response.data);
+    }catch(e){
+      return null;
+    }
   }
 
   static Future<bool> logout(String token) async {

+ 58 - 42
lib/pages/login_page.dart

@@ -29,50 +29,66 @@ class _LoginPageState extends State<LoginPage> {
   Widget build(BuildContext context) {
     return Scaffold(
         appBar: AppBar(title: Text('登录')),
-        body: Form(
-          key: _formKey,
-          child: Column(
-            children: <Widget>[
-              TextFormField(
-                controller: _usernameController,
-                decoration: InputDecoration(
-                  labelText: '用户名',
-                  hintText: '请输入用户名',
+        body: Padding(
+          padding: EdgeInsets.symmetric(vertical: 16, horizontal: 24),
+          child: Form(
+            key: _formKey,
+            child: Column(
+              children: <Widget>[
+                TextFormField(
+                  autofocus: true,
+                  controller: _usernameController,
+                  decoration: InputDecoration(
+                      labelText: '用户名',
+                      hintText: '请输入用户名',
+                      icon: Icon(Icons.person)),
+                  validator: (value) {
+                    if (value.isEmpty) {
+                      return '用户名不能为空';
+                    }
+                    return null;
+                  },
+                  onSaved: (value) {
+                    _username = value;
+                  },
                 ),
-                validator: (value) {
-                  if (value.isEmpty) {
-                    return '用户名不能为空';
-                  }
-                  return null;
-                },
-                onSaved: (value) {
-                  _username = value;
-                },
-              ),
-              TextFormField(
-                controller: _passwordController,
-                decoration: InputDecoration(
-                  labelText: '密码',
-                  hintText: '请输入密码',
+                TextFormField(
+                  controller: _passwordController,
+                  decoration: InputDecoration(
+                      labelText: '密码',
+                      hintText: '请输入密码',
+                      icon: Icon(Icons.lock)),
+                  obscureText: true,
+                  validator: (value) {
+                    if (value.isEmpty) {
+                      return '密码不能为空';
+                    }
+                    return null;
+                  },
+                  onSaved: (value) {
+                    _password = value;
+                  },
                 ),
-                obscureText: true,
-                validator: (value) {
-                  if (value.isEmpty) {
-                    return '密码不能为空';
-                  }
-                  return null;
-                },
-                onSaved: (value) {
-                  _password = value;
-                },
-              ),
-              RaisedButton(
-                child: Text('登录'),
-                onPressed: () {
-                  login();
-                },
-              ),
-            ],
+                Padding(
+                  padding: EdgeInsets.only(top: 28),
+                  child: Row(
+                    children: [
+                      Expanded(
+                        child: RaisedButton(
+                          padding: EdgeInsets.all(15),
+                          color: Theme.of(context).primaryColor,
+                          textColor: Colors.white,
+                          child: Text('登录'),
+                          onPressed: () {
+                            login();
+                          },
+                        ),
+                      ),
+                    ],
+                  ),
+                ),
+              ],
+            ),
           ),
         ));
   }

+ 24 - 29
lib/pages/register_page.dart

@@ -1,8 +1,4 @@
 import 'package:flutter/material.dart';
-import 'package:flutter_tracker/dio/login_dao.dart';
-import 'package:flutter_tracker/model/user_model.dart';
-import 'package:flutter_tracker/routes/routes.dart';
-import 'package:shared_preferences/shared_preferences.dart';
 
 class RegisterPage extends StatefulWidget {
   const RegisterPage({Key key}) : super(key: key);
@@ -23,7 +19,6 @@ class _RegisterPageState extends State<RegisterPage> {
 
   @override
   Widget build(BuildContext context) {
-
     return Scaffold(
       appBar: AppBar(
         title: Text("注册账号"),
@@ -39,11 +34,11 @@ class _RegisterPageState extends State<RegisterPage> {
                 controller: _controllerUsn,
                 decoration: const InputDecoration(
                     labelText: "用户名",
-                    hintText: "用户名或邮箱",
+                    hintText: "请输入用户名",
                     icon: Icon(Icons.person)),
                 // 校验用户名
                 validator: (v) {
-                  return v.trim().length > 0 ? null : "用户名不能为空";
+                  return v.trim().isNotEmpty ? null : "用户名不能为空";
                 },
                 onChanged: (inputStr) {
                   _userName = inputStr;
@@ -53,7 +48,7 @@ class _RegisterPageState extends State<RegisterPage> {
                   controller: _controllerPwd,
                   decoration: const InputDecoration(
                       labelText: "密码",
-                      hintText: "您的登录密码",
+                      hintText: "请输入密码",
                       icon: Icon(Icons.lock)),
                   obscureText: true,
                   //校验密码
@@ -87,7 +82,7 @@ class _RegisterPageState extends State<RegisterPage> {
                         color: Theme.of(context).primaryColor,
                         textColor: Colors.white,
                         onPressed: () {
-                          register(_userName, _pwd);
+                          register();
                         },
                       ),
                     ),
@@ -102,7 +97,7 @@ class _RegisterPageState extends State<RegisterPage> {
   }
 
   //注册
-  void register(String userName, String password) async {
+  void register() async {
     // UserModel loginEntity = await LoginDao.register(userName, password);
     //注册成功挑战到登录界面
     // if (loginEntity.userModel != null) {
@@ -113,23 +108,23 @@ class _RegisterPageState extends State<RegisterPage> {
     // }
   }
 
-  // // //保存用户信息
-  // void saveUserInfo(UserModel userModel) async {
-  //   SharedPreferences prefs = await SharedPreferences.getInstance();
-  //   prefs.setString("token", userModel.token);
-  //   AppConfig.isUser = false;
-  //   AppConfig.token = userModel.token;
-  //   loadUserInfo(userModel.token);
-  // }
-  //
-  // void loadUserInfo(String token) async {
-  //   UserEntity entity = await UserDao.fetch(token);
-  //   if (entity?.userInfoModel != null) {
-  //     DialogUtil.buildToast("登录成功~");
-  //     Navigator.pop(context);
-  //     // eventBus.fire(UserLoggedInEvent("sucuss"));
-  //   } else {
-  //     DialogUtil.buildToast(entity.msgModel.msg);
-  //   }
-  // }
+// // //保存用户信息
+// void saveUserInfo(UserModel userModel) async {
+//   SharedPreferences prefs = await SharedPreferences.getInstance();
+//   prefs.setString("token", userModel.token);
+//   AppConfig.isUser = false;
+//   AppConfig.token = userModel.token;
+//   loadUserInfo(userModel.token);
+// }
+//
+// void loadUserInfo(String token) async {
+//   UserEntity entity = await UserDao.fetch(token);
+//   if (entity?.userInfoModel != null) {
+//     DialogUtil.buildToast("登录成功~");
+//     Navigator.pop(context);
+//     // eventBus.fire(UserLoggedInEvent("sucuss"));
+//   } else {
+//     DialogUtil.buildToast(entity.msgModel.msg);
+//   }
+// }
 }