Files
yingmeng-ios-switf/yinmeng-ios/Modules/Auth/VC/AuthFillDataVC.swift
2024-04-03 20:06:02 +08:00

204 lines
5.8 KiB
Swift

//
// AuthFillDataVC.swift
// yinmeng-ios
//
// Created by yinmeng on 2024/2/22.
//
import UIKit
class AuthFillDataVC: BaseViewController, HiddenNavigationBarProtocol {
override func viewDidLoad() {
super.viewDidLoad()
loadSubViews()
}
private func loadSubViews() {
randomNick()
view.addSubview(backImgView)
view.addSubview(backBtn)
view.addSubview(titleLb)
view.addSubview(stackView)
view.addSubview(nickTextFiled)
view.addSubview(confirmBtn)
stackView.addArrangedSubview(maleBtn)
stackView.addArrangedSubview(femaleBtn)
backImgView.snp.makeConstraints { make in
make.edges.equalTo(view)
}
backBtn.snp.makeConstraints { make in
make.size.equalTo(CGSize(width: 20, height: 20))
make.left.equalTo(view).offset(16)
make.top.equalTo(view).offset(StatusBarHeight + 12)
}
backBtn.isHidden = true
titleLb.snp.makeConstraints { make in
make.centerX.equalTo(view)
make.centerY.equalTo(backBtn)
}
stackView.snp.makeConstraints { make in
make.centerX.equalTo(view)
make.height.equalTo(88)
make.top.equalTo(view).offset(StatusBarHeight + 94)
}
femaleBtn.snp.makeConstraints { make in
make.width.equalTo(140)
}
nickTextFiled.snp.makeConstraints { make in
make.left.right.equalTo(view).inset(36)
make.height.equalTo(52)
make.top.equalTo(stackView.snp.bottom).offset(32)
}
confirmBtn.snp.makeConstraints { make in
make.top.equalTo(nickTextFiled.snp.bottom).offset(40)
make.left.right.equalTo(view).inset(36)
make.height.equalTo(52)
}
}
private lazy var backImgView: UIImageView = {
let imageView = UIImageView()
imageView.image = UIImage(named: "auth_login_bg")
imageView.isUserInteractionEnabled = true
imageView.layer.masksToBounds = true
imageView.contentMode = .scaleAspectFill
return imageView
}()
private lazy var backBtn: UIButton = {
let button = UIButton(type: .custom)
button.setImage(UIImage(named: "public_back_white"), for: .normal)
button.setImage(UIImage(named: "public_back_white"), for: .selected)
button.addTarget(self, action: #selector(backBtnAction), for: .touchUpInside)
return button
}()
private lazy var titleLb: UILabel = {
let label = UILabel()
label.textColor = .white
label.textAlignment = .center
label.text = "填写资料"
label.font = UIFont.systemFont(ofSize: 18, weight: .medium)
return label
}()
private lazy var stackView: UIStackView = {
let stackView = UIStackView()
stackView.distribution = .fillEqually
stackView.axis = .horizontal
stackView.alignment = .fill
stackView.spacing = 23
return stackView
}()
private lazy var femaleBtn: UIButton = {
let button = UIButton(type: .custom)
button.setImage(UIImage(named: "auth_login_female_normal"), for: .normal)
button.setImage(UIImage(named: "auth_login_female_select"), for: .selected)
button.addTarget(self, action: #selector(femaleBtnAction), for: .touchUpInside)
return button
}()
private lazy var maleBtn: UIButton = {
let button = UIButton(type: .custom)
button.setImage(UIImage(named: "auth_login_male_normal"), for: .normal)
button.setImage(UIImage(named: "auth_login_male_select"), for: .selected)
button.addTarget(self, action: #selector(maleBtnAction), for: .touchUpInside)
return button
}()
lazy var nickTextFiled:UITextField = {
let view = UITextField()
view.textColor = .firstText
view.font = UIFont.systemFont(ofSize: 16)
view.leftViewMode = .always
let leftView = UIView()
leftView.frame = CGRect(x: 0, y: 0, width: 20, height: 52)
leftView.backgroundColor = .clear
view.leftView = leftView
let attribute = NSMutableAttributedString(string: "请输入昵称", attributes: [NSAttributedString.Key.font:UIFont.systemFont(ofSize: 16), NSAttributedString.Key.foregroundColor:UIColor.placeholderText])
view.attributedPlaceholder = attribute
view.backgroundColor = .white
view.layer.masksToBounds = true
view.layer.cornerRadius = 26
view.addTarget(self, action: #selector(nickTextFiledDidChange), for: .editingChanged)
return view
}()
private lazy var confirmBtn: UIButton = {
let button = UIButton(type: .custom)
button.setBackgroundImage(UIImage.gradient(hexsString: ["#FF60FD", "#8974FF", "#69EBFF"]), for: .normal)
button.setImage(UIImage(named: "auth_login_confirm"), for: .normal)
button.layer.masksToBounds = true
button.layer.cornerRadius = 26
button.addTarget(self, action: #selector(confirmBtnAction), for: .touchUpInside)
return button
}()
fileprivate func randomNick() {
RequestGet(path: "random/nick/get", parma: [:]) { text in
if let text = text as? String {
self.nickTextFiled.text = text
}
} fail: { code, msg in
}
}
@objc func femaleBtnAction() {
self.femaleBtn.isSelected = true
self.maleBtn.isSelected = false
}
@objc func maleBtnAction() {
self.maleBtn.isSelected = true
self.femaleBtn.isSelected = false
}
@objc func backBtnAction() {
self.dismiss(animated: true, completion: nil)
AuthViewModel.authVM.logout()
}
@objc func nickTextFiledDidChange(_ textField: UITextField) {
if let text = textField.text {
if text.count > 15 {
textField.text = text.substring(start: 0, 15)
}
}
}
@objc func confirmBtnAction() {
if maleBtn.isSelected == true || femaleBtn.isSelected == true {
if let nick = nickTextFiled.text, nick.count > 0 {
let gender = self.maleBtn.isSelected ? "1" : "2"
let params:[String: Any] = ["avatar":"https://image.ymlive.fun/default_avatar.png", "nick": nick, "gender":gender, "uid": AuthManager.userUid, "ticket":AuthManager.ticket]
RequestPost(path: "user/v2/update", parma: params) { data in
HUDTool.show(with: "更新成功")
keyWindow.rootViewController = BaseTabBarViewController()
} fail: { code, message in
HUDTool.show(with: message)
}
} else {
HUDTool.show(with: "请输入昵称")
}
} else {
HUDTool.show(with: "请选择性别")
}
}
}