register_page.dart 4.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131
  1. import 'package:flutter/material.dart';
  2. import 'package:flutter_tracker/dio/login_dao.dart';
  3. import 'package:flutter_tracker/model/message_model.dart';
  4. import 'package:flutter_tracker/routes/routes.dart';
  5. import 'package:flutter_tracker/utils/app_util.dart';
  6. class RegisterPage extends StatefulWidget {
  7. const RegisterPage({Key key}) : super(key: key);
  8. @override
  9. _RegisterPageState createState() => _RegisterPageState();
  10. }
  11. class _RegisterPageState extends State<RegisterPage> {
  12. //用户名密码控制器
  13. final TextEditingController _controllerUsn = TextEditingController();
  14. final TextEditingController _controllerPwd = TextEditingController();
  15. final TextEditingController _controllerRepwd = TextEditingController();
  16. final GlobalKey _formKey = GlobalKey<FormState>();
  17. String _userName = "";
  18. String _pwd = "";
  19. @override
  20. Widget build(BuildContext context) {
  21. return Scaffold(
  22. appBar: AppBar(
  23. title: Text("注册账号"),
  24. ),
  25. body: Padding(
  26. padding: const EdgeInsets.symmetric(vertical: 16.0, horizontal: 24.0),
  27. child: Form(
  28. autovalidateMode: AutovalidateMode.always, key: _formKey, //开启自动校验
  29. child: ListView(
  30. children: [
  31. TextFormField(
  32. autofocus: true,
  33. controller: _controllerUsn,
  34. decoration: const InputDecoration(
  35. labelText: "用户名",
  36. hintText: "请输入用户名",
  37. icon: Icon(Icons.person)),
  38. // 校验用户名
  39. validator: (v) {
  40. return v.trim().isNotEmpty ? null : "用户名不能为空";
  41. },
  42. onChanged: (inputStr) {
  43. _userName = inputStr;
  44. },
  45. ),
  46. TextFormField(
  47. controller: _controllerPwd,
  48. decoration: const InputDecoration(
  49. labelText: "密码",
  50. hintText: "请输入密码",
  51. icon: Icon(Icons.lock)),
  52. obscureText: true,
  53. //校验密码
  54. validator: (v) {
  55. return v.trim().length > 5 ? null : "密码不能少于6位";
  56. }),
  57. TextFormField(
  58. controller: _controllerRepwd,
  59. decoration: const InputDecoration(
  60. labelText: "确认密码",
  61. hintText: "确认登录密码",
  62. icon: Icon(Icons.lock)),
  63. obscureText: true,
  64. //校验密码
  65. validator: (v) {
  66. return v.trim().length > 5 ? null : "密码不能少于6位";
  67. },
  68. onChanged: (inputStr) {
  69. _pwd = inputStr;
  70. },
  71. ),
  72. // 登录按钮
  73. Padding(
  74. padding: const EdgeInsets.only(top: 28.0),
  75. child: Row(
  76. children: <Widget>[
  77. Expanded(
  78. child: RaisedButton(
  79. padding: EdgeInsets.all(15.0),
  80. child: Text("注册"),
  81. color: Theme.of(context).primaryColor,
  82. textColor: Colors.white,
  83. onPressed: () {
  84. register();
  85. },
  86. ),
  87. ),
  88. ],
  89. ),
  90. )
  91. ],
  92. ),
  93. ),
  94. ),
  95. );
  96. }
  97. //注册
  98. void register() async {
  99. MessageModel messageModel = await LoginDao.register(_userName, _pwd);
  100. if (messageModel.success) {
  101. Navigator.of(context).pushNamed(Routes.loginPage);
  102. }
  103. AppUtil.buildToast(messageModel.msg);
  104. }
  105. // // //保存用户信息
  106. // void saveUserInfo(UserModel userModel) async {
  107. // SharedPreferences prefs = await SharedPreferences.getInstance();
  108. // prefs.setString("token", userModel.token);
  109. // AppConfig.isUser = false;
  110. // AppConfig.token = userModel.token;
  111. // loadUserInfo(userModel.token);
  112. // }
  113. //
  114. // void loadUserInfo(String token) async {
  115. // UserEntity entity = await UserDao.fetch(token);
  116. // if (entity?.userInfoModel != null) {
  117. // DialogUtil.buildToast("登录成功~");
  118. // Navigator.pop(context);
  119. // // eventBus.fire(UserLoggedInEvent("sucuss"));
  120. // } else {
  121. // DialogUtil.buildToast(entity.msgModel.msg);
  122. // }
  123. // }
  124. }