younger_times
2023-07-13 c5579d0cb660bc6490fc932ad8e86248f57899d2
WanPai/Root/Course/VC/AddStudentVC.swift
@@ -6,11 +6,24 @@
//
import UIKit
import QMUIKit
import JQTools
class AddStudentVC: BaseVC {
    @IBOutlet weak var img_profile: UIImageView!
    @IBOutlet weak var tf_name: UITextField!
    @IBOutlet weak var tf_gender: UITextField!
    @IBOutlet weak var tf_idCard: UITextField!
    @IBOutlet weak var tf_height: QMUITextField!
    @IBOutlet weak var tf_weight: QMUITextField!
    @IBOutlet weak var tf_phone: QMUITextField!
    @IBOutlet weak var tf_birthday: UITextField!
    var profileImg:UIImage?
    var studentModel = StudentProfileModel()
    var verifyIdCard:Bool = false
    
    override func viewDidLoad() {
@@ -22,11 +35,111 @@
            self.tf_idCard.text = text
        }
        tf_idCard.inputView = idCardView
        let tap = UITapGestureRecognizer(target: self, action: #selector(userImgUploadAction))
        img_profile.isUserInteractionEnabled = true
        img_profile.addGestureRecognizer(tap)
    }
    override func setUI() {
        tf_birthday.delegate = self
        tf_gender.delegate = self
    }
    @objc func userImgUploadAction(){
        JQ_ImagePickerTool.getSharedInstance().singleImage({ [weak self] image in
            self?.img_profile.image = image
            self?.profileImg = image
        }, clipSize: CGSize(width: JQ_ScreenW, height: JQ_ScreenW))
    }
    @IBAction func completeAction(_ sender: UIButton) {
        guard profileImg != nil else {alertError(msg: "请上传学员头像");return}
        guard !tf_name.text!.isEmpty else {alertError(msg: tf_name.placeholder!);return}
        guard !tf_birthday.text!.isEmpty else {alertError(msg: "请选择生日");return}
        guard !tf_height.text!.isEmpty else {alertError(msg: tf_height.placeholder!);return}
        guard !tf_weight.text!.isEmpty else {alertError(msg: tf_weight.placeholder!);return}
        guard tf_height.text != "0" else {alertError(msg: "请输入正确的身高");return}
        guard tf_weight.text != "0" else {alertError(msg: "请输入正确的体重");return}
        if !tf_phone.isEmpty{
#if DEBUG
            guard tf_phone.text!.jq_isPhone else {alertError(msg: "请输入正确的手机号");return}
#endif
        }
        if !tf_idCard.isEmpty{
#if DEBUG
            guard tf_idCard.text!.jq_idCard() else {alertError(msg: "请输入正确的身份证号码");return}
#endif
        }
        studentModel.birthday = tf_birthday.text!
        studentModel.name = tf_name.text!
        studentModel.height = tf_height.text!.toDouble
        studentModel.weight = tf_weight.text!.toDouble
        studentModel.phone = tf_phone.text
        studentModel.idCard = tf_idCard.text
        studentModel.name = tf_name.text!
        if studentModel.headImg.isEmpty{
            showHUD("正在上传头像")
            profileImg!.uploadImgToService().subscribe(onNext: { [weak self] imgUrl in
                guard let weakSelf = self else { return }
                weakSelf.studentModel.headImg = imgUrl
                hiddenHUD()
                weakSelf.addStudent()
            }, onError: { error in
                hiddenHUD()
                alertError(msg: error.localizedDescription)
            }).disposed(by: disposeBag)
        }else{
            addStudent()
        }
    }
    private func addStudent(){
        Services.addStudent(studentModel).subscribe(onNext: { [weak self] data in
            guard let weakSelf = self else { return }
            alertSuccess(msg: "添加成功")
            DispatchQueue.main.asyncAfter(deadline: .now()+1) {
                weakSelf.navigationController?.popViewController()
            }
        }).disposed(by: disposeBag)
    }
    deinit{
        JQ_ImagePickerTool.destroy()
    }
}
extension AddStudentVC:UITextFieldDelegate{
    func textFieldShouldBeginEditing(_ textField: UITextField) -> Bool {
        if textField == tf_birthday{
            CommonDatePickerView.show(before: 18, after: 0, type: .YMD) { year, month, day in
                textField.text = String(format: "%ld-%02ld-%02ld", year,month,day!)
            }
            return false
        }
        if textField == tf_gender{
            let alertVC = UIAlertController(title: "性别", message: nil, preferredStyle: .actionSheet)
            alertVC.addAction(UIAlertAction(title: "男", style: .default) { _ in
                self.tf_gender.text = "男"
            })
            alertVC.addAction(UIAlertAction(title: "女", style: .default) { _ in
                self.tf_gender.text = "女"
            })
            alertVC.addAction(UIAlertAction(title: "取消", style: .cancel))
            present(alertVC, animated: true)
            return false
        }
        return true
    }
}