123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158 |
- import 'package:flutter/foundation.dart';
- import 'package:flutter/material.dart';
- import 'package:flutter/services.dart';
- import 'package:keyboard_actions/keyboard_actions.dart';
- import 'package:liftmanager/net/api_service.dart';
- import 'package:liftmanager/res/resources.dart';
- import 'package:liftmanager/routers/fluro_navigator.dart';
- import 'package:liftmanager/utils/theme_utils.dart';
- import 'package:liftmanager/utils/toast.dart';
- import 'package:liftmanager/utils/utils.dart';
- import 'package:liftmanager/widgets/app_bar.dart';
- import 'package:liftmanager/widgets/my_button.dart';
- import 'package:liftmanager/widgets/text_field.dart';
- /// design/1注册登录/index.html#artboard9
- class ResetPasswordPage extends StatefulWidget {
- @override
- _ResetPasswordPageState createState() => _ResetPasswordPageState();
- }
- class _ResetPasswordPageState extends State<ResetPasswordPage> {
- //定义一个controller
- TextEditingController _phoneController = TextEditingController();
- TextEditingController _vCodeController = TextEditingController();
- TextEditingController _passwordController = TextEditingController();
- final FocusNode _nodeText1 = FocusNode();
- final FocusNode _nodeText2 = FocusNode();
- final FocusNode _nodeText3 = FocusNode();
- bool _isClick = false;
- @override
- void initState() {
- super.initState();
- //监听输入改变
- _phoneController.addListener(_verify);
- _vCodeController.addListener(_verify);
- _passwordController.addListener(_verify);
- }
- Future<bool> _getVCode() async {
- await ApiService(context: context).getVCode(_phoneController.text.toString().trim(),
- onSuccess: (data) {
- print("成功");
- }, onError: (code, msg) {
- toasts(msg);
- });
- return Future.value(true);
- }
- void _verify(){
- String name = _phoneController.text;
- String vCode = _vCodeController.text;
- String password = _passwordController.text;
- bool isClick = true;
- if (name.isEmpty || name.length < 11) {
- isClick = false;
- }
- if (vCode.isEmpty || vCode.length < 6) {
- isClick = false;
- }
- if (password.isEmpty || password.length < 6) {
- isClick = false;
- }
- if (isClick != _isClick){
- setState(() {
- _isClick = isClick;
- });
- }
- }
- void _reset(){
- String phone = _phoneController.text;
- String vCode = _vCodeController.text;
- String password = _passwordController.text;
- showLoading(context, "正在执行...");
- ApiService(context: context).resetPassword(
- phone, Utils.generateMd5(password), vCode,
- onSuccess: (data) {
- dismissLoading(context);
- showAlert(context, "提示", "重置成功,请登录", "确定", (){
- NavigatorUtils.goBack(context);
- NavigatorUtils.goBack(context);
- });
- }, onError: (code, msg) {
- dismissLoading(context);
- toasts(msg);
- });
- }
- @override
- Widget build(BuildContext context) {
- return Scaffold(
- backgroundColor: ThemeUtils.getTabsBg(context),
- appBar: const MyAppBar(
- centerTitle: "忘记密码",
- ),
- body: defaultTargetPlatform == TargetPlatform.iOS ? FormKeyboardActions(
- child: _buildBody(),
- ) : SingleChildScrollView(
- child: _buildBody(),
- )
- );
- }
- _buildBody(){
- return Padding(
- padding: const EdgeInsets.only(left: 16.0, right: 16.0, top: 20.0),
- child: Column(
- crossAxisAlignment: CrossAxisAlignment.center,
- children: <Widget>[
- Gaps.vGap16,
- MyTextField(
- focusNode: _nodeText1,
- config: Utils.getKeyboardActionsConfig(context, [_nodeText1, _nodeText2, _nodeText3]),
- controller: _phoneController,
- maxLength: 11,
- keyboardType: TextInputType.phone,
- hintText: "请输入手机号",
- ),
- Gaps.vGap8,
- MyTextField(
- focusNode: _nodeText2,
- controller: _vCodeController,
- keyboardType: TextInputType.number,
- getVCode: () async {
- if (_phoneController.text.toString().trim().length == 11) {
- return await _getVCode();
- } else {
- toasts("请输入有效的手机号");
- return false;
- }
- },
- maxLength: 6,
- hintText: "请输入验证码",
- ),
- Gaps.vGap8,
- MyTextField(
- focusNode: _nodeText3,
- isInputPwd: true,
- controller: _passwordController,
- maxLength: 16,
- keyboardType: TextInputType.visiblePassword,
- hintText: "请输入密码",
- ),
- Gaps.vGap10,
- Gaps.vGap15,
- MyButton(
- onPressed: _isClick ? _reset : null,
- text: "确认",
- )
- ],
- ),
- );
- }
- }
|