//
|
// JudgeListVC.swift
|
// WanPai
|
//
|
// Created by 无故事王国 on 2024/2/29.
|
//
|
|
import UIKit
|
import QMUIKit
|
import RxRelay
|
import RxDataSources
|
import RxSwift
|
|
class JudgeViewModel:RefreshModel<WorldCupJudgeModel>{
|
|
let content = BehaviorRelay<String?>(value:nil)
|
let storeId = BehaviorRelay<NormalSimpleModel?>(value:nil)
|
|
override func api() -> (Observable<BaseResponse<[WorldCupJudgeModel]>>)? {
|
return Services.worldCupJudgeList(content: content.value, storeId: storeId.value?.id)
|
}
|
}
|
|
class JudgeListVC: BaseVC {
|
|
@IBOutlet weak var tf_search: QMUITextField!
|
@IBOutlet weak var btn_point: QMUIButton!
|
@IBOutlet weak var tableView: UITableView!
|
|
private var pointData = [NormalSimpleModel]()
|
|
private var viewModel = JudgeViewModel()
|
|
override func viewDidLoad() {
|
super.viewDidLoad()
|
title = "社区世界杯"
|
|
Services.getWorldCupStore().subscribe(onNext: {[weak self] data in
|
self?.pointData.append(NormalSimpleModel(id: 0, name: "全部"))
|
self?.pointData.append(contentsOf: data.data ?? [])
|
}).disposed(by: disposeBag)
|
|
viewModel.configure(tableView, needMore: false)
|
viewModel.beginRefresh()
|
}
|
|
override func setUI() {
|
btn_point.imagePosition = .right
|
btn_point.spacingBetweenImageAndTitle = 5
|
|
tableView.delegate = self
|
tableView.dataSource = self
|
tf_search.delegate = self
|
tableView.register(UINib(nibName: "JudgeTCell", bundle: nil), forCellReuseIdentifier: "_JudgeTCell")
|
tableView.separatorStyle = .none
|
}
|
|
@IBAction func searchAction(_ sender: QMUIButton) {
|
tf_search.resignFirstResponder()
|
viewModel.content.accept(tf_search.text)
|
viewModel.beginRefresh()
|
}
|
|
@IBAction func pointAction(_ sender: QMUIButton) {
|
CourseSubTypeView.show(inView: self.view, afterView: btn_point, items: pointData,selectModel: viewModel.storeId.value) {[weak self] model in
|
if model.name == "全部"{
|
sender.setTitle("所在赛点", for: .normal)
|
self?.viewModel.storeId.accept(nil)
|
}else{
|
sender.setTitle(model.name, for: .normal)
|
self?.viewModel.storeId.accept(model)
|
}
|
self?.viewModel.beginRefresh()
|
} closeClouse: {
|
sender.isSelected = false
|
}
|
}
|
}
|
|
extension JudgeListVC:UITableViewDelegate{
|
func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
|
let model = viewModel.dataSource.value[indexPath.row]
|
if model.status == .ongoing{
|
let vc = MatchDetailVC(model: model)
|
push(vc: vc)
|
}
|
}
|
}
|
|
extension JudgeListVC:UITableViewDataSource{
|
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
|
let model = viewModel.dataSource.value[indexPath.row]
|
let cell = tableView.dequeueReusableCell(withIdentifier: "_JudgeTCell") as! JudgeTCell
|
cell.setModel(model)
|
return cell
|
}
|
|
func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
|
return viewModel.dataSource.value.count
|
}
|
|
func tableView(_ tableView: UITableView, heightForRowAt indexPath: IndexPath) -> CGFloat {
|
return 120
|
}
|
}
|
|
extension JudgeListVC:QMUITextFieldDelegate{
|
func textFieldShouldReturn(_ textField: UITextField) -> Bool {
|
textField.resignFirstResponder()
|
viewModel.content.accept(textField.text)
|
viewModel.beginRefresh()
|
return true
|
}
|
}
|