| | |
| | | // |
| | | |
| | | import UIKit |
| | | import QMUIKit |
| | | import RxRelay |
| | | |
| | | class AddressManageHandleViewModel{ |
| | | var userName = BehaviorRelay<String?>(value: nil) |
| | | var phone = BehaviorRelay<String?>(value: nil) |
| | | var provinceModel = BehaviorRelay<AddressTreeModel?>(value: nil) |
| | | var cityModel = BehaviorRelay<AddressTreeModel?>(value: nil) |
| | | var countryModel = BehaviorRelay<AddressTreeModel?>(value: nil) |
| | | var detailAddress = BehaviorRelay<String?>(value: nil) |
| | | var isDefault = BehaviorRelay<Bool>(value: false) |
| | | } |
| | | |
| | | class AddressManageHandleVC: BaseVC { |
| | | |
| | | @IBOutlet weak var tf_name: UITextField! |
| | | @IBOutlet weak var tf_phone: QMUITextField! |
| | | @IBOutlet weak var tf_address: QMUITextField! |
| | | @IBOutlet weak var tf_addressContent: QMUITextField! |
| | | @IBOutlet weak var btn_isDefault: UIButton! |
| | | |
| | | let viewModel = AddressManageHandleViewModel() |
| | | private var updateModel:AddressModel? |
| | | |
| | | @IBOutlet weak var view_container: UIView! |
| | | override func viewDidLoad() { |
| | | super.viewDidLoad() |
| | | |
| | | if let updateModel{ |
| | | tf_name.text = updateModel.recipient |
| | | tf_phone.text = updateModel.recipientPhone |
| | | tf_address.text = updateModel.province + updateModel.city |
| | | tf_addressContent.text = updateModel.address |
| | | btn_isDefault.isSelected = updateModel.isDefault == 1 |
| | | |
| | | viewModel.userName.accept(updateModel.recipient) |
| | | viewModel.phone.accept(updateModel.recipientPhone) |
| | | viewModel.detailAddress.accept(updateModel.address) |
| | | |
| | | viewModel.provinceModel.accept(AddressTreeModel(id: 0, name: updateModel.province, code: updateModel.provinceCode, parentId: 0, children: nil)) |
| | | viewModel.cityModel.accept(AddressTreeModel(id: 0, name: updateModel.city, code: updateModel.cityCode, parentId: 0, children: nil)) |
| | | } |
| | | } |
| | | |
| | | init(_ updateModel:AddressModel? = nil) { |
| | | super.init(nibName: nil, bundle: nil) |
| | | self.updateModel = updateModel |
| | | } |
| | | |
| | | required init?(coder: NSCoder) { |
| | | fatalError("init(coder:) has not been implemented") |
| | | } |
| | | |
| | | override func setUI() { |
| | | super.setUI() |
| | | view_container.jq_addShadows(shadowColor: UIColor(hexStr: "#D9D9D9").withAlphaComponent(0.28), corner: 8, radius: 20, offset: CGSize(width: 0, height: 2), opacity: 1) |
| | | tf_address.delegate = self |
| | | } |
| | | |
| | | override func setRx() { |
| | | tf_name.rx.text.bind(to: viewModel.userName).disposed(by: disposeBag) |
| | | tf_phone.rx.text.bind(to: viewModel.phone).disposed(by: disposeBag) |
| | | tf_addressContent.rx.text.bind(to: viewModel.detailAddress).disposed(by: disposeBag) |
| | | } |
| | | |
| | | @IBAction func chooseDefaultAction(_ sender: UIButton) { |
| | | sender.isSelected = !sender.isSelected |
| | | } |
| | | |
| | | @IBAction func saveAction(_ sender: UIButton) { |
| | | guard !(viewModel.userName.value?.isEmpty ?? true) else { |
| | | alert(msg: "请输入收件人姓名");return |
| | | } |
| | | |
| | | guard !(viewModel.phone.value?.isEmpty ?? true) else { |
| | | alert(msg: "请输入收件人电话");return |
| | | } |
| | | |
| | | guard viewModel.phone.value!.jq_isPhone else { |
| | | alert(msg: "请输入正确的手机号码");return |
| | | } |
| | | |
| | | guard viewModel.cityModel.value != nil else { |
| | | alert(msg: "请选择所在城市");return |
| | | } |
| | | |
| | | guard !(viewModel.detailAddress.value?.isEmpty ?? true) else { |
| | | alert(msg: "请输入详细地址");return |
| | | } |
| | | |
| | | Services.addressSaveOrUpdate(id: updateModel?.id, province: viewModel.provinceModel.value, city: viewModel.cityModel.value, country: nil, userName: viewModel.userName.value, userPhone: viewModel.phone.value, isDefault: btn_isDefault.isSelected, detailAddress: viewModel.detailAddress.value ?? "").subscribe(onNext: {_ in |
| | | if self.updateModel != nil{ |
| | | alertSuccess(msg: "编辑成功") |
| | | }else{ |
| | | alertSuccess(msg: "添加成功") |
| | | } |
| | | |
| | | self.navigationController?.popViewController() |
| | | NotificationCenter.default.post(name: AddressManage_Refresh_Noti, object: nil) |
| | | }).disposed(by: disposeBag) |
| | | } |
| | | } |
| | | |
| | | extension AddressManageHandleVC:QMUITextFieldDelegate{ |
| | | |
| | | func textFieldShouldBeginEditing(_ textField: UITextField) -> Bool { |
| | | CityAddressPickerView.show(title: "选择省市区") {[weak self] province, city, country in |
| | | self?.viewModel.provinceModel.accept(province) |
| | | self?.viewModel.cityModel.accept(city) |
| | | self?.viewModel.countryModel.accept(country) |
| | | |
| | | textField.text = "\(province?.name ?? "") \(city?.name ?? "") \(country?.name ?? "")" |
| | | } |
| | | return false |
| | | } |
| | | } |