fix
无故事王国
2024-02-28 4468d9f9b3b8c70597f04e5f1ecb61118c404d2c
WanPai/Root/Other/VC/ProfileVC.swift
@@ -10,142 +10,142 @@
import JQTools
class ProfileVC: BaseVC {
    @IBOutlet weak var btn_userProfile: UIButton!
    @IBOutlet weak var tf_username: UITextField!
    @IBOutlet weak var label_contact: UILabel!
    @IBOutlet weak var tf_gender: UITextField!
    @IBOutlet weak var tf_birthday: UITextField!
    @IBOutlet weak var label_address: UILabel!
    @IBOutlet weak var label_vipDutime: UILabel!
   @IBOutlet weak var view_vipExpired: UIView!
    private var profileImg:UIImage?
            @IBOutlet weak var btn_userProfile: UIButton!
            @IBOutlet weak var tf_username: UITextField!
            @IBOutlet weak var label_contact: UILabel!
            @IBOutlet weak var tf_gender: UITextField!
            @IBOutlet weak var tf_birthday: UITextField!
            @IBOutlet weak var label_address: UILabel!
            @IBOutlet weak var label_vipDutime: UILabel!
            @IBOutlet weak var view_vipExpired: UIView!
    override func viewDidLoad() {
        super.viewDidLoad()
            private var profileImg:UIImage?
        title = "个人信息"
            override func viewDidLoad() {
                        super.viewDidLoad()
      tf_gender.delegate = self
      tf_birthday.delegate = self
                        title = "个人信息"
        Services.userDetails().subscribe(onNext: {[weak self] data in
            if let model = data.data{
                self?.tf_username.text = model.userName
                self?.label_contact.text = model.userPhone
                self?.tf_gender.text = model.sex
                self?.tf_birthday.text = model.birthday
                self?.label_address.text = model.address
                self?.label_vipDutime.text = model.memberLifespan
                self?.btn_userProfile.sd_setImage(with: URL(string: model.userImage), for: .normal,placeholderImage: UIImage(named: "btn_userProfile"))
            self?.view_vipExpired.isHidden = model.isVip == 0
            }
                        tf_gender.delegate = self
                        tf_birthday.delegate = self
        }).disposed(by: disposeBag)
    }
                        Services.userDetails().subscribe(onNext: {[weak self] data in
                                    if let model = data.data{
                                                self?.tf_username.text = model.userName
                                                self?.label_contact.text = model.userPhone
                                                self?.tf_gender.text = model.sex
                                                self?.tf_birthday.text = model.birthday
                                                self?.label_address.text = model.address
                                                self?.label_vipDutime.text = model.memberLifespan
                                                self?.btn_userProfile.sd_setImage(with: URL(string: model.userImage), for: .normal,placeholderImage: UIImage(named: "btn_userProfile"))
                                                self?.view_vipExpired.isHidden = model.isVip == 0
                                    }
   override func setRx() {
      tf_username.rx.controlEvent(.editingDidEnd).subscribe(onNext: {[weak self] () in
         guard let weakSelf = self else { return }
         if weakSelf.tf_username.isEmpty{
            alertError(msg: "请输入用户名称");return
         }
                        }).disposed(by: disposeBag)
            }
         Services.updateInfo(birthday: nil, gender: nil, name: weakSelf.tf_username.text).subscribe(onNext: {[weak self] data in
            self?.updateUserInfo()
         }).disposed(by: weakSelf.disposeBag)
      }).disposed(by: disposeBag)
   }
            override func setRx() {
                        tf_username.rx.controlEvent(.editingDidEnd).subscribe(onNext: {[weak self] () in
                                    guard let weakSelf = self else { return }
                                    if weakSelf.tf_username.isEmpty{
                                                alertError(msg: "请输入用户名称");return
                                    }
   private func updateUserInfo(){
      Services.userDetails().subscribe(onNext: {data in
         if let m = data.data{m.save()}
         alertSuccess(msg: "修改成功")
         NotificationCenter.default.post(name: UpdateWelfare_Noti, object: nil)
      }) { error in
                                    Services.updateInfo(birthday: nil, gender: nil, name: weakSelf.tf_username.text).subscribe(onNext: {[weak self] data in
                                                self?.updateUserInfo()
                                    }).disposed(by: weakSelf.disposeBag)
                        }).disposed(by: disposeBag)
            }
      }.disposed(by: disposeBag)
   }
            private func updateUserInfo(){
                        Services.userDetails().subscribe(onNext: {data in
                                    if let m = data.data{m.save()}
                                    alertSuccess(msg: "修改成功")
                                    NotificationCenter.default.post(name: UpdateWelfare_Noti, object: nil)
                        }) { error in
    @IBAction func logoutAction(_ sender: UIButton) {
        CommonAlertView.show(title: "提示", content: "确认退出当前账号?",cancelStr: "关闭",completeStr: nil,isSingle: false) { status in
            if status{
                UserViewModel.clearToken()
            app.needLogin()
            }
        }
    }
                        }.disposed(by: disposeBag)
            }
   @IBAction func logOffAction(_ sender: Any) {
      let vc = LogOffVC()
      push(vc: vc)
   }
            @IBAction func logoutAction(_ sender: UIButton) {
                        CommonAlertView.show(title: "提示", content: "确认退出当前账号?",cancelStr: "关闭",completeStr: nil,isSingle: false) { status in
                                    if status{
                                                UserViewModel.clearToken()
                                                app.needLogin()
                                    }
                        }
            }
    @IBAction func updateProfileAction(_ sender: UIButton) {
      JQ_ImagePickerTool.getSharedInstance().singleImage({ image in
         self.profileImg = image
         self.btn_userProfile.setImage(image, for: .normal)
         image.uploadImgToService().subscribe { text in
            Services.updateUserProfile(text).subscribe(onNext: {[weak self] _ in
               guard let weakSelf = self else { return }
               alertSuccess(msg: "修改成功")
               self?.btn_userProfile.sd_setImage(with: URL(string: text), for: .normal,placeholderImage: UIImage(named: "btn_userProfile"))
               Services.userDetails().subscribe(onNext: {data in
                  if let m = data.data{m.save()}
                  alertSuccess(msg: "修改成功")
                  NotificationCenter.default.post(name: UpdateWelfare_Noti, object: nil)
               }) { error in
            @IBAction func logOffAction(_ sender: Any) {
                        let vc = LogOffVC()
                        push(vc: vc)
            }
               }.disposed(by: weakSelf.disposeBag)
            }) { error in
               alertError(msg: error.localizedDescription)
            }.disposed(by: self.disposeBag)
         } onError: { error in
            alertError(msg: error.localizedDescription)
         }.disposed(by: self.disposeBag)
      }, clipSize: CGSize(width: JQ_ScreenW, height: JQ_ScreenW))
   }
    @IBAction func dismissAccountAction(_ sender: UIButton) {
            @IBAction func updateProfileAction(_ sender: UIButton) {
                        JQ_ImagePickerTool.getSharedInstance().singleImage({ image in
                                    self.profileImg = image
                                    self.btn_userProfile.setImage(image, for: .normal)
                                    image.uploadImgToService().subscribe { text in
                                                Services.updateUserProfile(text).subscribe(onNext: {[weak self] _ in
                                                            guard let weakSelf = self else { return }
                                                            alertSuccess(msg: "修改成功")
                                                            self?.btn_userProfile.sd_setImage(with: URL(string: text), for: .normal,placeholderImage: UIImage(named: "btn_userProfile"))
                                                            Services.userDetails().subscribe(onNext: {data in
                                                                        if let m = data.data{m.save()}
                                                                        alertSuccess(msg: "修改成功")
                                                                        NotificationCenter.default.post(name: UpdateWelfare_Noti, object: nil)
                                                            }) { error in
    }
                                                            }.disposed(by: weakSelf.disposeBag)
                                                }) { error in
                                                            alertError(msg: error.localizedDescription)
                                                }.disposed(by: self.disposeBag)
                                    } onError: { error in
                                                alertError(msg: error.localizedDescription)
                                    }.disposed(by: self.disposeBag)
                        }, clipSize: CGSize(width: JQ_ScreenW, height: JQ_ScreenW))
            }
            @IBAction func dismissAccountAction(_ sender: UIButton) {
            }
}
extension ProfileVC:UITextFieldDelegate{
   func textFieldShouldBeginEditing(_ textField: UITextField) -> Bool {
      view.endEditing(true)
      if textField == tf_gender{
         let items = ["男","女"]
         CommonAlertSheetView.show(items: items) {[weak self] index in
            guard let weakSelf = self else { return }
            guard textField.text != items[index] else {return}
            textField.text = items[index]
            var gender:GenderType!
            func textFieldShouldBeginEditing(_ textField: UITextField) -> Bool {
                        view.endEditing(true)
                        if textField == tf_gender{
                                    let items = ["男","女"]
                                    CommonAlertSheetView.show(items: items) {[weak self] index in
                                                guard let weakSelf = self else { return }
                                                guard textField.text != items[index] else {return}
                                                textField.text = items[index]
                                                var gender:GenderType!
            if index == 0{
               gender = .man
            }else{
               gender = .woman
                                                if index == 0{
                                                            gender = .man
                                                }else{
                                                            gender = .woman
                                                }
                                                Services.updateInfo(birthday: nil, gender: gender.rawValue, name: nil).subscribe(onNext: {[weak self] data in
                                                            self?.updateUserInfo()
                                                }).disposed(by: weakSelf.disposeBag)
                                    }
                        }
                        if textField == tf_birthday{
                                    CommonDatePickerView.show(before: 60, after: 0, type: .YMD) {[weak self] year, month, day, _, _ in
                                                guard let weakSelf = self else { return }
                                                let date = String(format: "%ld-%02ld-%02ld", year!,month!,day!)
                                                guard textField.text != date else {return}
                                                textField.text = date
                                                Services.updateInfo(birthday: textField.text, gender: nil, name: nil).subscribe(onNext: {[weak self] data in
                                                            self?.updateUserInfo()
                                                }).disposed(by: weakSelf.disposeBag)
                                    }
                        }
                        return false
            }
            Services.updateInfo(birthday: nil, gender: gender.rawValue, name: nil).subscribe(onNext: {[weak self] data in
               self?.updateUserInfo()
            }).disposed(by: weakSelf.disposeBag)
         }
      }
      if textField == tf_birthday{
         CommonDatePickerView.show(before: 60, after: 0, type: .YMD) {[weak self] year, month, day, _, _ in
            guard let weakSelf = self else { return }
            let date = String(format: "%ld-%02ld-%02ld", year!,month!,day!)
            guard textField.text != date else {return}
            textField.text = date
            Services.updateInfo(birthday: textField.text, gender: nil, name: nil).subscribe(onNext: {[weak self] data in
               self?.updateUserInfo()
            }).disposed(by: weakSelf.disposeBag)
         }
      }
      return false
   }
}