杨锴
2024-09-19 642175113bf6f2c90894e689dacda50278cad570
XQMuse/Root/Me/VC/AddBankInfoVC.swift
@@ -7,11 +7,73 @@
import UIKit
import QMUIKit
import RxRelay
import RxSwift
import JQTools
let AddBank_Noti = Notification.Name.init("AddBank_Noti")
class AddBankInfoVC: BaseVC {
            struct AddBankRequestModel{
                        var bankName = BehaviorRelay<String>(value:"")
                        var bankNo = BehaviorRelay<String>(value:"")
                        var holderName = BehaviorRelay<String>(value:"")
                        var idCard = BehaviorRelay<String>(value:"")
                        var phone = BehaviorRelay<String>(value:"")
                        var code = BehaviorRelay<String>(value:"")
                        func isAuth()->Bool{
                                    guard !bankName.value.isEmpty else{
                                                alertError(msg: "请输入开户行");return false
                                    }
                                    guard !bankNo.value.isEmpty else{
                                                alertError(msg: "请输入卡号");return false
                                    }
                                    guard !holderName.value.isEmpty else{
                                                alertError(msg: "请输入持卡人");return false
                                    }
                                    guard !idCard.value.isEmpty else{
                                                alertError(msg: "请输入身份证号");return false
                                    }
                                    guard idCard.value.jq_idCard() else {
                                                alertError(msg: "请输入正确的身份证号");return false
                                    }
                                    guard !phone.value.isEmpty else{
                                                alertError(msg: "请输入手机号");return false
                                    }
                                    guard phone.value.jq_isPhone else {
                                                alertError(msg: "请输入正确的手机号");return false
                                    }
                                    guard !code.value.isEmpty else{
                                                alertError(msg: "请输入验证码");return false
                                    }
                                    guard code.value.count == 6 else {
                                                alertError(msg: "请输入正确的验证码");return false
                                    }
                                    return true
                        }
                        func toRequest()->Dictionary<String,Any>{
                                    return ["bankName":bankName.value,
                                                            "cardNo":bankNo.value,
                                                            "cardholder":holderName.value,
                                                            "identityCard":idCard.value,
                                                            "cellPhone":phone.value,
                                                            "code":code.value]
                        }
            }
            @IBOutlet weak var tf_bankName: UITextField!
            @IBOutlet weak var tf_cardNo: QMUITextField!
            @IBOutlet weak var tf_holderName: QMUITextField!
            @IBOutlet weak var tf_idcard: QMUITextField!
            @IBOutlet weak var tf_phone: QMUITextField!
            @IBOutlet weak var btn_add: UIButton!
            @IBOutlet weak var tf_code: QMUITextField!
            private var requestModel = AddBankRequestModel()
            override func viewDidLoad() {
        super.viewDidLoad()
                        title = "添加银行卡"
@@ -23,9 +85,48 @@
                        tf_idcard.inputView = idCardView
    }
            override func setRx() {
                        tf_bankName.rx.text.orEmpty.bind(to: requestModel.bankName).disposed(by: disposeBag)
                        tf_cardNo.rx.text.orEmpty.bind(to: requestModel.bankNo).disposed(by: disposeBag)
                        tf_holderName.rx.text.orEmpty.bind(to: requestModel.holderName).disposed(by: disposeBag)
                        tf_idcard.rx.text.orEmpty.bind(to: requestModel.idCard).disposed(by: disposeBag)
                        tf_phone.rx.text.orEmpty.bind(to: requestModel.phone).disposed(by: disposeBag)
                        tf_code.rx.text.orEmpty.bind(to: requestModel.code).disposed(by: disposeBag)
            }
            override func setUI() {
                        view.backgroundColor = UIColor(hexString: "f6f6f6")
                        btn_add.localGradientColor(cornerRadius: 20)
            }
            @IBAction func addhandleAction(_ sender: UIButton) {
                        view.endEditing(true)
                        if requestModel.isAuth(){
                                    Services.addBank(requestModel).subscribe(onNext: {data in
                                                alertSuccess(msg: "添加成功")
                                                NotificationCenter.default.post(name: AddBank_Noti, object: nil)
                                                DispatchQueue.main.asyncAfter(delay: 1.0) {
                                                            self.navigationController?.popViewController()
                                                }
                                    }).disposed(by: disposeBag)
                        }
            }
            @IBAction func sendCodeAction(_ sender: UIButton) {
                        guard !requestModel.phone.value.isEmpty else {
                                    alertError(msg: "请输入手机号");return
                        }
                        Services.sendCode(type: .addBank).subscribe(onNext: {_ in
                                    sender.jq_openCountDown(60, defultTitle: "发送验证码") {
                                                sender.titleLabel?.font = UIFont.systemFont(ofSize: 12)
                                                sender.setTitleColor(.black.withAlphaComponent(0.3), for: .normal)
                                    } completeClouse: {
                                                sender.titleLabel?.font = UIFont.systemFont(ofSize: 14, weight: .medium)
                                                sender.setTitleColor(UIColor(hexStr: "#96AD81"), for: .normal)
                                    }
                        }).disposed(by: disposeBag)
            }
}