//
|
// CourseExerciseSubListVC.swift
|
// WanPai
|
//
|
// Created by 无故事王国 on 2023/6/27.
|
//
|
|
import UIKit
|
import QMUIKit
|
import RxSwift
|
import RxRelay
|
|
class CourseExerciseViewModel:RefreshModel<ExerciseVideoModel>{
|
let courseTypeId = BehaviorRelay<Int?>(value: nil)
|
let search = BehaviorRelay<String>(value: "")
|
override func api() -> (Observable<BaseResponse<[ExerciseVideoModel]>>)? {
|
return Services.exerciseCourseList(courseTypeId: courseTypeId.value, search: search.value)
|
}
|
}
|
|
class CourseExerciseSubListVC: BaseVC {
|
|
@IBOutlet weak var view_topView: UIView!
|
@IBOutlet weak var btn_assign: QMUIButton!
|
@IBOutlet weak var tableView: BaseTableView!
|
@IBOutlet weak var tf_search: QMUITextField!
|
private var types = [CityProfileModel]()
|
private var selectType:NormalSimpleModel?
|
let viewModel = CourseExerciseViewModel()
|
|
override func viewDidLoad() {
|
super.viewDidLoad()
|
title = "课后练习"
|
getType()
|
viewModel.beginRefresh()
|
}
|
|
private func getType(){
|
Services.queryArrangeCourseList().subscribe(onNext: { data in
|
if let models = data.data{
|
self.types = models
|
}
|
}).disposed(by: disposeBag)
|
}
|
|
override func setUI() {
|
btn_assign.imagePosition = .right
|
btn_assign.spacingBetweenImageAndTitle = 5
|
tf_search.delegate = self
|
|
tableView.register(UINib(nibName: "CourseExerciseTCell", bundle: nil), forCellReuseIdentifier: "_CourseExerciseTCell")
|
tableView.delegate = self
|
tableView.dataSource = self
|
tableView.separatorStyle = .none
|
viewModel.configure(tableView,needMore: false)
|
// tableView.jq_setEmptyView()
|
}
|
|
|
@IBAction func searchAction(_ sender: UIButton) {
|
tf_search.resignFirstResponder()
|
viewModel.search.accept(tf_search.text!)
|
viewModel.beginRefresh()
|
}
|
|
@IBAction func assignAction(_ sender: QMUIButton) {
|
guard !sender.isSelected else {return}
|
guard types.count != 0 else {return}
|
|
sender.isSelected = true
|
var items = Array<NormalSimpleModel>()
|
items.append(NormalSimpleModel(id: 0, name: "全部"))
|
for type in types {
|
items.append(NormalSimpleModel(id: type.id, name: type.name))
|
}
|
|
CourseSubTypeView.show(inView: self.view, afterView: view_topView, items: items, selectModel: selectType) {[weak self] m in
|
sender.isSelected = false
|
self?.selectType = m
|
if m.id == 0{
|
sender.setTitle("布置运动营", for: .normal)
|
self?.viewModel.courseTypeId.accept(nil)
|
}else{
|
sender.setTitle(m.name, for: .normal)
|
self?.viewModel.courseTypeId.accept(m.id)
|
}
|
self?.viewModel.beginRefresh()
|
} closeClouse: {
|
sender.isSelected = false
|
}
|
}
|
}
|
|
extension CourseExerciseSubListVC:UITableViewDelegate{
|
func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
|
let model = viewModel.dataSource.value[indexPath.row]
|
let vc = CourseVideoDetailVC(model: model)
|
vc.title = "课后练习"
|
push(vc: vc)
|
}
|
|
}
|
|
extension CourseExerciseSubListVC:UITableViewDataSource{
|
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
|
let model = viewModel.dataSource.value[indexPath.row]
|
let cell = tableView.dequeueReusableCell(withIdentifier: "_CourseExerciseTCell") as! CourseExerciseTCell
|
cell.exerciseVideoModel = model
|
return cell
|
}
|
|
func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
|
return viewModel.dataSource.value.count
|
}
|
}
|
|
extension CourseExerciseSubListVC:QMUITextFieldDelegate{
|
func textFieldShouldReturn(_ textField: UITextField) -> Bool {
|
textField.resignFirstResponder()
|
viewModel.search.accept(textField.text!)
|
viewModel.beginRefresh()
|
return true
|
}
|
}
|