From 3d8ce4866799bea7e66699acdeb86b60b0ba033c Mon Sep 17 00:00:00 2001 From: 无故事王国 <841720330@qq.com> Date: 星期一, 03 六月 2024 19:51:06 +0800 Subject: [PATCH] add --- DolphinEnglishLearnStudent/Moudle/Me/VC/AddressManageHandleVC.swift | 102 +++++++++++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 102 insertions(+), 0 deletions(-) diff --git a/DolphinEnglishLearnStudent/Moudle/Me/VC/AddressManageHandleVC.swift b/DolphinEnglishLearnStudent/Moudle/Me/VC/AddressManageHandleVC.swift index 5d7ced4..2f28e14 100644 --- a/DolphinEnglishLearnStudent/Moudle/Me/VC/AddressManageHandleVC.swift +++ b/DolphinEnglishLearnStudent/Moudle/Me/VC/AddressManageHandleVC.swift @@ -6,17 +6,119 @@ // 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 } } -- Gitblit v1.7.1