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/Market/VC/MarketContentVC.swift | 98 ++++++++++++++++++++++++++++++++++++++++++++++--- 1 files changed, 92 insertions(+), 6 deletions(-) diff --git a/DolphinEnglishLearnStudent/Moudle/Market/VC/MarketContentVC.swift b/DolphinEnglishLearnStudent/Moudle/Market/VC/MarketContentVC.swift index e5ef208..5daa03a 100644 --- a/DolphinEnglishLearnStudent/Moudle/Market/VC/MarketContentVC.swift +++ b/DolphinEnglishLearnStudent/Moudle/Market/VC/MarketContentVC.swift @@ -7,11 +7,24 @@ 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! @@ -22,10 +35,52 @@ @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() { @@ -34,20 +89,51 @@ 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) -- Gitblit v1.7.1