UpdatePasswordViewController.swift 5.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138
  1. //
  2. // UpdatePasswordViewController.swift
  3. // JiaPeiManage
  4. //
  5. // Created by Ning.ge on 2023/6/15.
  6. //
  7. import UIKit
  8. import RxSwift
  9. import RxCocoa
  10. final class UpdatePasswordViewController: BaseViewController {
  11. // MARK: 服务属性
  12. private let loginService: LoginServiceType = LoginService(networking: LoginNetworking())
  13. // MARK: UI属性
  14. @IBOutlet weak var old_password_textfield: QMUITextField!
  15. @IBOutlet weak var one_password_textfield: QMUITextField!
  16. @IBOutlet weak var two_password_textfield: QMUITextField!
  17. @IBOutlet weak var old_pwdshow_button: QMUIButton!
  18. @IBOutlet weak var one_pwdshow_button: QMUIButton!
  19. @IBOutlet weak var two_pwdshow_button: QMUIButton!
  20. @IBOutlet weak var confirm_button: UIButton!
  21. override func viewDidLoad() {
  22. super.viewDidLoad()
  23. setupUI()
  24. biandView()
  25. }
  26. // MARK: 私有方法
  27. func setupUI(){
  28. self.view.backgroundColor = .db_theme
  29. if isIphoneX {self.nav_top_layout.constant = 24.f}
  30. self.old_password_textfield.placeholderColor = .db_place
  31. self.one_password_textfield.placeholderColor = .db_place
  32. self.two_password_textfield.placeholderColor = .db_place
  33. }
  34. //绑定-rx
  35. func biandView(){
  36. //显示密码
  37. old_pwdshow_button.rx.tap.subscribe ({ [unowned self] (_) in
  38. self.old_pwdshow_button.isSelected = !self.old_pwdshow_button.isSelected;
  39. self.old_password_textfield.isSecureTextEntry = !self.old_pwdshow_button.isSelected
  40. }).disposed(by: disposeBag)
  41. one_pwdshow_button.rx.tap.subscribe ({ [unowned self] (_) in
  42. self.one_pwdshow_button.isSelected = !self.one_pwdshow_button.isSelected;
  43. self.one_password_textfield.isSecureTextEntry = !self.one_pwdshow_button.isSelected
  44. }).disposed(by: disposeBag)
  45. two_pwdshow_button.rx.tap.subscribe ({ [unowned self] (_) in
  46. self.two_pwdshow_button.isSelected = !self.two_pwdshow_button.isSelected;
  47. self.two_password_textfield.isSecureTextEntry = !self.two_pwdshow_button.isSelected
  48. }).disposed(by: disposeBag)
  49. //判断密码的输入是否可用
  50. let old_passwordValid = old_password_textfield.rx.text.orEmpty.map{ value in
  51. return value.count >= 6
  52. }
  53. let one_passwordValid = one_password_textfield.rx.text.orEmpty.map{ value in
  54. return value.count >= 6
  55. }
  56. let two_passwordValid = two_password_textfield.rx.text.orEmpty.map{ value in
  57. return value.count >= 6
  58. }
  59. //确定按钮的可用与否
  60. let confirmObserver = Observable.combineLatest(old_passwordValid,one_passwordValid,two_passwordValid){(old,one,two) in
  61. old && one && two
  62. }
  63. //绑定按钮
  64. confirmObserver.bind(to: confirm_button.rx.isEnabled).disposed(by: disposeBag)
  65. confirmObserver.subscribe(onNext: { [unowned self] valid in
  66. self.confirm_button.alpha = valid ? 1 : 0.5
  67. }).disposed(by: disposeBag)
  68. confirm_button.rx.tap
  69. .asObservable()
  70. .withLatestFrom(confirmObserver)
  71. .do(onNext: {
  72. [unowned self]_ in
  73. self.confirm_button.isEnabled = false
  74. self.view.endEditing(true)
  75. })
  76. .subscribe(onNext: {[unowned self]isLogin in
  77. self.confirm_button.isEnabled = true
  78. let user_name = LocalManager.userInfo.userAccount
  79. let old_pwd = old_password_textfield.text
  80. let one_pwd = one_password_textfield.text
  81. let two_pwd = two_password_textfield.text
  82. if old_pwd != LocalManager.userInfo.password {
  83. NYTips.showMsg(txt: "原密码不正确!")
  84. return
  85. }
  86. if one_pwd != two_pwd {
  87. NYTips.showMsg(txt: "两次密码不相同")
  88. return
  89. }
  90. NYTips.show()
  91. self.loginService.updateRequest(user_name: user_name!, user_password: old_pwd!, new_password: two_pwd!, city: LocalManager.userInfo.city!)
  92. .subscribe(onSuccess: { updateDataModel in
  93. NYTips.hide()
  94. if updateDataModel.data as! Int == 1{
  95. LocalManager.userInfo.password = two_pwd
  96. LocalManager.userInfo.isLogin = true //设置已经登录
  97. print("修改成功:%@", updateDataModel)
  98. self.navigationController?.popViewController(animated: true)
  99. }else {
  100. NYTips.showErr(txt: updateDataModel.msg!)
  101. }
  102. }, onError: { error in
  103. NYTips.hide()
  104. NYTips.showErr(txt: error.localizedDescription)
  105. print("%@",error)
  106. })
  107. .disposed(by: disposeBag)
  108. })
  109. .disposed(by: disposeBag)
  110. //添加手势
  111. let tapBackground = UITapGestureRecognizer()
  112. tapBackground.rx.event
  113. .subscribe(onNext: { [weak self] _ in
  114. self?.view.endEditing(true)
  115. })
  116. .disposed(by: disposeBag)
  117. view.addGestureRecognizer(tapBackground)
  118. }
  119. }