//
|
// CoinStoreHeadView.swift
|
// WanPai
|
//
|
// Created by 无故事王国 on 2023/6/29.
|
//
|
|
import UIKit
|
import JQTools
|
import QMUIKit
|
import RxSwift
|
import RxRelay
|
|
class CoinStoreHeadView: UICollectionReusableView,JQNibView {
|
|
@IBOutlet weak var btn_sort: QMUIButton!
|
@IBOutlet weak var btn_type: QMUIButton!
|
@IBOutlet weak var btn_store: QMUIButton!
|
|
@IBOutlet weak var view_profile: UIView!
|
@IBOutlet weak var shadowView: UIView!
|
@IBOutlet weak var img_cover: UIImageView!
|
@IBOutlet weak var label_username: UILabel!
|
@IBOutlet weak var label_coin: UILabel!
|
@IBOutlet weak var tf_search: UITextField!
|
private var resortSubTypeView:CourseSubTypeView?
|
private var typeSubTypeView:CourseSubTypeView?
|
private var disposeBag = DisposeBag()
|
|
var viewModel:CoinStoreViewModel!
|
var integral:Int = 0
|
var innerView:UIView!
|
|
override func awakeFromNib() {
|
super.awakeFromNib()
|
shadowView.jq_addShadows(shadowColor: UIColor(hexStr: "DFDFDF").withAlphaComponent(0.5), corner: 0, radius: 2, offset: CGSize(width: 0, height: 3), opacity: 1)
|
btn_sort.imagePosition = .right
|
btn_type.imagePosition = .right
|
btn_store.imagePosition = .right
|
btn_sort.spacingBetweenImageAndTitle = 5
|
btn_type.spacingBetweenImageAndTitle = 5
|
btn_store.spacingBetweenImageAndTitle = 5
|
tf_search.delegate = self
|
tf_search.returnKeyType = .search
|
}
|
|
|
@IBAction func resortAction(_ sender: QMUIButton) {
|
guard !sender.isSelected else {return}
|
hiddenAction()
|
sender.isSelected = true
|
var items = Array<NormalSimpleModel>()
|
items.append(NormalSimpleModel(id: 0, name: "默认排序"))
|
items.append(NormalSimpleModel(id: 1, name: "积分从高到低"))
|
items.append(NormalSimpleModel(id: 2, name: "积分从低到高"))
|
items.append(NormalSimpleModel(id: 3, name: "兑换从高到低"))
|
let model = items.filter({$0.id == viewModel.rank.value?.rawValue})
|
resortSubTypeView = CourseSubTypeView.show(inView: self.innerView, afterView: self, items: items, selectModel: model.first) {[weak self] m in
|
if m.id == 0{
|
self?.viewModel.rank.accept(nil)
|
}else{
|
self?.viewModel.rank.accept(Sort2Type(rawValue: m.id))
|
}
|
sender.setTitle(m.name, for: .normal)
|
self?.viewModel.beginRefresh()
|
sender.isSelected = false
|
} closeClouse: {
|
sender.isSelected = false
|
}
|
}
|
|
@IBAction func searchAction(_ sender: Any) {
|
viewModel.beginRefresh()
|
}
|
|
@IBAction func typeAction(_ sender: UIButton) {
|
guard !sender.isSelected else {return}
|
hiddenAction()
|
sender.isSelected = true
|
var items = Array<NormalSimpleModel>()
|
items.append(NormalSimpleModel(id: 0, name: "全部"))
|
items.append(NormalSimpleModel(id: 1, name: "实物商品"))
|
items.append(NormalSimpleModel(id: 2, name: "课包商品"))
|
items.append(NormalSimpleModel(id: 3, name: "门票商品"))
|
items.append(NormalSimpleModel(id: 4, name: "优惠券"))
|
|
let model = items.filter({$0.id == viewModel.goodsType.value?.rawValue})
|
typeSubTypeView = CourseSubTypeView.show(inView: self.innerView, afterView: self, items: items, selectModel: model.first) {[weak self] m in
|
if m.id == 0{
|
self?.viewModel.goodsType.accept(nil)
|
sender.setTitle("商品类型", for: .normal)
|
}else{
|
self?.viewModel.goodsType.accept(ExchangeType(rawValue: m.id))
|
sender.setTitle(m.name, for: .normal)
|
}
|
self?.viewModel.beginRefresh()
|
sender.isSelected = false
|
} closeClouse: {
|
sender.isSelected = false
|
}
|
}
|
|
private func hiddenAction(){
|
btn_sort.isSelected = false
|
btn_type.isSelected = false
|
typeSubTypeView?.removeFromSuperview()
|
resortSubTypeView?.removeFromSuperview()
|
}
|
|
override func layoutSubviews() {
|
super.layoutSubviews()
|
view_profile.jq_addShadows(shadowColor: UIColor(hexStr: "#ACACAC").withAlphaComponent(0.31), corner: 4, radius: 5, offset: CGSize(width: 0, height: 1), opacity: 1)
|
}
|
|
@IBAction func storeAction(_ sender: UIButton) {
|
StoresChooseView.show { [weak self] storeId,storeName in
|
self?.btn_store.setTitle(storeName, for: .normal)
|
self?.viewModel.shopId.accept(storeId)
|
self?.viewModel.beginRefresh()
|
}
|
}
|
|
|
@IBAction func recoredAction(_ sender: UIButton) {
|
let vc = RechargeRecordVC(coin: integral,subtype: .integral)
|
JQ_currentViewController().jq_push(vc: vc)
|
}
|
|
|
|
@IBAction func exchangeRecordAction(_ sender: UIButton) {
|
let vc = WelfareExchangeRecordListVC()
|
JQ_currentViewController().jq_push(vc: vc)
|
}
|
|
}
|
|
extension CoinStoreHeadView:UITextFieldDelegate{
|
func textFieldShouldReturn(_ textField: UITextField) -> Bool {
|
textField.resignFirstResponder()
|
viewModel.beginRefresh()
|
return true
|
}
|
}
|