宽窄优行-由【嘉易行】项目成品而来
无故事王国
2023-05-24 b57da2ad2fa51029fb47f10b9e96ac8e87d7c983
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
125
126
127
128
129
130
//
//  MineGiveCouponsListVC.swift
//  OKProject
//
//  Created by alvin_y on 2020/6/15.
//  Copyright © 2020 yangwang. All rights reserved.
//
 
import UIKit
 
/// 赠送优惠券列表
class MineGiveCouponsListVC: YYTableViewController {
 
    let viewModel = MineCouponsListViewModel()
    
    /// 下一步
    private let button_next: UIButton = {
       let button = UIButton()
        button.setTitle("下一步", for: .normal)
        button.backgroundColor = ThemeColor
        button.layer.cornerRadius = 4
        button.layer.masksToBounds = true
        button.titleLabel?.font = Medium(font: 14)
        return button
    }()
    
    override func viewDidLoad() {
        super.viewDidLoad()
 
        // Do any additional setup after loading the view.
    }
    
    
    //MARK: - UI
    override func setupViews() {
        super.setupViews()
        view.backgroundColor = UIColor.color(light: UIColor.color(hexString: "#F6F6F6"), dark: UIColor.color(hexString: "#F6F6F6"))
        navigationItem.title = "选择优惠券"
        tableView.register(cellName: "TravelCouponsCell", identifier: "item")
        tableView.delegate = self
        tableView.dataSource = self
        tableView.separatorStyle = .none
        viewModel.configure(tableView: tableView)
        tableView.mj_header?.beginRefreshing()
        
        view.addSubview(button_next)
    }
    
    
    //MARK: - Rx
    override func bindRx() {
        super.bindRx()
        
        button_next.rx.tap.subscribe(onNext: {[unowned self] (_) in
            let data = self.viewModel.dataSource.value.filter { (model) -> Bool in
                return model.select
            }
            if data.count == 0{
                alert(text: "请选择优惠券")
                return
            }
            let vc = MineGiveCouponsVC(id: data.first!.id)
            vc.refresh.delegate(on: self) { (self, _) in
                self.tableView.mj_header?.beginRefreshing()
            }
            self.yy_push(vc: vc)
        }).disposed(by: disposeBag)
    }
    
    //MARK: - Layouts
    override func defineLayouts() {
        super.defineLayouts()
        tableView.snp.remakeConstraints { (make) in
            if #available(iOS 11.0, *) {
                make.top.equalTo(view.safeAreaLayoutGuide)
            } else {
                make.top.equalToSuperview()
            }
            make.left.right.equalToSuperview()
            make.bottom.equalToSuperview().offset(-54)
        }
        
        button_next.snp.makeConstraints { (make) in
            make.bottom.equalToSuperview().offset(-14)
            make.left.equalToSuperview().offset(14)
            make.right.equalToSuperview().offset(-14)
            make.height.equalTo(40)
        }
    }
 
}
// MARK: - UITableViewDelegate
extension MineGiveCouponsListVC:UITableViewDelegate{
    func tableView(_ tableView: UITableView, heightForRowAt indexPath: IndexPath) -> CGFloat {
        return 106
    }
    
    func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
        let data = viewModel.dataSource.value[indexPath.row]
        if data.select == true{
            data.select = false
        }else{
            for (vauel,item) in viewModel.dataSource.value.enumerated(){
                item.select = vauel == indexPath.row
            }
        }
        tableView.reloadData()
    }
    
    
}
 
// MARK: - UITableViewDelegate
extension MineGiveCouponsListVC:UITableViewDataSource{
    func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
        return viewModel.dataSource.value.count
    }
    
    func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
        let cell = tableView.dequeueReusableCell(withIdentifier: "item", for: indexPath) as! TravelCouponsCell
        cell.configure(model: viewModel.dataSource.value[indexPath.row])
        cell.selectionStyle = .none
        return cell
    }
    
    
    
    
    
}