宽窄优行-由【嘉易行】项目成品而来
无故事王国
2023-05-25 dc1998fc1ac124f6b9a0e434ccf91103dd936409
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
    //
    //  EnterpriseAuthApplyVC.swift
    //  OKProject
    //
    //  Created by 无故事王国 on 2023/4/10.
    //  Copyright © 2023 yangwang. All rights reserved.
    //
 
import UIKit
import QMUIKit
import RxSwift
 
class EnterpriseAuthApplyVC: YYViewController {
 
    @IBOutlet weak var tf_enterprise: UITextField!
    @IBOutlet weak var tf_mail: UITextField!
    @IBOutlet weak var tf_legalPerson: UITextField!
    @IBOutlet weak var tf_legalPersonPhone: QMUITextField!
    @IBOutlet weak var tf_code: QMUITextField!
    @IBOutlet weak var tf_address: QMUITextField!
    @IBOutlet weak var btn_submit: UIButton!
    @IBOutlet weak var lb_uploadAuth: UILabel!
 
    private var viewModel = EnterpriseViewModel()
    private var uploadImgUrl = ""
 
    var model:EnterpriseInfoModel?
 
    init(model:EnterpriseInfoModel? = nil) {
        super.init(nibName: nil, bundle: nil)
        self.model = model
    }
 
    required init?(coder: NSCoder) {
        fatalError("init(coder:) has not been implemented")
    }
 
    override func viewDidLoad() {
        super.viewDidLoad()
        title = "企业认证"
        btn_submit.isEnabled = false
        lb_uploadAuth.isHidden = true
 
        if let m = model{
            tf_enterprise.text = m.name
            tf_mail.text = m.mailbox
            tf_legalPerson.text = m.legalName
            tf_legalPersonPhone.text = m.legalPhone
            tf_code.text = m.identifier
            tf_address.text = m.contactAddress
            uploadImgUrl = m.businessLicense
            lb_uploadAuth.isHidden = m.businessLicense.isEmpty
            btn_submit.setTitle("修改", for: .normal)
        }
        check()
    }
 
    @IBAction func certificateAction(_ sender: UIButton) {
        MineInfoView.instance(data: ["相册","拍照"]).show { (row) in
            if row == 0{
                openSystemPhoto(from: self, type: .photoLibrary, delegate: self)
            }else{
                openSystemPhoto(from: self, type: .camera, delegate: self)
            }
        }
    }
 
    @IBAction func submitAction(_ sender: UIButton) {
        guard !tf_enterprise.text!.isEmpty else {
            alert(text: tf_enterprise.placeholder ?? "");return
        }
 
        guard !tf_mail.text!.isEmpty else {
            alert(text: tf_mail.placeholder ?? "");return
        }
 
        guard tf_mail.text!.isValidEmail else {
            alert(text: "请输入正确的邮箱");return
        }
 
        guard !tf_legalPerson.text!.isEmpty else {
            alert(text: tf_legalPerson.placeholder ?? "");return
        }
 
        guard !tf_legalPersonPhone.text!.isEmpty else {
            alert(text: tf_legalPersonPhone.placeholder ?? "");return
        }
 
        guard tf_legalPersonPhone.text!.isPhoneNum() else {
            alert(text: "请输入正确的电话号码");return
        }
 
        guard !tf_code.text!.isEmpty else {
            alert(text: tf_code.placeholder ?? "");return
        }
 
        guard !tf_address.text!.isEmpty else {
            alert(text: tf_address.placeholder ?? "");return
        }
 
        guard !uploadImgUrl.isEmpty else {
            alert(text: "请上传三证合一");return
        }
 
        viewModel.submitEnterprise(id:model?.id,name: tf_enterprise.text!, mailbox: tf_mail.text!, legalName: tf_legalPerson.text!, legalPhone: tf_legalPersonPhone.text!, identifier: tf_code.text!, contactAddress: tf_address.text!, businessLicense: uploadImgUrl) { response in
            switch response {
                case .success(_):
 
                    let contentText =  self.model == nil ? "提交成功!":"修改成功!"
                    alert(popup: .single, title: "提示", text: contentText, submitTitle: "确定",cancelTitle: nil) {
                        NotificationCenter.default.post(name: EnterPriseAuth_Noti, object: nil)
                        for (index,subVC) in (self.navigationController?.viewControllers ?? []).enumerated(){
                            if subVC is EnterpriseAuthApplyVC{
                                self.yy_popToVC(index: index);break
                            }
                        }
                    } cancelClick: {
 
                    }
                case .error(let error):
                    alert(text: error.localizedDescription)
            }
        }
    }
 
 
    private func check(){
        let sequece = Observable.combineLatest(tf_enterprise.rx.text.orEmpty,tf_mail.rx.text.orEmpty,tf_legalPerson.rx.text.orEmpty,tf_legalPersonPhone.rx.text.orEmpty,tf_code.rx.text.orEmpty,tf_address.rx.text.orEmpty)
 
        sequece.subscribe {[weak self] v1,v2,v3,v4,v5,v6 in
            let status = !(v1.isEmpty || v2.isEmpty || v3.isEmpty || v4.isEmpty || v5.isEmpty || v6.isEmpty)
            self?.btn_submit.isEnabled = status
            if status{
                self?.btn_submit.backgroundColor = UIColor(hexString: "#45B494")
            }else{
                self?.btn_submit.backgroundColor = UIColor(hexString: "#818287")
            }
 
        }.disposed(by: disposeBag)
 
    }
 
        /// 上传头像
    func uploadAvatar(_ image:UIImage)  {
        YYAliyunOSSManager.shared.uploadImage(key: "\(Date().timeStamp())", image: image).subscribe(onNext: {[unowned self] (url) in
            self.uploadImgUrl = url
            self.lb_uploadAuth.isHidden = false
        }, onError: { (error) in
            alert(text: error.localizedDescription)
        }).disposed(by: disposeBag)
    }
}
 
extension EnterpriseAuthApplyVC: UINavigationControllerDelegate,UIImagePickerControllerDelegate{
        //拍照或选取照片完成
    func imagePickerController(_ picker: UIImagePickerController, didFinishPickingMediaWithInfo info: [UIImagePickerController.InfoKey : Any]) {
        self.dismiss(animated: true)
        let image =  info[UIImagePickerController.InfoKey.editedImage] as! UIImage
        self.uploadAvatar(image)
        if #available(iOS 11.0, *) {
            UIScrollView.appearance().contentInsetAdjustmentBehavior = .never
        }
    }
}