杨锴
2025-05-11 7453d2d0cef415b34323d1b91e6cfa4a6ba31178
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
//
//  WorldCupHeaderVC.swift
//  WanPai
//
//  Created by 无故事王国 on 2024/2/26.
//
 
import UIKit
import QMUIKit
import JQTools
import RxRelay
 
class WorldCupHeaderVC: BaseVC {
 
                @IBOutlet weak var btn_exchange: QMUIButton!
                @IBOutlet weak var headerImg: UIImageView!
                @IBOutlet weak var label_name: UILabel!
                @IBOutlet weak var img_QR: UIImageView!
                @IBOutlet weak var label_provinceRank: UILabel!
                @IBOutlet weak var label_yearRank: UILabel!
                @IBOutlet weak var label_cityRank: UILabel!
                @IBOutlet weak var label_winNum: UILabel!
                @IBOutlet weak var label_loseNum: UILabel!
                @IBOutlet weak var label_winRate: UILabel!
 
                var partModel:BehaviorRelay<ActivityDetailPartModel?>?
 
                var partModels = [ActivityDetailPartModel](){
                                didSet{
                                                btn_exchange.isHidden = partModels.count <= 1
                                }
                }
 
                override func viewDidLoad() {
        super.viewDidLoad()
                                view.backgroundColor = .clear
    }
 
                override func setUI() {
                                btn_exchange.isHidden = true
                                label_name.text = "暂无参赛人员"
                                label_yearRank.text = "您的\(Date().jq_nowYear())年场次排名"
 
                                setProvince(rank: 0)
                                setCity(cityName: "", rank: 0)
 
                                let tap = UITapGestureRecognizer(target: self, action: #selector(showBigPicAction))
                                img_QR.isUserInteractionEnabled = true
                                img_QR.addGestureRecognizer(tap)
                }
 
                override func setRx() {
                                partModel?.subscribe(onNext: {[weak self]model in
                                                if let m = model{
                                                                self?.label_name.text = m.name
                                                                self?.headerImg.sd_setImage(with: URL(string: m.avatar))
                                                                if let qrCode = WorldCupUserInfoQRCodel(id: m.id, isStudent: m.isStudent).toJSONString(){
                                                                                self?.img_QR.image = UIImage.jq_GenerateQRCode(with: "\(qrCode)", width: 76)
                                                                }
                                                                self?.getData(id: m.id, isStudent: m.isStudent)
                                                }
                                }).disposed(by: disposeBag)
                }
 
                private func getData(id:Int,isStudent:Int){
                                Services.getEntrantRank(id: id, isStudent: isStudent).subscribe(onNext: {[weak self] data in
                                                if let model = data.data{
                                                                self?.setProvince(rank: model.nationalRank)
                                                                self?.setCity(cityName: model.cityName, rank: model.cityRank)
                                                                self?.label_winNum.text = "\(model.win)"
                                                                self?.label_loseNum.text = "\(model.lose)"
                                                                self?.label_winRate.text = String(format: " %.2lf%% ", model.winRate)
                                                }
                                }).disposed(by: disposeBag)
 
                }
 
                private func setProvince(rank:Int){
                                label_provinceRank.attributedText     = AttributedStringbuilder.build().add(string: "全国排名 ", withFont: .systemFont(ofSize: 14), withColor: .white).add(string: "\(rank)", withFont: .systemFont(ofSize: 28, weight: .semibold), withColor: .white).mutableAttributedString
                }
 
            @objc    private func showBigPicAction(){
 
                            if let model = partModel?.value{
                                            if let qrCode = WorldCupUserInfoQRCodel(id: model.id, isStudent: model.isStudent).toJSONString(){
                                                            QRWithTitlePreview.show(qrCode,title: model.name)
                                            }
                            }
                }
 
                private func setCity(cityName:String,rank:Int){
                                label_cityRank.attributedText    = AttributedStringbuilder.build().add(string: "\(cityName)排名 ", withFont: .systemFont(ofSize: 14), withColor: .white).add(string: "\(rank)", withFont: .systemFont(ofSize: 28, weight: .semibold), withColor: .white).mutableAttributedString
                }
 
                @IBAction func exchangeAction(_ sender: Any) {
 
                                StudentChoose2View.show(defaultStu: partModel?.value) {[weak self] item in
                                                self?.partModel?.accept(item)
                                }
                }
}