r
3 天以前 24182a847205ad81c759a0d173cc0e12fcd5a149
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
//
//  ProfileVC.swift
//  WanPai
//
//  Created by 无故事王国 on 2023/6/28.
//
 
import UIKit
import QMUIKit
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?
                private var model:UserInfoModel?
 
                override func viewDidLoad() {
                                super.viewDidLoad()
 
                                title = "个人信息"
 
                                tf_gender.delegate = self
                                tf_birthday.delegate = self
 
                                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
                                                                self?.model = model
 
//                                                                self?.tf_username.isEnabled = model.userName.isEmpty
//                                                                self?.tf_gender.isEnabled = model.sex.isEmpty
//                                                                self?.tf_birthday.isEnabled = model.birthday.isEmpty
                                                }
 
                                }).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
                                                }
 
                                                guard weakSelf.tf_username.text != weakSelf.model?.userName else {return}
                                                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)
                }
 
                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
 
                                }.disposed(by: disposeBag)
                }
 
                @IBAction func logoutAction(_ sender: UIButton) {
                                CommonAlertView.show(title: "提示", content: "确认退出当前账号?",cancelStr: "关闭",completeStr: nil,isSingle: false) { status in
                                                if status{
                                                                UserViewModel.clearToken()
                                                                app.needLogin()
                                                }
                                }
                }
 
                @IBAction func logOffAction(_ sender: Any) {
                                let vc = LogOffVC()
                                push(vc: vc)
                }
 
 
                @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 updatePwdAction(_ sender: Any) {
                                let vc = LoginRegOrForgotVC(type: .updatePwd)
                                push(vc: vc)
                }
 
                @IBAction func userAgreementAction(_ sender: Any) {
                                push(vc: CommonWebVC(type: .user,needBackBtn: true))
                }
 
                @IBAction func privacyAgreementAction(_ sender: Any) {
                                push(vc: CommonWebVC(type: .privacy,needBackBtn: true))
                }
 
 
                @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!
 
                                                                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
                }
}