| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436 |
- //
- // GCoverController.m
- // aiim
- //
- // Created by gan on 2025/2/28.
- //
- #import "GCoverController.h"
- #import "UserNetApi.h"
- #import "UDManager.h"
- @interface GCoverController ()
- @property (nonatomic, strong) UILabel * titleLbl;
- @property (nonatomic, strong) UIButton * leftBtn;
- @property (nonatomic, strong) UIStackView * titleStackView;
- @property (nonatomic, strong) UILabel * nameTitleLbl;
- @property (nonatomic, strong) UILabel * resePwdTitleLbl;
- @property (nonatomic, strong) UILabel * confirmPwdTitleLbl;
- @property (nonatomic, strong) UILabel * codeTitleLbl;
- @property (nonatomic, strong) UITextField * nameTextfield;
- @property (nonatomic, strong) UITextField * resetPwdTextfield;
- @property (nonatomic, strong) UITextField * confirmPwdTextfield;
- @property (nonatomic, strong) UITextField * codeTextfield;
- @property (nonatomic, strong) UIButton * getCodeBtn;
- @property (nonatomic, strong) UIButton * saveBtn;
- @property (nonatomic, strong) NSMutableArray * titles;
- @property (nonatomic, strong) NSMutableDictionary * userInfo;
- @property (nonatomic, strong) NSTimer *timer;
- @property (nonatomic, assign) NSInteger remainingSeconds;
- @end
- @implementation GCoverController
- - (void)viewDidLoad {
- [super viewDidLoad];
- // Do any additional setup after loading the view.
- NSLog(@"GCoverController viewDidLoad");
- [self configUI];
- }
- #pragma mark UI
- - (void)configUI{
- // self.view.backgroundColor = UIColor.blackColor;
-
- UIImageView * bgImageView = [[UIImageView alloc] initWithImage:kImageMake(@"loginBG")];
- [self.view addSubview:bgImageView];
- [bgImageView mas_makeConstraints:^(MASConstraintMaker *make) {
- make.left.right.top.bottom.mas_equalTo(0);
- }];
-
- if (self.isLogin) {
- [self.titles addObjectsFromArray:@[self.resePwdTitleLbl,self.confirmPwdTitleLbl,self.codeTitleLbl]];
- }else{
- [self.titles addObjectsFromArray:@[self.nameTitleLbl,self.resePwdTitleLbl,self.confirmPwdTitleLbl,self.codeTitleLbl]];
- }
-
- [self.view addSubview:self.titleLbl];
- [self.titleLbl mas_makeConstraints:^(MASConstraintMaker *make) {
- make.height.mas_equalTo(16);
- make.centerX.mas_equalTo(self.view.mas_centerX);
- make.top.mas_equalTo(STATUS_Height+16);
- }];
-
- [self.view addSubview:self.leftBtn];
- [self.leftBtn mas_makeConstraints:^(MASConstraintMaker *make) {
- make.size.mas_equalTo(CGSizeMake(20, 20));
- make.left.mas_equalTo(20);
- make.centerY.mas_equalTo(self.titleLbl.mas_centerY);
- }];
-
- [self.view addSubview:self.titleStackView];
- [self.titleStackView mas_makeConstraints:^(MASConstraintMaker *make) {
- make.height.mas_equalTo(16*self.titles.count + 64*(self.titles.count-1) + 32);
- make.left.mas_equalTo(20);
- make.top.mas_equalTo(self.titleLbl.mas_bottom).offset(32);
- }];
-
- if (!self.isLogin) {
- [self.view addSubview:self.nameTextfield];
- [self.nameTextfield mas_makeConstraints:^(MASConstraintMaker *make) {
- make.height.mas_equalTo(50);
- make.left.mas_equalTo(104);
- make.right.mas_equalTo(-20);
- make.centerY.mas_equalTo(self.nameTitleLbl.mas_centerY);
- }];
- }
-
- [self.view addSubview:self.resetPwdTextfield];
- [self.resetPwdTextfield mas_makeConstraints:^(MASConstraintMaker *make) {
- make.height.mas_equalTo(50);
- make.left.mas_equalTo(104);
- make.right.mas_equalTo(-20);
- make.centerY.mas_equalTo(self.resePwdTitleLbl.mas_centerY);
- }];
-
- [self.view addSubview:self.confirmPwdTextfield];
- [self.confirmPwdTextfield mas_makeConstraints:^(MASConstraintMaker *make) {
- make.height.mas_equalTo(50);
- make.left.mas_equalTo(104);
- make.right.mas_equalTo(-20);
- make.centerY.mas_equalTo(self.confirmPwdTitleLbl.mas_centerY);
- }];
-
- [self.view addSubview:self.codeTextfield];
- [self.codeTextfield mas_makeConstraints:^(MASConstraintMaker *make) {
- make.height.mas_equalTo(50);
- make.left.mas_equalTo(104);
- make.right.mas_equalTo(-20);
- make.centerY.mas_equalTo(self.codeTitleLbl.mas_centerY);
- }];
-
- [self.view addSubview:self.getCodeBtn];
- [self.getCodeBtn mas_makeConstraints:^(MASConstraintMaker *make) {
- make.size.mas_equalTo(CGSizeMake(125, 46));
- make.right.mas_equalTo(-20);
- make.top.mas_equalTo(self.codeTextfield.mas_bottom).offset(30);
- }];
-
- [self.view addSubview:self.saveBtn];
- [self.saveBtn mas_makeConstraints:^(MASConstraintMaker *make) {
- make.height.mas_equalTo(46);
- make.left.mas_equalTo(20);
- make.right.mas_equalTo(-20);
- make.top.mas_equalTo(self.getCodeBtn.mas_bottom).offset(30);
- }];
- }
- #pragma mark event
- - (void)leftButtonClicked{
- [self dismissViewControllerAnimated:YES completion:nil];
- }
- - (void)getCodeButtonClicked{
-
- if (self.nameTextfield.text.length == 0 && !self.isLogin) {
- [MBProgressHUD showWithText:NSLocalizedString(@"Sign-usernme-note", @"")];
- return;
- }
- //发送验证码
- [UserNetApi getEmailcodereset:self.isLogin ? self.userInfo[@"username"] : self.nameTextfield.text succ:^(int code, NSDictionary * _Nullable res) {
- NSLog(@"result:%@",res);
- if ([res jk_hasKey:@"code"] && [res[@"code"] isEqual: @200]) {
- // 开始倒计时
- self.remainingSeconds = 60;
- [self startTimer];
-
- // 禁用按钮并改变样式
- self.getCodeBtn.enabled = NO;
- [self.getCodeBtn setTitleColor:[UIColor grayColor] forState:UIControlStateDisabled];
- [self.getCodeBtn setTitle:[NSString stringWithFormat:@"%@(%ld)",NSLocalizedString(@"Sign-wangjimm", @"验证码"), (long)self.remainingSeconds] forState:UIControlStateDisabled];
-
- // [AlertHelper showAlertWithTitle:@"" message:NSLocalizedString(@"Sign-yanzhengmts", @"") cancelButtonTitle:NSLocalizedString(@"Common_getIt", @"") confirmButtonTitle:nil completion:^(NSInteger buttonIndex) {
- // [self.codeTextfield becomeFirstResponder];
- // }];
- }else{
- [MBProgressHUD showWithText:res[@"msg"]];
- }
- } fail:^(NSError * _Nonnull error) {
- NSLog(@"error:%@",error);
- [MBProgressHUD showWithText:NSLocalizedString(@"Login_network_alter", @"")];
- }];
- }
- - (void)saveButtonClicked{
- if (self.nameTextfield.text.length == 0 && !self.isLogin) {
- [MBProgressHUD showWithText:NSLocalizedString(@"login-usernme-note", @"")];
- return;
- }
-
- if (self.resetPwdTextfield.text.length == 0) {
- [MBProgressHUD showWithText:NSLocalizedString(@"Security_newPassword_alter", @"")];
- return;
- }
-
- if (![self.confirmPwdTextfield.text isEqualToString:self.resetPwdTextfield.text]) {
- [MBProgressHUD showWithText:NSLocalizedString(@"PwdChange_passwordsDifferent_alter", @"")];
- return;
- }
-
- if (self.codeTextfield.text.length == 0) {
- [MBProgressHUD showWithText:NSLocalizedString(@"Sign-qingsryzm", @"")];
- return;
- }
-
- NSDictionary * param = @{
- @"username": self.isLogin ? self.userInfo[@"username"] : self.nameTextfield.text, //用户名
- @"password": self.resetPwdTextfield.text, //用户密码
- @"code": self.codeTextfield.text, //验证码
- @"uuid": @"" //唯一标识
- };
-
- [UserNetApi resetPassword:param succ:^(int code, NSDictionary * _Nullable res) {
- NSLog(@"result:%@",res);
- if ([res jk_hasKey:@"msg"]) {
- [MBProgressHUD showWithText:res[@"msg"]];
- }
-
- if ([res jk_hasKey:@"code"] && [res[@"code"] integerValue] == 200 && self.isLogin) {
- //退出登录
- //[[LoginStateManager sharedManager] logout];
- }
-
- } fail:^(NSError * _Nonnull error) {
- NSLog(@"error:%@",error);
- }];
- }
- #pragma mark timer
- - (void)startTimer {
- if (!self.timer) {
- self.timer = [NSTimer scheduledTimerWithTimeInterval:1.0
- target:self
- selector:@selector(updateTimer:)
- userInfo:nil
- repeats:YES];
- [[NSRunLoop mainRunLoop] addTimer:self.timer forMode:NSRunLoopCommonModes];
- }
- }
- - (void)updateTimer:(NSTimer *)timer {
- self.remainingSeconds--;
-
- if (self.remainingSeconds <= 0) {
- [self stopTimer];
-
- // 恢复按钮状态
- self.getCodeBtn.enabled = YES;
- [self.getCodeBtn setTitle:NSLocalizedString(@"Sign-huoquyzm", @"") forState:UIControlStateNormal];
- } else {
- [self.getCodeBtn setTitle:[NSString stringWithFormat:@"%@(%ld)",NSLocalizedString(@"Sign-wangjimm", @"验证码"), (long)self.remainingSeconds] forState:UIControlStateDisabled];
- }
- }
- - (void)stopTimer {
- if (self.timer) {
- [self.timer invalidate];
- self.timer = nil;
- }
- }
- - (void)dealloc {
- [self stopTimer];
- }
- #pragma mark lazy
- - (UILabel *)titleLbl{
- if (!_titleLbl) {
- _titleLbl = [[UILabel alloc] init];
- _titleLbl.text = NSLocalizedString(@"userCenter-chongzhimm", @"");
- _titleLbl.textColor = UIColor.whiteColor;
- _titleLbl.font = SYSMFONT(16);
- _titleLbl.textAlignment = NSTextAlignmentCenter;
- }
- return _titleLbl;
- }
- - (UIButton *)leftBtn{
- if (!_leftBtn) {
- _leftBtn = [UIButton buttonWithType:UIButtonTypeCustom];
- [_leftBtn setImage:kImageMake(@"fanhui") forState:UIControlStateNormal];
- [_leftBtn addTarget:nil action:@selector(leftButtonClicked) forControlEvents:UIControlEventTouchUpInside];
- // [_leftBtn jk_addActionHandler:^(NSInteger tag) {
- // [self leftButtonClicked];
- // }];
- }
- return _leftBtn;
- }
- - (UIStackView *)titleStackView{
- if (!_titleStackView) {
- _titleStackView = [[UIStackView alloc] initWithArrangedSubviews:self.titles];
- _titleStackView.axis = UILayoutConstraintAxisVertical;
- _titleStackView.alignment = UIStackViewAlignmentFill;
- _titleStackView.distribution = UIStackViewDistributionEqualSpacing;
- _titleStackView.spacing = 64;
- }
- return _titleStackView;
- }
- - (UILabel *)nameTitleLbl{
- if (!_nameTitleLbl) {
- _nameTitleLbl = [[UILabel alloc] init];
- _nameTitleLbl.text = NSLocalizedString(@"UserInfo_userName", @"");
- _nameTitleLbl.textColor = UIColor.whiteColor;
- _nameTitleLbl.font = SYSFONT(16);
- }
- return _nameTitleLbl;
- }
- - (UILabel *)resePwdTitleLbl{
- if (!_resePwdTitleLbl) {
- _resePwdTitleLbl = [[UILabel alloc] init];
- _resePwdTitleLbl.text = NSLocalizedString(@"PwdChange_newPassword", @"");
- _resePwdTitleLbl.textColor = UIColor.whiteColor;
- _resePwdTitleLbl.font = SYSFONT(16);
- }
- return _resePwdTitleLbl;
- }
- - (UILabel *)confirmPwdTitleLbl{
- if (!_confirmPwdTitleLbl) {
- _confirmPwdTitleLbl = [[UILabel alloc] init];
- _confirmPwdTitleLbl.text = NSLocalizedString(@"PwdChange_confirmPassword", @"");
- _confirmPwdTitleLbl.textColor = UIColor.whiteColor;
- _confirmPwdTitleLbl.font = SYSFONT(16);
- }
- return _confirmPwdTitleLbl;
- }
- - (UILabel *)codeTitleLbl{
- if (!_codeTitleLbl) {
- _codeTitleLbl = [[UILabel alloc] init];
- _codeTitleLbl.text = NSLocalizedString(@"Sign-wangjimm", @"");
- _codeTitleLbl.textColor = UIColor.whiteColor;
- _codeTitleLbl.font = SYSFONT(16);
- }
- return _codeTitleLbl;
- }
- - (NSMutableArray *)titles{
- if (!_titles) {
- _titles = [NSMutableArray array];
- }
- return _titles;
- }
- - (NSMutableDictionary *)userInfo{
- if (!_userInfo) {
- _userInfo = [NSMutableDictionary dictionaryWithDictionary:[UDManager.shareInstance getDDManager:dkuserinfo]];
- }
- return _userInfo;
- }
- - (UITextField *)nameTextfield{
- if (!_nameTextfield) {
- _nameTextfield = [[UITextField alloc] init];
- _nameTextfield.textColor = UIColor.whiteColor;
- _nameTextfield.borderStyle = UITextBorderStyleNone;
- _nameTextfield.layer.borderWidth = 1.f;
- _nameTextfield.layer.borderColor = globalColor(GCTypeDark2).CGColor;
- _nameTextfield.layer.cornerRadius = 5.f;
- _nameTextfield.leftViewMode = UITextFieldViewModeAlways;
- UIView * leftView = [[UIView alloc] initWithFrame:CGRectMake(0, 0, 15, 50)];
- _nameTextfield.leftView = leftView;
- }
- return _nameTextfield;
- }
- - (UITextField *)resetPwdTextfield{
- if (!_resetPwdTextfield) {
- _resetPwdTextfield = [[UITextField alloc] init];
- _resetPwdTextfield.textColor = UIColor.whiteColor;
- _resetPwdTextfield.borderStyle = UITextBorderStyleNone;
- _resetPwdTextfield.layer.borderWidth = 1.f;
- _resetPwdTextfield.layer.borderColor = globalColor(GCTypeDark2).CGColor;
- _resetPwdTextfield.layer.cornerRadius = 5.f;
- _resetPwdTextfield.secureTextEntry = YES;
- _resetPwdTextfield.leftViewMode = UITextFieldViewModeAlways;
- UIView * leftView = [[UIView alloc] initWithFrame:CGRectMake(0, 0, 15, 50)];
- _resetPwdTextfield.leftView = leftView;
- }
- return _resetPwdTextfield;
- }
- - (UITextField *)confirmPwdTextfield{
- if (!_confirmPwdTextfield) {
- _confirmPwdTextfield = [[UITextField alloc] init];
- _confirmPwdTextfield.textColor = UIColor.whiteColor;
- _confirmPwdTextfield.borderStyle = UITextBorderStyleNone;
- _confirmPwdTextfield.layer.borderWidth = 1.f;
- _confirmPwdTextfield.layer.borderColor = globalColor(GCTypeDark2).CGColor;
- _confirmPwdTextfield.layer.cornerRadius = 5.f;
- _confirmPwdTextfield.secureTextEntry = YES;
- _confirmPwdTextfield.leftViewMode = UITextFieldViewModeAlways;
- UIView * leftView = [[UIView alloc] initWithFrame:CGRectMake(0, 0, 15, 50)];
- _confirmPwdTextfield.leftView = leftView;
- }
- return _confirmPwdTextfield;
- }
- - (UITextField *)codeTextfield{
- if (!_codeTextfield) {
- _codeTextfield = [[UITextField alloc] init];
- _codeTextfield.textColor = UIColor.whiteColor;
- _codeTextfield.borderStyle = UITextBorderStyleNone;
- _codeTextfield.layer.borderWidth = 1.f;
- _codeTextfield.layer.borderColor = globalColor(GCTypeDark2).CGColor;
- _codeTextfield.layer.cornerRadius = 5.f;
- _codeTextfield.leftViewMode = UITextFieldViewModeAlways;
- UIView * leftView = [[UIView alloc] initWithFrame:CGRectMake(0, 0, 15, 50)];
- _codeTextfield.leftView = leftView;
- _codeTextfield.keyboardType = UIKeyboardTypeNumberPad;
- }
- return _codeTextfield;
- }
- - (UIButton *)getCodeBtn{
- if (!_getCodeBtn) {
- _getCodeBtn = [UIButton buttonWithType:UIButtonTypeCustom];
- [_getCodeBtn setBackgroundColor:globalColor(GCTypeGreen)];
- [_getCodeBtn setTitle:NSLocalizedString(@"Sign-huoquyzm", @"") forState:UIControlStateNormal];
- [_getCodeBtn setTitleColor:UIColor.blackColor forState:UIControlStateNormal];
- _getCodeBtn.titleLabel.font = SYSMFONT(14);
- _getCodeBtn.layer.cornerRadius = 5.f;
- _getCodeBtn.layer.masksToBounds = YES;
- [_getCodeBtn addTarget:nil action:@selector(getCodeButtonClicked) forControlEvents:UIControlEventTouchUpInside];
- // [_getCodeBtn jk_addActionHandler:^(NSInteger tag) {
- // [self getCodeButtonClicked];
- // }];
- }
- return _getCodeBtn;
- }
- - (UIButton *)saveBtn{
- if (!_saveBtn) {
- _saveBtn = [UIButton buttonWithType:UIButtonTypeCustom];
- [_saveBtn setBackgroundColor:globalColor(GCTypeGreen)];
- [_saveBtn setTitle:NSLocalizedString(@"EGroupCtr-baocun", @"") forState:UIControlStateNormal];
- [_saveBtn setTitleColor:UIColor.blackColor forState:UIControlStateNormal];
- _saveBtn.titleLabel.font = SYSMFONT(16);
- _saveBtn.layer.cornerRadius = 5.f;
- _saveBtn.layer.masksToBounds = YES;
- [_saveBtn addTarget:nil action:@selector(saveButtonClicked) forControlEvents:UIControlEventTouchUpInside];
- }
- return _saveBtn;
- }
- #pragma mark statusBar
- - (UIStatusBarStyle)preferredStatusBarStyle{
- return UIStatusBarStyleLightContent;
- }
- @end
|