younger_times
2023-07-25 b177ecba47250faab4ead4fc2b5ed7a3f2c40696
WanPai/Root/Welfare/View/CoinStoreHeadView.swift
@@ -8,14 +8,23 @@
import UIKit
import JQTools
import QMUIKit
import RxSwift
import RxRelay
class CoinStoreHeadView: UICollectionReusableView {
    @IBOutlet weak var btn_sort: QMUIButton!
    @IBOutlet weak var btn_type: QMUIButton!
    @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 innerView:UIView!
    override func awakeFromNib() {
@@ -25,31 +34,70 @@
        btn_type.imagePosition = .right
        btn_sort.spacingBetweenImageAndTitle = 5
        btn_type.spacingBetweenImageAndTitle = 5
        tf_search.delegate = self
        tf_search.returnKeyType = .search
    }
    @IBAction func resortAction(_ sender: QMUIButton) {
        guard !sender.isSelected else {return}
        hiddenAction()
        sender.isSelected = true
        let items = Array<NormalSimpleModel>()
        CourseSubTypeView.show(inView: self.innerView, afterView: self, items: items) { m in
        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
            sender.setTitle(m.name, for: .normal)
            if m.id == 0{
                self?.viewModel.goodsType.accept(nil)
            }else{
                self?.viewModel.goodsType.accept(ExchangeType(rawValue: m.id))
            }
            self?.viewModel.beginRefresh()
            sender.isSelected = false
        } closeClouse: {
            sender.isSelected = false
        }
    }
    @IBAction func typeAction(_ sender: UIButton) {
        guard !sender.isSelected else {return}
        sender.isSelected = true
        let items = Array<NormalSimpleModel>()
        CourseSubTypeView.show(inView: self.innerView, afterView: self, items: items) {m in
            sender.isSelected = false
        } closeClouse: {
            sender.isSelected = false
        }
    private func hiddenAction(){
        btn_sort.isSelected = false
        btn_type.isSelected = false
        typeSubTypeView?.removeFromSuperview()
        resortSubTypeView?.removeFromSuperview()
    }
    @IBAction func recoredAction(_ sender: UIButton) {
@@ -66,3 +114,11 @@
    }
}
extension CoinStoreHeadView:UITextFieldDelegate{
    func textFieldShouldReturn(_ textField: UITextField) -> Bool {
        textField.resignFirstResponder()
        viewModel.beginRefresh()
        return true
    }
}