//
|
// ForgotPasswordVC.swift
|
// OKProject
|
//
|
// Created by alvin_y on 2020/5/27.
|
// Copyright © 2020 yangwang. All rights reserved.
|
//
|
|
import UIKit
|
|
/// 忘记密码
|
class ForgotPasswordVC: YYViewController {
|
|
/// 提交按钮
|
@IBOutlet weak var button_submit: YYButton!
|
|
/// 手机号
|
@IBOutlet weak var textField_phone: YYTextField!
|
|
/// 密码
|
@IBOutlet weak var textField_password: YYTextField!
|
|
/// 验证码
|
@IBOutlet weak var textField_code: YYTextField!
|
|
/// viewModel
|
let viewModel = ForgotPasswordViewModel()
|
|
/// 获取验证码
|
@IBOutlet weak var button_getCode: YYButton!
|
|
/// 验证按钮倒计时
|
var codeTimeTick: CodeTimeTick = CodeTimeTick()
|
|
override func viewDidLoad() {
|
super.viewDidLoad()
|
|
// Do any additional setup after loading the view.
|
}
|
|
override func viewWillAppear(_ animated: Bool) {
|
super.viewWillAppear(animated)
|
yy_isHiddenNavBarLine = true
|
}
|
|
override func viewDidDisappear(_ animated: Bool) {
|
super.viewDidDisappear(animated)
|
codeTimeTick.close()
|
}
|
|
//MARK: - UI
|
override func setupViews() {
|
super.setupViews()
|
navigationItem.title = "忘记密码"
|
textField_phone.keyboardType = .numberPad
|
textField_code.keyboardType = .numberPad
|
textField_password.delegate = self
|
textField_password.isSecureTextEntry = true
|
codeTimeTick.config(button: button_getCode, grayColor: UIColor.color(light: UIColor.color(hexString: "#333333",0.39), dark: UIColor.color(hexString: "#333333",0.39)))
|
}
|
|
//MARK: - Rx
|
override func bindRx() {
|
super.bindRx()
|
|
/// 获取验证码
|
button_getCode.rx.tap.subscribe(onNext: {[unowned self] (_) in
|
self.viewModel.sendSMSCode(type: 4)
|
}).disposed(by: disposeBag)
|
|
/// 发送验证码处理
|
viewModel.sendSMSCodeSubject
|
.subscribe(onNext: {[unowned self] (status) in
|
switch status{
|
case .loading:
|
self.show()
|
break
|
case .success(_ ):
|
self.hide()
|
// 倒计时
|
self.codeTimeTick.start()
|
break
|
case .error(let error):
|
self.hide()
|
alert(text: error.localizedDescription)
|
break
|
}
|
}).disposed(by: disposeBag)
|
|
textField_phone.rx.text.orEmpty
|
.bind(to: viewModel.phoneNumber)
|
.disposed(by: disposeBag)
|
|
textField_code.rx.text.orEmpty
|
.bind(to: viewModel.code)
|
.disposed(by: disposeBag)
|
|
textField_password.rx.text.orEmpty
|
.bind(to: viewModel.password)
|
.disposed(by: disposeBag)
|
|
viewModel.requestSubject
|
.subscribe(onNext: {[unowned self] (status) in
|
switch status{
|
case .loading:
|
self.show()
|
break
|
case .success(_ ):
|
self.hide()
|
alert(text: "找回成功")
|
self.yy_pop()
|
break
|
case .error(let error):
|
self.hide()
|
alert(text: error.localizedDescription)
|
break
|
}
|
}).disposed(by: disposeBag)
|
|
button_submit.rx.tap.subscribe(onNext: { [unowned self](_) in
|
self.viewModel.forgotPassword()
|
}).disposed(by: disposeBag)
|
|
|
// viewModel.checkCaptchaSubject
|
// .subscribe(onNext: {[unowned self] (status) in
|
// switch status{
|
// case .loading:
|
// self.show()
|
// break
|
// case .success(_ ):
|
// self.hide()
|
// self.viewModel.forgotPassword()
|
// break
|
// case .error(let error):
|
// self.hide()
|
// alert(text: error.localizedDescription)
|
// break
|
// }
|
// }).disposed(by: disposeBag)
|
}
|
}
|
|
// MARK: - UITextFieldDelegate
|
extension ForgotPasswordVC: UITextFieldDelegate
|
{
|
func textField(_ textField: UITextField, shouldChangeCharactersIn range: NSRange, replacementString string: String) -> Bool {
|
return isInputRuleAndNumber(str: string)
|
}
|
}
|