无故事王国
2023-10-19 eb795a6523edbc0fe3a3b1a3d3bea1063041efd5
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
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
//
//  ActivitySignupDetailVC.swift
//  WanPai
//
//  Created by 无故事王国 on 2023/6/15.
//
 
import UIKit
import SDWebImage
import JQTools
 
let CancelActivitySingup_Noti = Notification.Name.init("CancelActivitySingup_Noti")
 
class ActivitySignupDetailVC: BaseVC {
 
    private var id:Int!
    @IBOutlet weak var img_profile: UIImageView!
    @IBOutlet weak var label_storeNames: UILabel!
    @IBOutlet weak var label_title: UILabel!
    @IBOutlet weak var label_joinCondition: UILabel!
    @IBOutlet weak var label_address: UILabel!
    @IBOutlet weak var label_duetime: UILabel!
    @IBOutlet weak var label_starttime: UILabel!
    @IBOutlet weak var label_endtime: UILabel!
    @IBOutlet weak var label_ageScope: UILabel!
    @IBOutlet weak var label_city: UILabel!
    @IBOutlet weak var label_money: UILabel!
    @IBOutlet weak var label_totalMoney: UILabel!
    @IBOutlet weak var label_introducion: UILabel!
    @IBOutlet weak var img_enrollRequired: UIImageView!
    @IBOutlet weak var cons_imgEnrollHei: NSLayoutConstraint!
    @IBOutlet weak var btn_cancel: UIButton!
    @IBOutlet weak var tableView: UITableView!
    @IBOutlet weak var cons_tableHei: NSLayoutConstraint!
    @IBOutlet weak var label_matchStore: UILabel!
    @IBOutlet weak var btn_moreMatchStore: UIButton!
    
    var activityDetailModel:ActivityDetailModel?{
        didSet{
 
            guard let m = activityDetailModel else {return}
 
            img_profile.sd_setImage(with: URL(string: m.storeCoverDrawing))
            label_storeNames.text  = m.storeInfos.map({$0.name}).joined(separator: ",")
            btn_moreMatchStore.isHidden = (label_storeNames.text?.count ?? 0) < 50
            label_title.text = m.name
            label_joinCondition.text = m.registerCondition.strTitle + "参与"
            label_address.text = m.address
            label_duetime.text = m.registerEndTime
            label_starttime.text = m.startTime
            label_endtime.text = m.endTime
            label_ageScope.text = m.age + "岁"
            label_introducion.text = m.introduction
            label_city.text = m.province + "|" + m.city
 
            img_enrollRequired.sd_setImage(with: URL(string: m.registrationNotes)) {[weak self] image, error, type, url in
                guard let img = image else {
                    self?.cons_imgEnrollHei.constant = 0;return
                }
 
                let radio = img.size.width / img.size.height
                self?.cons_imgEnrollHei.constant = JQ_ScreenW / radio
            }
 
            if m.cashPrice != 0 {
                label_money.text =  String(format: "%@/人", m.cashPrice.currency())
                label_totalMoney.text = String(format: "合计:%@", (m.cashPrice * Double(m.participant.count)).currency())
            }
 
            if m.playPaiCoin != 0{
                label_money.text =  String(format: "%ld币/人", m.playPaiCoin)
                label_totalMoney.text = String(format: "合计:%ld币", (m.playPaiCoin * m.participant.count))
            }
 
            if m.classPrice != 0{
                label_money.text =  String(format: "%ld课时/人", m.classPrice)
                label_totalMoney.text = String(format: "合计:%ld课时", (m.classPrice * m.participant.count))
            }
 
            cons_tableHei.constant = Double(m.participant.count) * 100
            tableView.reloadData()
 
            switch m.status {
                case .prepare:
                    let name = m.apply == 1 ? "取消":"已取消"
                    let color = m.apply == 1 ? Def_ThemeColor:UIColor(hexStr: "#C0C0C0")
                    btn_cancel.isEnabled = m.apply == 1
                    btn_cancel.setTitle(name, for: .normal)
                    btn_cancel.backgroundColor = color
                case .ongoing:
                    btn_cancel.setTitle("进行中", for: .normal)
                    btn_cancel.isEnabled = false
                    btn_cancel.backgroundColor = UIColor(hexStr: "#C0C0C0")
                case .over:
                    btn_cancel.setTitle("已结束", for: .normal)
                    btn_cancel.isEnabled = false
                    btn_cancel.backgroundColor = UIColor(hexStr: "#C0C0C0")
                case .cancel:
                    btn_cancel.setTitle("已取消", for: .normal)
                    btn_cancel.isEnabled = false
                    btn_cancel.backgroundColor = UIColor(hexStr: "#C0C0C0")
                default:break
            }
        }
    }
 
    required init(id: Int) {
        super.init(nibName: nil, bundle: nil)
        self.id = id
    }
 
    required init?(coder: NSCoder) {
        fatalError("init(coder:) has not been implemented")
    }
 
 
    override func viewDidLoad() {
        super.viewDidLoad()
        title = "活动详情"
 
        Services.queryMyCompetitionInfo(id: id).subscribe(onNext: {data in
            self.activityDetailModel = data.data
        }).disposed(by: disposeBag)
    }
 
    override func setUI() {
        tableView.delegate = self
        tableView.dataSource = self
        tableView.separatorStyle = .none
        tableView.register(UINib(nibName: "StudentInfo_2_TCell", bundle: nil), forCellReuseIdentifier: "_StudentInfo_2_TCell")
        let moreBtnAttributeding = AttributedStringbuilder.build().add(string: "查看更多", withFont: UIFont.systemFont(ofSize: 12, weight: .medium), withColor: Def_ThemeColor).underLine(color: Def_ThemeColor).mutableAttributedString
        btn_moreMatchStore.setAttributedTitle(moreBtnAttributeding, for: .normal)
    }
 
    @IBAction func matchStoreAction(_ sender: UIButton) {
        if let content = activityDetailModel?.storeInfos.map({$0.name}).joined(separator: ","){
            AgreentView.show(type: .matchStore, content: content)
        }
    }
 
    @IBAction func operationAction(_ sender: UIButton) {
        CommonAlertView.show(title: "提示", content: "确认取消吗?取消后相关费用将会退还到原支付账户!") { [weak self]status in
            guard let weakSelf = self else { return }
            if status{
                Services.cancelMyCOmpetition(id: weakSelf.id).subscribe(onNext: { data in
                    alertSuccess(msg: "取消成功")
                    self?.btn_cancel.isHidden = true
                    NotificationCenter.default.post(name: CancelActivitySingup_Noti, object: nil)
                }).disposed(by: weakSelf.disposeBag)
            }
        }
    }
 
}
 
extension ActivitySignupDetailVC:UITableViewDelegate{
 
}
 
extension ActivitySignupDetailVC:UITableViewDataSource{
    func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
        let student = activityDetailModel!.participant[indexPath.row]
        let cell = tableView.dequeueReusableCell(withIdentifier: "_StudentInfo_2_TCell") as! StudentInfo_2_TCell
        cell.indexPath = indexPath
        cell.activityDetailPartModel = student
        cell.btn_edit.isHidden = true
        cell.img_radio.isHidden = true
        cell.btn_delete.isHidden = true
 
        return cell
    }
 
    func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
        return activityDetailModel?.participant.count ?? 0
    }
}