//
|
// MarketContentVC.swift
|
// DolphinEnglishLearnManager
|
//
|
// Created by 无故事王国 on 2024/5/21.
|
//
|
|
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 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_title: UILabel!
|
@IBOutlet weak var label_categry: UILabel!
|
@IBOutlet weak var label_info: UILabel!
|
@IBOutlet weak var webView: WKWebView!
|
@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>()
|
|
if m.residueNumber != nil{
|
info_Array.append("剩余数量:\(m.residueNumber ?? 0)")
|
}
|
|
if m.good?.userCount != nil{
|
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() {
|
super.setUI()
|
scrollView.contentInset = UIEdgeInsets(top: 26, left: 0, bottom: 31, right: 0)
|
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) {
|
|
|
guard viewModel.detailModel.value?.residueNumber != 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()
|
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)
|
}
|
}
|