Commit ecfd79f51e57adf4adef7aa416215878c365d1a0

Authored by biao
1 parent 64501762

恢复 发送验证码按钮可点击控制

lib/pages/login/forgetpwd/bloc/forget_pwd_home_bloc.dart
@@ -14,6 +14,8 @@ part 'forget_pwd_home_state.dart'; @@ -14,6 +14,8 @@ part 'forget_pwd_home_state.dart';
14 14
15 class ForgetPwdHomeBloc extends Bloc<ForgetPwdHomeEvent, ForgetPwdHomeState> { 15 class ForgetPwdHomeBloc extends Bloc<ForgetPwdHomeEvent, ForgetPwdHomeState> {
16 bool _canSetPwd = false; 16 bool _canSetPwd = false;
  17 + bool _canSendSms = false;
  18 + bool get canSendSms => _canSendSms;
17 19
18 bool get canSetPwd => _canSetPwd; 20 bool get canSetPwd => _canSetPwd;
19 bool get enableInputPhone { 21 bool get enableInputPhone {
@@ -31,6 +33,24 @@ class ForgetPwdHomeBloc extends Bloc&lt;ForgetPwdHomeEvent, ForgetPwdHomeState&gt; { @@ -31,6 +33,24 @@ class ForgetPwdHomeBloc extends Bloc&lt;ForgetPwdHomeEvent, ForgetPwdHomeState&gt; {
31 on<CheckCodeChangeEvent>(_changeCodeNumber); 33 on<CheckCodeChangeEvent>(_changeCodeNumber);
32 on<SetPassWordEvent>(_setPassWord); 34 on<SetPassWordEvent>(_setPassWord);
33 on<SendSmsCodeEvent>(_sendSmsCode); 35 on<SendSmsCodeEvent>(_sendSmsCode);
  36 + on<PhoneNumChangeEvent>(_changePhoneNumber);
  37 + }
  38 +
  39 + void _changePhoneNumber(
  40 + PhoneNumChangeEvent event, Emitter<ForgetPwdHomeState> emitter) async {
  41 + if (phoneNumController.text.isNotEmpty) {
  42 + if (!_canSendSms) {
  43 + _canSendSms = true;
  44 + emitter(SendSmsCodeTypeChangeState());
  45 + emitter(SetPwdTypeChangeState());
  46 + }
  47 + } else {
  48 + if (_canSendSms) {
  49 + _canSendSms = false;
  50 + emitter(SendSmsCodeTypeChangeState());
  51 + emitter(SetPwdTypeChangeState());
  52 + }
  53 + }
34 } 54 }
35 55
36 void _changeCodeNumber( 56 void _changeCodeNumber(
lib/pages/login/forgetpwd/bloc/forget_pwd_home_event.dart
@@ -8,3 +8,5 @@ class CheckCodeChangeEvent extends ForgetPwdHomeEvent {} @@ -8,3 +8,5 @@ class CheckCodeChangeEvent extends ForgetPwdHomeEvent {}
8 class SetPassWordEvent extends ForgetPwdHomeEvent {} 8 class SetPassWordEvent extends ForgetPwdHomeEvent {}
9 9
10 class SendSmsCodeEvent extends ForgetPwdHomeEvent {} 10 class SendSmsCodeEvent extends ForgetPwdHomeEvent {}
  11 +
  12 +class PhoneNumChangeEvent extends ForgetPwdHomeEvent {}
lib/pages/login/forgetpwd/forget_password_home_page.dart
@@ -31,6 +31,10 @@ class _ForgetPasswordHomePageView extends StatelessWidget { @@ -31,6 +31,10 @@ class _ForgetPasswordHomePageView extends StatelessWidget {
31 var bloc = context.read<ForgetPwdHomeBloc>(); 31 var bloc = context.read<ForgetPwdHomeBloc>();
32 var phoneNum = bloc.phoneNumController.text; 32 var phoneNum = bloc.phoneNumController.text;
33 var smsCode = bloc.checkNumController.text; 33 var smsCode = bloc.checkNumController.text;
  34 + if (phoneNum.isEmpty) {
  35 + '请输入手机号'.toast();
  36 + return;
  37 + }
34 if (smsCode.isEmpty) { 38 if (smsCode.isEmpty) {
35 '请输入验证码'.toast(); 39 '请输入验证码'.toast();
36 return; 40 return;
@@ -106,6 +110,9 @@ class _ForgetPasswordHomePageView extends StatelessWidget { @@ -106,6 +110,9 @@ class _ForgetPasswordHomePageView extends StatelessWidget {
106 textInputType: TextInputType.phone, 110 textInputType: TextInputType.phone,
107 bgImageName: 'Input_layer_up', 111 bgImageName: 'Input_layer_up',
108 enabel: bloc.enableInputPhone, 112 enabel: bloc.enableInputPhone,
  113 + onChangeValue: (String value) {
  114 + bloc.add(PhoneNumChangeEvent());
  115 + },
109 controller: bloc.phoneNumController, 116 controller: bloc.phoneNumController,
110 )) 117 ))
111 ], 118 ],
@@ -134,7 +141,9 @@ class _ForgetPasswordHomePageView extends StatelessWidget { @@ -134,7 +141,9 @@ class _ForgetPasswordHomePageView extends StatelessWidget {
134 16.5.horizontalSpace, 141 16.5.horizontalSpace,
135 TimerWidget( 142 TimerWidget(
136 pageType: 1, 143 pageType: 1,
137 - canSendSms: true, 144 + canSendSms: bloc.enableInputPhone
  145 + ? bloc.canSendSms
  146 + : true,
138 sendSmsEvent: () => 147 sendSmsEvent: () =>
139 bloc.add(SendSmsCodeEvent()), 148 bloc.add(SendSmsCodeEvent()),
140 ) 149 )