//
|
// WorldCupContentDetailVC.swift
|
// WanPai
|
//
|
// Created by 无故事王国 on 2024/2/28.
|
//
|
|
import UIKit
|
import QMUIKit
|
import JQTools
|
import WebKit
|
|
class WorldCupContentDetailVC: BaseVC {
|
|
@IBOutlet weak var view_banner: UIView!
|
// @IBOutlet weak var label_storeNames: UILabel!
|
@IBOutlet weak var label_title: UILabel!
|
@IBOutlet weak var label_hot: 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_money_total: UILabel!
|
@IBOutlet weak var label_introducion: UILabel!
|
@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!
|
@IBOutlet weak var webView: WKWebView!
|
@IBOutlet weak var cons_webHei: NSLayoutConstraint!
|
@IBOutlet weak var cons__cancelBtnHei: NSLayoutConstraint!
|
|
private var id:Int!
|
private lazy var bannerView:CommonBannerView = {
|
let v = CommonBannerView()
|
return v
|
}()
|
|
private var detailModel:WorldCupDetailModel?
|
|
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.getMyWorldCupInfo(id: id).subscribe(onNext: {[weak self]data in
|
if let model = data.data{
|
self?.detailModel = model
|
let imgs = model.infoImg.components(separatedBy: ",")
|
var items = [CommonBannerModel]()
|
for (index,img) in imgs.enumerated(){
|
items.append(CommonBannerModel(index: index,resource: img,mediaType: .imageUrl))
|
}
|
self?.bannerView.setItems(items: items)
|
self?.label_title.text = model.name
|
self?.label_hot.text = "\(model.heat)"
|
if model.registrationClosingTime == nil{
|
self?.label_duetime.text = model.endTime
|
}else{
|
self?.label_duetime.text = model.registrationClosingTime
|
}
|
|
self?.label_starttime.text = model.startTime
|
self?.label_endtime.text = model.endTime
|
self?.label_ageScope.text = model.age + "岁"
|
if model.gender == 0{
|
self?.label_joinCondition.text = "全部"
|
}else if model.gender == 1{
|
self?.label_joinCondition.text = "仅限男生"
|
}else{
|
self?.label_joinCondition.text = "仅限女生"
|
}
|
self?.label_introducion.text = model.intro
|
|
|
switch model.payType {
|
case .aliPay,.wechat:
|
self?.label_money.text = "¥\(model.unitPrice.jq_formatFloat)/人"
|
self?.label_money_total.text = String(format: "合计:¥%.2f", model.expense)
|
case .coin:
|
self?.label_money.text = "\(model.unitPrice.jq_formatFloat) 玩湃币/人"
|
self?.label_money_total.text = String(format: "合计:%.2f 玩湃币", model.expense)
|
case .courseNum:
|
self?.label_money.text = "\(model.unitPrice.jq_formatFloat) 课时/人"
|
self?.label_money_total.text = String(format: "合计:%.2f 课时", model.expense)
|
case .free:
|
self?.label_money.text = "免费"
|
self?.label_money_total.text = "免费"
|
default:
|
self?.label_money.text = "未知"
|
self?.label_money_total.text = "未知"
|
}
|
|
|
self?.label_address.text = model.address
|
self?.label_city.text = [model.province,model.city].joined(separator: "|")
|
self?.label_matchStore.text = model.storeInfos.map({$0.name}).joined(separator: "、")
|
self?.btn_moreMatchStore.isHidden = model.storeInfos.count == 1
|
self?.tableView.reloadData()
|
self?.webView.loadHTMLString(model.content.jq_wrapHtml(), baseURL: nil)
|
// self?.btn_cancel.isHidden = model.revocable == 0
|
// self?.cons__cancelBtnHei.constant = model.revocable == 0 ? 0:40
|
|
|
switch model.status {
|
case .cancel:
|
self?.btn_cancel.setTitle("已取消", for: .normal)
|
self?.btn_cancel.backgroundColor = .gray.withAlphaComponent(0.5)
|
self?.btn_cancel.isEnabled = false
|
case .over:
|
self?.btn_cancel.setTitle("已结束", for: .normal)
|
self?.btn_cancel.backgroundColor = .gray.withAlphaComponent(0.5)
|
self?.btn_cancel.isEnabled = false
|
case .ongoing:
|
self?.btn_cancel.setTitle("进行中", for: .normal)
|
self?.btn_cancel.backgroundColor = .gray.withAlphaComponent(0.5)
|
self?.btn_cancel.isEnabled = false
|
default:
|
if let endDate = model.registrationClosingTime{
|
let endDateTimeInterval = Date.jq_StringToTimeInterval(model.startTime, "yyyy-MM-dd HH:mm")
|
if Date.jq_CalByDays(startDate: Date(), endDate: Date(timeIntervalSince1970: endDateTimeInterval)) <= 1{
|
self?.btn_cancel.setTitle("取消", for: .normal)
|
self?.btn_cancel.backgroundColor = .gray.withAlphaComponent(0.5)
|
self?.btn_cancel.isEnabled = false
|
}
|
|
if endDateTimeInterval < Date().timeIntervalSince1970{
|
self?.btn_cancel.setTitle("报名已截止", for: .normal)
|
self?.btn_cancel.backgroundColor = .gray.withAlphaComponent(0.5)
|
self?.btn_cancel.isEnabled = false
|
}
|
}
|
}
|
}
|
}).disposed(by: disposeBag)
|
}
|
|
override func setUI() {
|
tableView.delegate = self
|
tableView.dataSource = self
|
tableView.separatorStyle = .none
|
tableView.isScrollEnabled = false
|
tableView.register(UINib(nibName: "StudentInfo_4_TCell", bundle: nil), forCellReuseIdentifier: "_StudentInfo_4_TCell")
|
|
view_banner.addSubview(bannerView)
|
bannerView.frame = CGRect(x: 0, y: 0, width: JQ_ScreenW, height: JQ_ScreenW * 0.56)
|
}
|
|
override func setRx() {
|
tableView.rx.observe(CGSize.self, "contentSize")
|
.subscribe(onNext: { [weak self] size in
|
self?.cons_tableHei.constant = size?.height ?? 0
|
}).disposed(by: disposeBag)
|
|
|
webView.scrollView.rx.observe(CGSize.self, "contentSize").subscribe(onNext: {[weak self] size in
|
self?.cons_webHei.constant = size?.height ?? 0
|
}).disposed(by: disposeBag)
|
}
|
|
@IBAction func matchStoreAction(_ sender: UIButton) {
|
guard let detailModel = detailModel else{return}
|
let text = detailModel.storeInfos.map({$0.name}).joined(separator: "、")
|
AgreentView.show(type: .matchPoint, content: text)
|
}
|
|
@IBAction func cancelAction(_ sender: UIButton) {
|
guard let m = detailModel else { return }
|
CommonAlertView.show(title: "提示", content: "是否确认取消?") {[weak self] state in
|
guard let weakSelf = self else { return }
|
if state{
|
Services.cancelMyWorldCup(id: m.id).subscribe(onNext: { data in
|
sender.setTitle("已取消", for: .normal)
|
sender.backgroundColor = .gray.withAlphaComponent(0.5)
|
sender.isEnabled = false
|
NotificationCenter.default.post(name: WorldCupRefresh_Noti, object: nil)
|
}).disposed(by: weakSelf.disposeBag)
|
}
|
}
|
}
|
}
|
|
extension WorldCupContentDetailVC:UITableViewDelegate{
|
func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
|
let model = detailModel!.participants[indexPath.row]
|
if let qrCode = WorldCupUserInfoQRCodel(id: model.id, isStudent: model.isStudent).toJSONString(){
|
QRWithTitlePreview.show(qrCode,title: model.name)
|
}
|
}
|
}
|
|
extension WorldCupContentDetailVC:UITableViewDataSource{
|
func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
|
return detailModel?.participants.count ?? 0
|
}
|
|
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
|
let model = detailModel!.participants[indexPath.row]
|
let cell = tableView.dequeueReusableCell(withIdentifier: "_StudentInfo_4_TCell", for: indexPath) as! StudentInfo_4_TCell
|
cell.activityDetailPartModel = model
|
return cell
|
}
|
|
func tableView(_ tableView: UITableView, heightForRowAt indexPath: IndexPath) -> CGFloat {
|
90
|
}
|
}
|