更换项目
This commit is contained in:
202
YuMi/Modules/YMLogin/View/NewLogin/XPForgetPwdViewController.m
Normal file
202
YuMi/Modules/YMLogin/View/NewLogin/XPForgetPwdViewController.m
Normal file
@@ -0,0 +1,202 @@
|
||||
//
|
||||
// YMForgetPwdViewController.m
|
||||
// YUMI
|
||||
//
|
||||
// Created by XY on 2023/2/14.
|
||||
//
|
||||
|
||||
#import "XPForgetPwdViewController.h"
|
||||
#import <Masonry.h>
|
||||
#import "YUMIMacroUitls.h"
|
||||
#import <ReactiveObjC.h>
|
||||
|
||||
#import "XPLoginInputView.h"
|
||||
|
||||
#import "LoginForgetPasswordPresent.h"
|
||||
#import "LoginForgetPasswordProtocol.h"
|
||||
#import "XPLoginAraeViewController.h"
|
||||
|
||||
@interface XPForgetPwdViewController ()<XPLoginInputViewDelegate, LoginForgetPasswordProtocol, XPLoginAraeViewControllerDelegate>
|
||||
|
||||
/// 标题
|
||||
@property (nonatomic, strong) UILabel *titleLabel;
|
||||
/// 手机号输入框
|
||||
@property (nonatomic, strong) XPLoginInputView *phoneInputView;
|
||||
/// 验证码输入框
|
||||
@property (nonatomic, strong) XPLoginInputView *codeInputView;
|
||||
/// 密码输入框
|
||||
@property (nonatomic, strong) XPLoginInputView *pwdInputView;
|
||||
/// 确定按钮
|
||||
@property (nonatomic, strong) UIButton *sureBtn;
|
||||
@property (nonatomic,copy) NSString *phoneAreaCode;
|
||||
|
||||
@end
|
||||
|
||||
@implementation XPForgetPwdViewController
|
||||
|
||||
- (LoginForgetPasswordPresent *)createPresenter {
|
||||
return [[LoginForgetPasswordPresent alloc] init];
|
||||
}
|
||||
|
||||
- (void)viewDidLoad {
|
||||
self.phoneAreaCode = @"852";
|
||||
self.needEffect = YES;
|
||||
self.needBack = YES;
|
||||
[super viewDidLoad];
|
||||
[self createUI];
|
||||
[self racBind];
|
||||
}
|
||||
|
||||
- (void)createUI {
|
||||
[self.view addSubview:self.titleLabel];
|
||||
[self.view addSubview:self.phoneInputView];
|
||||
[self.view addSubview:self.codeInputView];
|
||||
[self.view addSubview:self.pwdInputView];
|
||||
[self.view addSubview:self.sureBtn];
|
||||
|
||||
[self.titleLabel mas_makeConstraints:^(MASConstraintMaker *make) {
|
||||
make.centerX.mas_equalTo(self.view);
|
||||
make.top.mas_equalTo(kStatusBarHeight);
|
||||
make.height.mas_equalTo(44);
|
||||
}];
|
||||
[self.phoneInputView mas_makeConstraints:^(MASConstraintMaker *make) {
|
||||
make.left.mas_equalTo(38);
|
||||
make.right.mas_equalTo(-38);
|
||||
make.top.mas_equalTo(139.0/812.0*KScreenHeight);
|
||||
make.height.mas_equalTo(66);
|
||||
}];
|
||||
[self.codeInputView mas_makeConstraints:^(MASConstraintMaker *make) {
|
||||
make.left.mas_equalTo(self.phoneInputView);
|
||||
make.right.mas_equalTo(self.phoneInputView);
|
||||
make.top.mas_equalTo(self.phoneInputView.mas_bottom).offset(16);
|
||||
make.height.mas_equalTo(self.phoneInputView);
|
||||
}];
|
||||
[self.pwdInputView mas_makeConstraints:^(MASConstraintMaker *make) {
|
||||
make.left.mas_equalTo(self.phoneInputView);
|
||||
make.right.mas_equalTo(self.phoneInputView);
|
||||
make.top.mas_equalTo(self.codeInputView.mas_bottom).offset(16);
|
||||
make.height.mas_equalTo(self.phoneInputView);
|
||||
}];
|
||||
[self.sureBtn mas_makeConstraints:^(MASConstraintMaker *make) {
|
||||
make.top.mas_equalTo(self.pwdInputView.mas_bottom).offset(51);
|
||||
make.centerX.mas_equalTo(self.view);
|
||||
make.width.height.mas_equalTo(96);
|
||||
}];
|
||||
|
||||
}
|
||||
|
||||
- (void)racBind {
|
||||
RAC(self.sureBtn, enabled) = [[RACSignal combineLatest:@[self.phoneInputView.inputTextField.rac_textSignal, self.pwdInputView.inputTextField.rac_textSignal, self.pwdInputView.inputTextField.rac_textSignal] reduce:^id _Nonnull(NSString *phone, NSString* smsCode, NSString *password){
|
||||
return @((phone.length == 11) && smsCode.length >= 5 && (password.length >= 6 && password.length <= 16));
|
||||
}] takeUntil:self.rac_willDeallocSignal];
|
||||
}
|
||||
|
||||
/// 确认
|
||||
- (void)sureBtnClicked {
|
||||
NSString *phone = self.phoneInputView.inputTextField.text;
|
||||
NSString *smsCode = self.codeInputView.inputTextField.text;
|
||||
NSString *password = self.pwdInputView.inputTextField.text;
|
||||
[self.presenter resetPassword:phone newPwd:password smsCode:smsCode];
|
||||
}
|
||||
|
||||
#pragma mark - XPLoginInputViewDelegate
|
||||
|
||||
- (void)smsCodeAction {
|
||||
NSString *phone = self.phoneInputView.inputTextField.text;
|
||||
if (phone.length != 11 ) {
|
||||
[self showErrorToast:YMLocalizedString(@"XPForgetPwdViewController0")];
|
||||
return;
|
||||
}
|
||||
[self.presenter phoneSmsCode:phone type:GetSmsType_Reset_Password phoneAreaCode:self.phoneAreaCode];
|
||||
|
||||
}
|
||||
|
||||
- (void)areaListAction {
|
||||
XPLoginAraeViewController *codeVC = [XPLoginAraeViewController new];
|
||||
codeVC.delegate = self;
|
||||
[self.navigationController pushViewController:codeVC animated:YES];
|
||||
}
|
||||
|
||||
- (void)chooseAreaCodeSuccess:(NSString *)code {
|
||||
if (code.length > 0) {
|
||||
self.phoneAreaCode = code;
|
||||
[self.phoneInputView.areaCodeBtn setTitle:[NSString stringWithFormat:@"+%@", code] forState:UIControlStateNormal];
|
||||
}
|
||||
}
|
||||
|
||||
#pragma mark - LoginForgetPasswordProtocol
|
||||
|
||||
///请求手机号的验证码成功
|
||||
- (void)phoneSmsCodeSuccess {
|
||||
[self showSuccessToast:YMLocalizedString(@"XPForgetPwdViewController1")];
|
||||
[self.codeInputView fireTimer];
|
||||
}
|
||||
|
||||
///重置密码成功
|
||||
- (void)resetPasswrodSuccess {
|
||||
[self showSuccessToast:YMLocalizedString(@"XPForgetPwdViewController2")];
|
||||
[self.navigationController popViewControllerAnimated:YES];
|
||||
|
||||
}
|
||||
|
||||
#pragma mark - 懒加载
|
||||
|
||||
- (UILabel *)titleLabel {
|
||||
if (!_titleLabel) {
|
||||
_titleLabel = [[UILabel alloc] init];
|
||||
_titleLabel.text = YMLocalizedString(@"XPForgetPwdViewController3");
|
||||
_titleLabel.font = [UIFont systemFontOfSize:18 weight:UIFontWeightMedium];
|
||||
_titleLabel.textColor = UIColor.whiteColor;
|
||||
}
|
||||
return _titleLabel;
|
||||
}
|
||||
|
||||
- (XPLoginInputView *)phoneInputView {
|
||||
if (!_phoneInputView) {
|
||||
_phoneInputView = [[XPLoginInputView alloc] init];
|
||||
_phoneInputView.areaStackView.hidden = NO;
|
||||
_phoneInputView.delegate = self;
|
||||
NSMutableAttributedString *placeholder = [[NSMutableAttributedString alloc] initWithString:YMLocalizedString(@"XPForgetPwdViewController4")];
|
||||
[placeholder addAttribute:NSForegroundColorAttributeName value:UIColor.whiteColor range:NSMakeRange(0, placeholder.length)];
|
||||
_phoneInputView.inputTextField.attributedPlaceholder = placeholder;
|
||||
_phoneInputView.inputTextField.keyboardType = UIKeyboardTypeNumberPad;
|
||||
}
|
||||
return _phoneInputView;
|
||||
}
|
||||
|
||||
- (XPLoginInputView *)codeInputView {
|
||||
if (!_codeInputView) {
|
||||
_codeInputView = [[XPLoginInputView alloc] init];
|
||||
_codeInputView.smsCodeBtn.hidden = NO;
|
||||
NSMutableAttributedString *placeholder = [[NSMutableAttributedString alloc] initWithString:YMLocalizedString(@"XPForgetPwdViewController5")];
|
||||
[placeholder addAttribute:NSForegroundColorAttributeName value:UIColor.whiteColor range:NSMakeRange(0, placeholder.length)];
|
||||
_codeInputView.inputTextField.attributedPlaceholder = placeholder;
|
||||
_codeInputView.inputTextField.keyboardType = UIKeyboardTypeNumberPad;
|
||||
_codeInputView.delegate = self;
|
||||
}
|
||||
return _codeInputView;
|
||||
}
|
||||
|
||||
- (XPLoginInputView *)pwdInputView {
|
||||
if (!_pwdInputView) {
|
||||
_pwdInputView = [[XPLoginInputView alloc] init];
|
||||
NSMutableAttributedString *placeholder = [[NSMutableAttributedString alloc] initWithString:@"请输入密码(6-16个字符)"];
|
||||
[placeholder addAttribute:NSForegroundColorAttributeName value:UIColor.whiteColor range:NSMakeRange(0, placeholder.length)];
|
||||
_pwdInputView.inputTextField.attributedPlaceholder = placeholder;
|
||||
_pwdInputView.inputTextField.keyboardType = UIKeyboardTypeAlphabet;
|
||||
_pwdInputView.inputTextField.secureTextEntry = YES;
|
||||
}
|
||||
return _pwdInputView;
|
||||
}
|
||||
|
||||
- (UIButton *)sureBtn {
|
||||
if (!_sureBtn) {
|
||||
_sureBtn = [UIButton buttonWithType:UIButtonTypeCustom];
|
||||
[_sureBtn setImage:[UIImage imageNamed:@"login_next"] forState:UIControlStateNormal];
|
||||
[_sureBtn setImage:[UIImage imageNamed:@"login_next_disable"] forState:UIControlStateSelected];
|
||||
[_sureBtn addTarget:self action:@selector(sureBtnClicked) forControlEvents:UIControlEventTouchUpInside];
|
||||
}
|
||||
return _sureBtn;
|
||||
}
|
||||
|
||||
@end
|
Reference in New Issue
Block a user