| | |
| | | |
| | | import UIKit |
| | | import RxRelay |
| | | |
| | | class MarketViewModel{ |
| | | var number = BehaviorRelay<Int>(value:1) |
| | | } |
| | | import QMUIKit |
| | | |
| | | class MarketExchangeVC: BaseVC { |
| | | @IBOutlet weak var scrollView: UIScrollView! |
| | |
| | | @IBOutlet weak var view_container: UIView! |
| | | @IBOutlet weak var field_number: UITextField! |
| | | @IBOutlet weak var cons_footerHei: NSLayoutConstraint! |
| | | @IBOutlet weak var label_address: UILabel! |
| | | @IBOutlet weak var label_address_info: UILabel! |
| | | @IBOutlet weak var img_cover: UIImageView! |
| | | @IBOutlet weak var label_goodsName: UILabel! |
| | | @IBOutlet weak var label_coin: UILabel! |
| | | @IBOutlet weak var btn_add: UIButton! |
| | | @IBOutlet weak var btn_reduce: UIButton! |
| | | @IBOutlet weak var textView_remark: QMUITextView! |
| | | @IBOutlet weak var label_num: UILabel! |
| | | @IBOutlet weak var label_needCoin: UILabel! |
| | | @IBOutlet weak var label_orderNum: UILabel! |
| | | @IBOutlet weak var label_footNeedCoin: UILabel! |
| | | |
| | | private var viewModel = MarketViewModel() |
| | | private var viewModel = MarketContentViewModel() |
| | | |
| | | required init(viewModel:MarketContentViewModel) { |
| | | super.init(nibName: nil, bundle: nil) |
| | | self.viewModel = viewModel |
| | | } |
| | | |
| | | required init?(coder: NSCoder) { |
| | | fatalError("init(coder:) has not been implemented") |
| | | } |
| | | |
| | | override func viewDidLoad() { |
| | | super.viewDidLoad() |
| | | |
| | | Services.redeemNow(goodId: viewModel.detailModel.value!.good!.id).subscribe(onNext: {result in |
| | | self.label_orderNum.text = result.data?.orderNumber ?? "" |
| | | self.viewModel.detailModel.accept(result.data) |
| | | }).disposed(by: disposeBag) |
| | | |
| | | Services.addressList().subscribe(onNext: {[weak self]result in |
| | | self?.viewModel.address.accept(result.data ?? []) |
| | | if let first = result.data?.filter({$0.isDefault == 1}).first{ |
| | | self?.label_address.text = first.address |
| | | self?.label_address_info.text = first.recipient + "|" + first.recipientPhone |
| | | }else{ |
| | | self?.label_address.text = "新建收货地址" |
| | | self?.label_address_info.isHidden = true |
| | | } |
| | | }).disposed(by: disposeBag) |
| | | |
| | | self.img_cover.sd_setImage(with: URL(string: viewModel.detailModel.value?.good?.coverImg)) |
| | | self.label_goodsName.text = viewModel.detailModel.value?.good?.name ?? "" |
| | | self.label_coin.text = "\(viewModel.detailModel.value?.good?.integral ?? 0)" |
| | | if viewModel.detailModel.value?.good?.userCount == 1{ |
| | | btn_add.isEnabled = false |
| | | btn_reduce.isEnabled = false |
| | | field_number.isEnabled = false |
| | | } |
| | | } |
| | | |
| | | override func setUI() { |
| | |
| | | override func setRx() { |
| | | viewModel.number.subscribe(onNext: {[weak self] num in |
| | | self?.field_number.text = "\(num)" |
| | | self?.label_num.text = "\(num)" |
| | | let totalCoin = num * (self?.viewModel.detailModel.value?.good?.integral ?? 0) |
| | | self?.label_needCoin.text = "\(totalCoin)" |
| | | self?.label_footNeedCoin.text = "\(totalCoin)" |
| | | }).disposed(by: disposeBag) |
| | | } |
| | | |
| | | |
| | | @IBAction func addressAction(_ sender: Any) { |
| | | if viewModel.address.value.filter({$0.isDefault == 1}).count > 0{ |
| | | let vc = AddressManageVC(type: .choose) |
| | | vc.title = "地址管理" |
| | | push(vc: vc) |
| | | }else{ |
| | | let vc = AddressManageVC(type: .handle) |
| | | vc.title = "地址管理" |
| | | push(vc: vc) |
| | | } |
| | | } |
| | | |
| | | @IBAction func addNumAction(_ sender: UIButton) { |
| | | let num = viewModel.number.value + 1 |
| | | var num = viewModel.number.value + 1 |
| | | if num >= viewModel.detailModel.value?.good?.userCount ?? 0{ |
| | | num = viewModel.detailModel.value?.good?.userCount ?? 0 |
| | | sender.isEnabled = false |
| | | } |
| | | viewModel.number.accept(num) |
| | | } |
| | | |
| | | @IBAction func reduceAction(_ sender: UIButton) { |
| | | let num = max(1,viewModel.number.value - 1) |
| | | viewModel.number.accept(num) |
| | | btn_add.isEnabled = true |
| | | } |
| | | |
| | | @IBAction func exchangeAction(_ sender: UIButton) { |
| | | |
| | | guard viewModel.address.value.filter({$0.isDefault == 1}).count != 0 else{ |
| | | CommonAlertView.show(content: "请先设置收货地址") { |
| | | let vc = AddressManageVC(type: .handle) |
| | | vc.title = "地址管理" |
| | | self.push(vc: vc) |
| | | } |
| | | return |
| | | } |
| | | |
| | | CommonAlertView.show(content: "确认兑换当前商品吗?") { |
| | | let vc = ExchangeResultVC(resultType: .success) |
| | | vc.title = "商品详情" |
| | | self.push(vc: vc) |
| | | let goodsId = self.viewModel.detailModel.value!.good!.id |
| | | let num = self.viewModel.number.value |
| | | let orderNumber = self.viewModel.detailModel.value?.orderNumber ?? "" |
| | | let recipientId = self.viewModel.detailModel.value?.recipient?.id ?? 0 |
| | | |
| | | Services.goodsExchangeStudy(goodsId: goodsId, number: num, orderNumber: orderNumber, recipientId: recipientId, remark: self.textView_remark.text!).subscribe(onNext: {_ in |
| | | let vc = ExchangeResultVC(resultType: .success) |
| | | vc.title = "商品详情" |
| | | self.push(vc: vc) |
| | | }).disposed(by: self.disposeBag) |
| | | } |
| | | } |
| | | } |