add
无故事王国
2024-06-03 3d8ce4866799bea7e66699acdeb86b60b0ba033c
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)