//
|
// CourseOnlineSubListVC.swift
|
// WanPai
|
//
|
// Created by 无故事王国 on 2023/6/16.
|
//
|
|
import UIKit
|
import JQTools
|
import RxCocoa
|
import RxSwift
|
import QMUIKit
|
|
class CourseOnlineViewModel:RefreshModel<VideoDetailModel>{
|
let classificationId = BehaviorRelay<Int>(value: 0)
|
let search = BehaviorRelay<String>(value: "")
|
|
override func api() -> (Observable<BaseResponse<[VideoDetailModel]>>)? {
|
Services.benefitsVideoSubList(classificationId: classificationId.value, pageNo: page, pageSize: pageSize, search: search.value)
|
}
|
}
|
|
class CourseOnlineSubListVC: BaseVC {
|
|
private var classificationId:Int?
|
private var position:Int?
|
@IBOutlet weak var tableView: BaseTableView!
|
@IBOutlet weak var tf_search: QMUITextField!
|
|
private let viewModel = CourseOnlineViewModel()
|
|
override func viewDidLoad() {
|
super.viewDidLoad()
|
|
viewModel.configure(tableView)
|
viewModel.beginRefresh()
|
|
}
|
|
init(classificationId:Int) {
|
super.init(nibName: nil, bundle: nil)
|
viewModel.classificationId.accept(classificationId)
|
}
|
|
|
override func setRx() {
|
tf_search.rx.text.orEmpty.bind(to: viewModel.search).disposed(by: disposeBag)
|
}
|
|
required init?(coder: NSCoder) {
|
fatalError("init(coder:) has not been implemented")
|
}
|
|
override func setUI() {
|
tableView.delegate = self
|
tableView.dataSource = self
|
tableView.register(UINib(nibName: "CourseOnlineTCell", bundle: nil), forCellReuseIdentifier: "_CourseOnlineTCell")
|
tableView.separatorStyle = .none
|
tf_search.delegate = self
|
}
|
|
@IBAction func searchAction(_ sender: UIButton) {
|
viewModel.beginRefresh()
|
}
|
}
|
|
extension CourseOnlineSubListVC:UITableViewDelegate{
|
func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
|
|
let model = viewModel.dataSource.value[indexPath.row]
|
let vc = CourseVideoDetailVC(id: model.id)
|
vc.title = title
|
push(vc: vc)
|
}
|
}
|
|
extension CourseOnlineSubListVC:UITableViewDataSource{
|
func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
|
viewModel.dataSource.value.count
|
}
|
|
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
|
let model = viewModel.dataSource.value[indexPath.row]
|
let cell = tableView.dequeueReusableCell(withIdentifier: "_CourseOnlineTCell") as! CourseOnlineTCell
|
cell.videoDetailModel = model
|
return cell
|
}
|
}
|
|
extension CourseOnlineSubListVC:QMUITextFieldDelegate{
|
func textFieldShouldReturn(_ textField: UITextField) -> Bool {
|
textField.resignFirstResponder()
|
viewModel.beginRefresh()
|
return true
|
}
|
}
|