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