//
|
// 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)
|
}
|
}
|
}
|