younger_times
2023-07-25 b177ecba47250faab4ead4fc2b5ed7a3f2c40696
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
//
//  CoinStoreHeadView.swift
//  WanPai
//
//  Created by 无故事王国 on 2023/6/29.
//
 
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() {
        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_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
        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
        }
    }
 
    private func hiddenAction(){
        btn_sort.isSelected = false
        btn_type.isSelected = false
        typeSubTypeView?.removeFromSuperview()
        resortSubTypeView?.removeFromSuperview()
    }
 
    @IBAction func recoredAction(_ sender: UIButton) {
//        let vc = RechargeRecordVC()
//        vc.title = "积分明细"
//        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
    }
}