From 0fb7413df54760ac6bd15b90b738e0706de1629e Mon Sep 17 00:00:00 2001
From: 杨锴 <841720330@qq.com>
Date: 星期二, 05 十一月 2024 19:03:09 +0800
Subject: [PATCH] fix bug

---
 XQMuse/Root/Me/VC/UserProfileVC.swift |  345 ++++++++++++++++++++++++++++-----------------------------
 1 files changed, 169 insertions(+), 176 deletions(-)

diff --git a/XQMuse/Root/Me/VC/UserProfileVC.swift b/XQMuse/Root/Me/VC/UserProfileVC.swift
index d323209..eb95c22 100644
--- a/XQMuse/Root/Me/VC/UserProfileVC.swift
+++ b/XQMuse/Root/Me/VC/UserProfileVC.swift
@@ -15,217 +15,210 @@
 
 class UserProfileVC: BaseVC {
 
-				@IBOutlet weak var image_user: UIImageView!
-				@IBOutlet weak var tf_nickName: QMUITextField!
-				@IBOutlet weak var tf_realName: QMUITextField!
-				@IBOutlet weak var tf_sign: QMUITextField!
-				@IBOutlet weak var tf_gender: QMUITextField!
-				@IBOutlet weak var tf_birthday: QMUITextField!
-				@IBOutlet weak var tf_degree: QMUITextField!
-				@IBOutlet weak var tf_industry: QMUITextField!
-				@IBOutlet weak var tf_company: QMUITextField!
-				@IBOutlet weak var tf_job: QMUITextField!
-				@IBOutlet weak var tf_address: QMUITextField!
-				@IBOutlet weak var tf_birthland: QMUITextField!
-				@IBOutlet weak var tf_email: QMUITextField!
+    @IBOutlet weak var image_user: UIImageView!
+    @IBOutlet weak var tf_nickName: QMUITextField!
+    @IBOutlet weak var tf_realName: QMUITextField!
+    @IBOutlet weak var tf_sign: QMUITextField!
+    @IBOutlet weak var tf_gender: QMUITextField!
+    @IBOutlet weak var tf_birthday: QMUITextField!
+    @IBOutlet weak var tf_degree: QMUITextField!
+    @IBOutlet weak var tf_industry: QMUITextField!
+    @IBOutlet weak var tf_company: QMUITextField!
+    @IBOutlet weak var tf_job: QMUITextField!
+    @IBOutlet weak var tf_address: QMUITextField!
+    @IBOutlet weak var tf_birthland: QMUITextField!
+    @IBOutlet weak var tf_email: QMUITextField!
     @IBOutlet weak var image_placeholder: UIImageView!
-    
-				private var clipSize = CGSize(width: JQ_ScreenW, height: JQ_ScreenW) //裁剪大小
-				private var clipFrame:CGRect{
-								get{
-												if clipSize.width == 0 || clipSize.height == 0 {
-																assert(false,"未设置裁剪框大小")
-												}
 
-												var clipFrame = CGRect.zero
-												clipFrame.size = clipSize
-												clipFrame.origin = CGPoint(x: (JQ_ScreenW - clipSize.width)/2.0, y: (JQ_ScreenH - clipSize.width)/2.0)
-												return clipFrame
-								}
-				}
+    private var userClipAvar:UIImage?
 
-				override func viewDidLoad() {
-								super.viewDidLoad()
-								title = "个人资料"
+    private var clipSize = CGSize(width: JQ_ScreenW, height: JQ_ScreenW) //裁剪大小
+    private var clipFrame:CGRect{
+        get{
+            if clipSize.width == 0 || clipSize.height == 0 {
+                assert(false,"未设置裁剪框大小")
+            }
 
-        image_placeholder.isHidden = !UserViewModel.getAvatarInfo().avatar.isEmpty
+            var clipFrame = CGRect.zero
+            clipFrame.size = clipSize
+            clipFrame.origin = CGPoint(x: (JQ_ScreenW - clipSize.width)/2.0, y: (JQ_ScreenH - clipSize.width)/2.0)
+            return clipFrame
+        }
+    }
+
+    override func viewDidLoad() {
+        super.viewDidLoad()
+        title = "个人资料"
+
+
+        let saveBtn = UIButton(type: .custom)
+        saveBtn.setTitle("保存", for: .normal)
+        saveBtn.titleLabel?.font = .systemFont(ofSize: 15)
+        saveBtn.setTitleColor(UIColor(hexString: "#353535"), for: .normal)
+        saveBtn.addTarget(self, action: #selector(saveAction), for: .touchUpInside)
+        navigationItem.rightBarButtonItem = UIBarButtonItem(customView: saveBtn)
+
+//        image_placeholder.isHidden = !UserViewModel.getAvatarInfo().avatar.isEmpty
 
         if let url = URL(string: UserViewModel.getAvatarInfo().avatar){
             image_user.sd_setImage(with: url)
         }
 
-								tf_nickName.text = UserViewModel.getAvatarInfo().nickname
-								tf_realName.text = UserViewModel.getAvatarInfo().realname
-								tf_sign.text = UserViewModel.getAvatarInfo().signature
-								tf_gender.text = UserViewModel.getAvatarInfo().gender.rawTitle
-								tf_birthday.text = UserViewModel.getAvatarInfo().birthday
-								tf_degree.text = UserViewModel.getAvatarInfo().education
-								tf_industry.text = UserViewModel.getAvatarInfo().industry
-								tf_company.text = UserViewModel.getAvatarInfo().company
-								tf_job.text = UserViewModel.getAvatarInfo().occupation
-								tf_address.text = UserViewModel.getAvatarInfo().location
-								tf_birthland.text = UserViewModel.getAvatarInfo().hometown
-								tf_email.text = UserViewModel.getAvatarInfo().email
+        tf_nickName.text = UserViewModel.getAvatarInfo().nickname
+        tf_realName.text = UserViewModel.getAvatarInfo().realname
+        tf_sign.text = UserViewModel.getAvatarInfo().signature
+        tf_gender.text = UserViewModel.getAvatarInfo().gender.rawTitle
+        tf_birthday.text = UserViewModel.getAvatarInfo().birthday
+        tf_degree.text = UserViewModel.getAvatarInfo().education
+        tf_industry.text = UserViewModel.getAvatarInfo().industry
+        tf_company.text = UserViewModel.getAvatarInfo().company
+        tf_job.text = UserViewModel.getAvatarInfo().occupation
+        tf_address.text = UserViewModel.getAvatarInfo().location
+        tf_birthland.text = UserViewModel.getAvatarInfo().hometown
+        tf_email.text = UserViewModel.getAvatarInfo().email
 
-        yy_popBlock = {[weak self] in
+        tf_nickName.maximumTextLength = 12
+
+    }
+
+    override func setUI() {
+        super.setUI()
+        view.backgroundColor = UIColor(hexString:"#fafafa")
+        tf_gender.delegate = self
+        tf_birthday.delegate = self
+        image_user.isUserInteractionEnabled = true
+        let tap = UITapGestureRecognizer(target: self, action: #selector(selectUserProfile))
+        tap.numberOfTapsRequired = 1
+        image_user.addGestureRecognizer(tap)
+    }
+
+    @objc func saveAction(){
+        let nickname = tf_nickName.text
+        let realname = tf_realName.text
+        let signature = tf_sign.text
+        let gender = GenderType.GenderBy(tf_gender.text!)
+        let birthday = tf_birthday.text
+        let education = tf_degree.text
+        let industry = tf_industry.text
+        let company = tf_company.text
+        let occupation = tf_job.text
+        let location = tf_address.text
+        let hometown = tf_birthland.text
+        let email = tf_email.text
+
+        Services.updateUserInfo(birthday: birthday, company: company, education: education, email: email, gender: gender, hometown: hometown, industry: industry, location: location, nickname: nickname, realname: realname, occupation: occupation, signature: signature).subscribe(onNext: {data in
+            NotificationCenter.default.post(name: UpdateUserProfile_Noti, object: nil)
+            alertSuccess(msg: "修改成功")
+        }).disposed(by: disposeBag)
+
+        userClipAvar?.uploadImg().subscribe(onNext: {[weak self]imageUrl in
             guard let weakSelf = self else { return }
-            let nickname = weakSelf.tf_nickName.text
-            let realname = weakSelf.tf_realName.text
-            let signature = weakSelf.tf_sign.text
-            let gender = GenderType.GenderBy(weakSelf.tf_gender.text!)
-            let birthday = weakSelf.tf_birthday.text
-            let education = weakSelf.tf_degree.text
-            let industry = weakSelf.tf_industry.text
-            let company = weakSelf.tf_company.text
-            let occupation = weakSelf.tf_job.text
-            let location = weakSelf.tf_address.text
-            let hometown = weakSelf.tf_birthland.text
-            let email = weakSelf.tf_email.text
+            Services.updateUserAvatar(imageUrl).subscribe(onNext: {data in
+                weakSelf.image_user.sd_setImage(with: URL(string: imageUrl.jq_urlEncoded())!)
+                weakSelf.image_placeholder.isHidden = true
+                NotificationCenter.default.post(name: UpdateUserProfile_Noti, object: nil)
+            }).disposed(by: weakSelf.disposeBag)
+        }).disposed(by: disposeBag)
+    }
 
-            if nickname != UserViewModel.getAvatarInfo().nickname
-                || realname != UserViewModel.getAvatarInfo().realname
-                || signature != UserViewModel.getAvatarInfo().signature
-                || gender != UserViewModel.getAvatarInfo().gender
-                || birthday != UserViewModel.getAvatarInfo().birthday
-                || education != UserViewModel.getAvatarInfo().education
-                || industry != UserViewModel.getAvatarInfo().industry
-                || company != UserViewModel.getAvatarInfo().company
-                || occupation != UserViewModel.getAvatarInfo().occupation
-                || location != UserViewModel.getAvatarInfo().location
-                || hometown != UserViewModel.getAvatarInfo().hometown
-                || email != UserViewModel.getAvatarInfo().email{
+    @objc func selectUserProfile(){
+        CommonAlertSheetView.show(items: ["从相册选择"]) {[unowned self] index in
+            if index == 0{
 
-                CommonAlertView.show(title: "提示", content: "是否保存修改?",cancelStr: "不保存",completeStr: "保存") { state in
-                    if state{
-                        Services.updateUserInfo(birthday: birthday, company: company, education: education, email: email, gender: gender, hometown: hometown, industry: industry, location: location, nickname: nickname, realname: realname, occupation: occupation, signature: signature).subscribe(onNext: {data in
-                            NotificationCenter.default.post(name: UpdateUserProfile_Noti, object: nil)
-                            weakSelf.navigationController?.popViewController(animated: true)
-                        }).disposed(by: weakSelf.disposeBag)
-                    }else{
-                        weakSelf.navigationController?.popViewController(animated: true)
-                    }
-                }
+                let p = TZImagePickerController(maxImagesCount: 1, columnNumber: 3, delegate: self)
+                p!.modalPresentationStyle = .fullScreen
+                p!.allowTakeVideo = false
+                p!.allowTakePicture = false
+                p!.sortAscendingByModificationDate = true
+                p!.scaleAspectFillCrop = true
+                p!.allowPickingVideo = false
+                p!.maxImagesCount = 1
+                p!.allowCrop = true
+                p!.cropRect = self.clipFrame
+                self.present(p!, animated: true, completion: nil)
+
+//                guard UIImagePickerController.isSourceTypeAvailable(.camera) else{
+//                    alertError(msg: "当前设备相机不可用");return
+//                }
+//
+//                let p = UIImagePickerController()
+//                p.delegate = self
+//                p.modalPresentationStyle = .fullScreen
+//                p.allowsEditing = true
+//                p.sourceType = .camera
+//                p.cameraDevice = .front
+//                self.present(p, animated: true)
             }else{
-                weakSelf.navigationController?.popViewController(animated: true)
+
             }
         }
-				}
-
-				override func setUI() {
-								super.setUI()
-								view.backgroundColor = UIColor(hexString:"#fafafa")
-								tf_gender.delegate = self
-								tf_birthday.delegate = self
-								image_user.isUserInteractionEnabled = true
-								let tap = UITapGestureRecognizer(target: self, action: #selector(selectUserProfile))
-								tap.numberOfTapsRequired = 1
-								image_user.addGestureRecognizer(tap)
-				}
-
-				@objc func selectUserProfile(){
-								CommonAlertSheetView.show(items: ["拍照","从相册选择"]) {[unowned self] index in
-												if index == 0{
-
-																guard UIImagePickerController.isSourceTypeAvailable(.camera) else{
-																				alertError(msg: "当前设备相机不可用");return
-																}
-
-																let p = UIImagePickerController()
-																p.delegate = self
-																p.modalPresentationStyle = .fullScreen
-																p.allowsEditing = true
-																p.sourceType = .camera
-																p.cameraDevice = .front
-																self.present(p, animated: true)
-												}else{
-																let p = TZImagePickerController(maxImagesCount: 1, columnNumber: 3, delegate: self)
-																p!.modalPresentationStyle = .fullScreen
-																p!.allowTakeVideo = false
-																p!.allowTakePicture = false
-																p!.sortAscendingByModificationDate = true
-																p!.scaleAspectFillCrop = true
-																p!.allowPickingVideo = false
-																p!.maxImagesCount = 1
-																p!.allowCrop = true
-																p!.cropRect = self.clipFrame
-																self.present(p!, animated: true, completion: nil)
-												}
-								}
-				}
+    }
 }
 
 extension UserProfileVC:QMUITextFieldDelegate{
-				func textFieldShouldBeginEditing(_ textField: UITextField) -> Bool {
+    func textFieldShouldBeginEditing(_ textField: UITextField) -> Bool {
 
-								if textField == tf_gender{
-												let items = ["男","女","保密"]
-												CommonAlertSheetView.show(items: items) { index in
-																guard textField.text != items[index] else {return}
-																textField.text = items[index]
-												}
-								}
+        if textField == tf_gender{
+            let items = ["男","女","保密"]
+            CommonAlertSheetView.show(items: items,hiddenTitle: true) { index in
+                guard textField.text != items[index] else {return}
+                if items[index] == "保密"{
+                    textField.text = ""
+                }else{
+                    textField.text = items[index]
+                }
+            }
+        }
 
-								if textField == tf_birthday{
-												view.endEditing(true)
-												BitrhdayPickerView.show(title: "", type: .YMD) {[weak self] date in
+        if textField == tf_birthday{
+            view.endEditing(true)
+            BitrhdayPickerView.show(title: "", type: .YMD) {[weak self] date in
                 self?.tf_birthday.text = date.jq_format("yyyy-MM-dd")
-												}
-												return false
-								}
-
-								return false
-				}
+            }
+            return false
+        }
+        return false
+    }
 }
 
 extension UserProfileVC:TZImagePickerControllerDelegate{
-				public func imagePickerController(_ picker: TZImagePickerController!, didFinishPickingPhotos photos: [UIImage]!, sourceAssets assets: [Any]!, isSelectOriginalPhoto: Bool) {
-								picker.selectedAssets = NSMutableArray(array: assets)
+    public func imagePickerController(_ picker: TZImagePickerController!, didFinishPickingPhotos photos: [UIImage]!, sourceAssets assets: [Any]!, isSelectOriginalPhoto: Bool) {
+        picker.selectedAssets = NSMutableArray(array: assets)
 
         if let photo = photos.first{
-            photo.jq_scaled(to: CGSize(width: 250, height: 250)).uploadImg().subscribe(onNext: {[weak self]imageUrl in
-                guard let weakSelf = self else { return }
-                Services.updateUserAvatar(imageUrl).subscribe(onNext: {data in
-                    weakSelf.image_placeholder.isHidden = true
-                    weakSelf.image_user.sd_setImage(with: URL(string: imageUrl)!)
-                    NotificationCenter.default.post(name: UpdateUserProfile_Noti, object: nil)
-                }).disposed(by: weakSelf.disposeBag)
-            }).disposed(by: disposeBag)
+            self.userClipAvar = photo.jq_scaled(to: CGSize(width: 250, height: 250))
+//            self.image_placeholder.isHidden = true
         }
-				}
+    }
 
-				public func imagePickerController(_ picker: TZImagePickerController!, didFinishPickingAndEditingVideo coverImage: UIImage!, outputPath: String!, error errorMsg: String!) {
+    public func imagePickerController(_ picker: TZImagePickerController!, didFinishPickingAndEditingVideo coverImage: UIImage!, outputPath: String!, error errorMsg: String!) {
 
-				}
+    }
 }
 
 extension UserProfileVC:UIImagePickerControllerDelegate & UINavigationControllerDelegate{
-				//成功选取
-				public func imagePickerController(_ picker: UIImagePickerController, didFinishPickingMediaWithInfo info: [UIImagePickerController.InfoKey : Any]) {
+    //成功选取
+    public func imagePickerController(_ picker: UIImagePickerController, didFinishPickingMediaWithInfo info: [UIImagePickerController.InfoKey : Any]) {
 
-								var image:UIImage?
-								image = (info[UIImagePickerController.InfoKey.originalImage] as! UIImage)
-								let corpperVC = VPImageCropperViewController(image: image!, cropFrame: clipFrame, limitScaleRatio: Int(image!.scale))
-								corpperVC.modalPresentationStyle = .fullScreen
-								DispatchQueue.main.asyncAfter(deadline: .now()+1.0) {
-												JQ_currentViewController().present(corpperVC, animated: true, completion: nil)
-								}
+        var image:UIImage?
+        image = (info[UIImagePickerController.InfoKey.originalImage] as! UIImage)
+        let corpperVC = VPImageCropperViewController(image: image!, cropFrame: clipFrame, limitScaleRatio: Int(image!.scale))
+        corpperVC.modalPresentationStyle = .fullScreen
+        DispatchQueue.main.asyncAfter(deadline: .now()+1.0) {
+            JQ_currentViewController().present(corpperVC, animated: true, completion: nil)
+        }
 
-								unowned let weakSelf = self
-								corpperVC.imageCropperHandler { (vc, image) in
-            image.uploadImg().subscribe(onNext: {imageUrl in
-                Services.updateUserAvatar(imageUrl).subscribe(onNext: {data in
-                    weakSelf.image_user.sd_setImage(with: URL(string: imageUrl)!)
-                    weakSelf.image_placeholder.isHidden = true
-                    NotificationCenter.default.post(name: UpdateUserProfile_Noti, object: nil)
-                }).disposed(by: weakSelf.disposeBag)
-            }).disposed(by: weakSelf.disposeBag)
-								} cancelClouse: {
-												corpperVC.dismiss(animated: true) {
+        unowned let weakSelf = self
+        corpperVC.imageCropperHandler { (vc, image) in
+            weakSelf.userClipAvar = image
+//            weakSelf.image_placeholder.isHidden = true
+        } cancelClouse: {
+            corpperVC.dismiss(animated: true) {
 
-												}
-								}
-								picker.dismiss(animated: true) {
+            }
+        }
+        picker.dismiss(animated: true) {
 
-								}
-				}
+        }
+    }
 }

--
Gitblit v1.7.1