| | |
| | | |
| | | import UIKit |
| | | import WebKit |
| | | import RxRelay |
| | | |
| | | class MarketContentViewModel{ |
| | | //购买数量 |
| | | var number = BehaviorRelay<Int>(value:1) |
| | | var detailModel = BehaviorRelay<MarketDetailModel?>(value:nil) |
| | | var surplusCoin = BehaviorRelay<Int>(value:0) |
| | | var goodsId = BehaviorRelay<Int>(value:0) |
| | | |
| | | // var orderNumber = BehaviorRelay<String>(value:"") |
| | | //收获地址 |
| | | var address = BehaviorRelay<[AddressModel]>(value: []) |
| | | } |
| | | |
| | | class MarketContentVC: BaseVC { |
| | | |
| | | @IBOutlet weak var scrollView: UIScrollView! |
| | | @IBOutlet weak var image_cover: UIImageView! |
| | | @IBOutlet weak var view_banner: CommonBannerView! |
| | | @IBOutlet weak var view_footer: UIView! |
| | | @IBOutlet weak var view_container: UIView! |
| | | @IBOutlet weak var label_coin: UILabel! |
| | |
| | | @IBOutlet weak var label_surplusCoin: UILabel! |
| | | @IBOutlet weak var label_costCoin: UILabel! |
| | | @IBOutlet weak var cons_footHei: NSLayoutConstraint! |
| | | @IBOutlet weak var webViewHeiCons: NSLayoutConstraint! |
| | | |
| | | private var viewModel = MarketContentViewModel() |
| | | |
| | | required init(goodsId:Int) { |
| | | super.init(nibName: nil, bundle: nil) |
| | | self.viewModel.goodsId.accept(goodsId) |
| | | } |
| | | |
| | | required init?(coder: NSCoder) { |
| | | fatalError("init(coder:) has not been implemented") |
| | | } |
| | | |
| | | override func viewDidLoad() { |
| | | super.viewDidLoad() |
| | | |
| | | Services.goodsDetail(goodsId: viewModel.goodsId.value).subscribe(onNext: {[weak self] result in |
| | | if let m = result.data{ |
| | | |
| | | let banner = m.good?.detailImg.components(separatedBy: ",").map({ url in |
| | | return CommonBannerModel(index: 0, id: 0, name: nil, resource: url, mediaType: .imageUrl) |
| | | }) |
| | | |
| | | self?.view_banner.setItems(items: banner ?? [], autoRoll: true, selectClouse: nil) |
| | | |
| | | self?.label_coin.text = "\(m.good?.integral ?? 0)" |
| | | self?.label_costCoin.text = "\(m.good?.integral ?? 0)" |
| | | self?.label_title.text = m.good?.name ?? "" |
| | | self?.label_categry.text = m.goodTypes.map({$0.name}).joined(separator: "|") |
| | | |
| | | var info_Array = Array<String>() |
| | | info_Array.append("剩余数量:\(m.good?.surplus ?? 0)") |
| | | info_Array.append("可换数量:\(m.good?.userCount ?? 0)") |
| | | info_Array.append("\(m.exchangeNumber)人兑换") |
| | | |
| | | self?.label_info.text = info_Array.joined(separator: "|") |
| | | self?.webView.loadHTMLString(m.good?.detail.jq_wrapHtml() ?? "", baseURL: nil) |
| | | self?.viewModel.detailModel.accept(m) |
| | | } |
| | | |
| | | }).disposed(by: disposeBag) |
| | | |
| | | Services.getIntegral().subscribe(onNext: {[weak self] result in |
| | | self?.label_surplusCoin.text = "剩余积分:\(result.data ?? 0)" |
| | | self?.viewModel.surplusCoin.accept(result.data ?? 0) |
| | | }).disposed(by: disposeBag) |
| | | } |
| | | |
| | | override func setUI() { |
| | |
| | | cons_footHei.constant = 54 + UIDevice.jq_safeEdges.bottom |
| | | } |
| | | |
| | | override func setRx() { |
| | | webView.scrollView.rx.observe(CGSize.self, "contentSize").map { (size) -> CGFloat? in |
| | | if let size = size{ |
| | | return size.height |
| | | } |
| | | return nil |
| | | }.subscribe(onNext: { [unowned self](height) in |
| | | if let height = height{ |
| | | self.webViewHeiCons.constant = height |
| | | } |
| | | }).disposed(by: disposeBag) |
| | | } |
| | | |
| | | |
| | | @IBAction func exchangeAction(_ sender: UIButton) { |
| | | // CommonAlertView.show(isSinple: true, content: "兑换失败,当前剩余积分不足!") { |
| | | // |
| | | // } |
| | | |
| | | let vc = MarketExchangeVC() |
| | | guard viewModel.detailModel.value?.good?.surplus != 0 else { |
| | | CommonAlertView.show(isSinple: true, content: "兑换失败,当前剩余数量不足!") { |
| | | |
| | | } |
| | | return |
| | | } |
| | | |
| | | guard viewModel.detailModel.value?.good?.userCount != 0 else { |
| | | CommonAlertView.show(isSinple: true, content: "兑换失败,当前可换数量不足!") { |
| | | |
| | | } |
| | | return |
| | | } |
| | | |
| | | guard (viewModel.detailModel.value?.good?.integral ?? 0) < viewModel.surplusCoin.value else { |
| | | CommonAlertView.show(isSinple: true, content: "兑换失败,当前剩余积分不足!") { |
| | | |
| | | } |
| | | return |
| | | } |
| | | |
| | | let vc = MarketExchangeVC(viewModel: viewModel) |
| | | vc.title = "立即兑换" |
| | | push(vc: vc) |
| | | } |
| | | |
| | | override func viewDidLayoutSubviews() { |
| | | super.viewDidLayoutSubviews() |
| | | image_cover.jq_addCorners(corner: [.topLeft,.topRight], radius: 8) |
| | | view_banner.jq_addCorners(corner: [.topLeft,.topRight], radius: 8) |
| | | view_footer.jq_addShadows(shadowColor: UIColor(hexStr: "#DEDEDE").withAlphaComponent(0.5), corner: 0, radius: 4, offset: CGSize(width: 0, height: -1), opacity: 1) |
| | | |
| | | view_container.jq_addShadows(shadowColor: UIColor(hexStr: "#D9D9D9").withAlphaComponent(0.28), corner: 8, radius: 5, offset: CGSize(width: 0, height: 2), opacity: 1) |