UpdatePasswordViewController.swift 5.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136
  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. self.old_password_textfield.placeholderColor = .db_place
  30. self.one_password_textfield.placeholderColor = .db_place
  31. self.two_password_textfield.placeholderColor = .db_place
  32. }
  33. //绑定-rx
  34. func biandView(){
  35. //显示密码
  36. old_pwdshow_button.rx.tap.subscribe ({ [unowned self] (_) in
  37. self.old_pwdshow_button.isSelected = !self.old_pwdshow_button.isSelected;
  38. self.old_password_textfield.isSecureTextEntry = !self.old_pwdshow_button.isSelected
  39. }).disposed(by: disposeBag)
  40. one_pwdshow_button.rx.tap.subscribe ({ [unowned self] (_) in
  41. self.one_pwdshow_button.isSelected = !self.one_pwdshow_button.isSelected;
  42. self.one_password_textfield.isSecureTextEntry = !self.one_pwdshow_button.isSelected
  43. }).disposed(by: disposeBag)
  44. two_pwdshow_button.rx.tap.subscribe ({ [unowned self] (_) in
  45. self.two_pwdshow_button.isSelected = !self.two_pwdshow_button.isSelected;
  46. self.two_password_textfield.isSecureTextEntry = !self.two_pwdshow_button.isSelected
  47. }).disposed(by: disposeBag)
  48. //判断密码的输入是否可用
  49. let old_passwordValid = old_password_textfield.rx.text.orEmpty.map{ value in
  50. return value.count >= 6
  51. }
  52. let one_passwordValid = one_password_textfield.rx.text.orEmpty.map{ value in
  53. return value.count >= 6
  54. }
  55. let two_passwordValid = two_password_textfield.rx.text.orEmpty.map{ value in
  56. return value.count >= 6
  57. }
  58. //确定按钮的可用与否
  59. let confirmObserver = Observable.combineLatest(old_passwordValid,one_passwordValid,two_passwordValid){(old,one,two) in
  60. old && one && two
  61. }
  62. //绑定按钮
  63. confirmObserver.bind(to: confirm_button.rx.isEnabled).disposed(by: disposeBag)
  64. confirmObserver.subscribe(onNext: { [unowned self] valid in
  65. self.confirm_button.alpha = valid ? 1 : 0.5
  66. }).disposed(by: disposeBag)
  67. confirm_button.rx.tap
  68. .asObservable()
  69. .withLatestFrom(confirmObserver)
  70. .do(onNext: {
  71. [unowned self]_ in
  72. self.confirm_button.isEnabled = false
  73. self.view.endEditing(true)
  74. })
  75. .subscribe(onNext: {[unowned self]isLogin in
  76. self.confirm_button.isEnabled = true
  77. let user_name = LocalManager.userInfo.userAccount
  78. let old_pwd = old_password_textfield.text
  79. let one_pwd = one_password_textfield.text
  80. let two_pwd = two_password_textfield.text
  81. if old_pwd != LocalManager.userInfo.password {
  82. NYTips.showMsg(txt: "原密码不正确!")
  83. return
  84. }
  85. if one_pwd != two_pwd {
  86. NYTips.showMsg(txt: "两次密码不相同")
  87. return
  88. }
  89. NYTips.show()
  90. self.loginService.updateRequest(user_name: user_name!, user_password: old_pwd!, new_password: two_pwd!, city: LocalManager.userInfo.city!)
  91. .subscribe(onSuccess: { updateDataModel in
  92. NYTips.hide()
  93. if updateDataModel.data as! Int == 1{
  94. LocalManager.userInfo.password = two_pwd
  95. LocalManager.userInfo.isLogin = true //设置已经登录
  96. print("修改成功:%@", updateDataModel)
  97. self.navigationController?.popViewController(animated: true)
  98. }else {
  99. NYTips.showErr(txt: updateDataModel.msg!)
  100. }
  101. }, onError: { error in
  102. NYTips.hide()
  103. NYTips.showErr(txt: error.localizedDescription)
  104. print("%@",error)
  105. })
  106. .disposed(by: disposeBag)
  107. })
  108. .disposed(by: disposeBag)
  109. //添加手势
  110. let tapBackground = UITapGestureRecognizer()
  111. tapBackground.rx.event
  112. .subscribe(onNext: { [weak self] _ in
  113. self?.view.endEditing(true)
  114. })
  115. .disposed(by: disposeBag)
  116. view.addGestureRecognizer(tapBackground)
  117. }
  118. }