宽窄优行-由【嘉易行】项目成品而来
younger_times
2023-07-05 0d8f5fc8a516bfd07e425909e4a4432600572ee7
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
//
//  ChangeControllerVC.swift
//  OKProject
//
//  Created by Sweet on 2020/12/25.
//  Copyright © 2020 yangwang. All rights reserved.
//
 
import UIKit
import IQKeyboardManager
class ChangeControllerVC: YYViewController {
    var integral = 0
    let userInfoViewModel = HomeLeftMenuViewModel()
    var id =  0
    var viewModel = PointsViewModel()
    var addressFomrData  =  [String]()
    @IBOutlet weak var remrkTF: IQTextView!
    @IBOutlet weak var phoneTF: UITextField!
    @IBOutlet weak var addressTF: UITextField!
    @IBOutlet weak var areTF: UITextField!
    @IBOutlet weak var nameTf: UITextField!
    override func viewDidLoad() {
        super.viewDidLoad()
        title = "收件人信息"
        nameTf.delegate = self
        areTF.delegate = self
        constrainsTextInputLength(length: 11, textField: phoneTF).disposed(by: disposeBag)
        constrainsTextInputLength(length: 100, textView: remrkTF).disposed(by: disposeBag)
        
    }
    
    func loadUserInfo(){
        userInfoViewModel.queryUserInfo()
        userInfoViewModel.requestSubject
            .subscribe(onNext: {[unowned self] (status) in
                switch status{
                case .loading:
                    break
                case .success(let model):
                    guard let data = model as? UserInfoModel else{return}
                    app.userInfo.save(model: data)
                    alert(popup: .single, title: "提示", text: "兑换成功!", submitTitle: "确定", cancelTitle: "") {
                        for vc in (self.navigationController?.children)!{
                            if vc.isKind(of: MyPointsVC.classForCoder()) {
                                self.navigationController?.popToViewController(vc, animated: true)
                            }
                        }
                    } cancelClick: {
                    }
                    break
                case .error(let error):
                    alert(text: error.localizedDescription)
                    break
                }
            }).disposed(by: rx.disposeBag)
    }
    @IBAction func commitAction(_ sender: Any) {
        if nameTf.text!.isEmpty {
            alert(text: "请输入收件人名称")
            return
        }
        if areTF.text!.isEmpty {
            alert(text: "请选择收件人地区")
            return
        }
        if addressTF.text!.isEmpty {
            alert(text: "请输入收件人地址")
            return
        }
        if phoneTF.text!.isEmpty {
            alert(text: "请输入收件人电话")
            return
        }
        if !phoneTF.text!.isPhoneNum() {
            alert(text: "请输入收件人正确电话")
            return
        }
        
        alert(popup: .double, title: "提示", text: "是否确认兑换?", submitTitle: "确定", cancelTitle: "取消") {
            self.change()
        } cancelClick: {
        }
        
    }
    func change(){
        YYAlertKit.displayActivity()
        let consigneeAddress = areTF.text!+addressTF.text!
        viewModel.commitChange(consigneeAddress: consigneeAddress, consigneeName: nameTf.text!, consigneePhone: phoneTF.text!, goodsId:id , remark: remrkTF.text!).subscribe { (r) in
            YYAlertKit.dismiss()
            switch r {
            case.success(_):
                self.loadUserInfo()
                break
            case .failure(let error):
                alert(text: error.localizedDescription)
                break
            }
        } onError: { (error) in
            alert(text: error.localizedDescription)
        } onCompleted: {
            
        } onDisposed: {
            
        }
        .disposed(by: disposeBag)
    }
    
}
extension ChangeControllerVC:UITextFieldDelegate{
    func textFieldShouldBeginEditing(_ textField: UITextField) -> Bool {
        if textField == areTF {
            view.endEditing(true)
            BRAddressPickerView.showAddressPicker(withDefaultSelected: addressFomrData, isAutoSelect: false, themeColor: ThemeColor) { (BRProvinceModel, BRCityModel, BRAreaModel) in
                self.areTF.text = BRProvinceModel!.name +  BRCityModel!.name + BRAreaModel!.name
                self.addressFomrData = [BRProvinceModel!.name ,BRCityModel!.name ,BRAreaModel!.name]
            }
            return false
        }
        return true
    }
    func textField(_ textField: UITextField, shouldChangeCharactersIn range: NSRange, replacementString string: String) -> Bool {
        if textField == nameTf {
            let text = textField.text!
            
            let len = text.count + string.count - range.length
            
            return len<=12
        }
        return false
    }
}