//
|
// CourseBookingDetailVC.swift
|
// WanPai
|
//
|
// Created by 无故事王国 on 2023/6/27.
|
//
|
|
import UIKit
|
import JQTools
|
import RxSwift
|
import RxRelay
|
|
class CourseBookingViewModel:RefreshModel<StudentAppointModel>{
|
|
let status = BehaviorRelay<StudentAppointTypeList?>(value: nil)
|
let search = BehaviorRelay<String>(value: "")
|
let studentId = BehaviorRelay<Int>(value: 0)
|
let timeType = BehaviorRelay<StudentAppointDateType>(value: .all)
|
|
override func api() -> (Observable<BaseResponse<[StudentAppointModel]>>)? {
|
Services.studentAppointList(page:page,stuId: studentId.value, status: status.value,search: search.value,timeType: timeType.value)
|
}
|
}
|
|
let CourseBooking_Noti = Notification.Name("CourseBooking_Noti")
|
|
class CourseBookingSubListVC: BaseVC {
|
|
let viewModel = CourseBookingViewModel()
|
|
lazy private var tableView:BaseTableView = {
|
let table = BaseTableView(frame: .zero, style: .plain)
|
table.separatorStyle = .none
|
table.delegate = self
|
table.dataSource = self
|
table.register(UINib(nibName: "CourseBooking_1_TCell", bundle: nil), forCellReuseIdentifier: "_CourseBooking_1_TCell")
|
return table
|
}()
|
|
|
required init(status:StudentAppointTypeList?,studentId:Int) {
|
super.init(nibName: nil, bundle: nil)
|
viewModel.status.accept(status)
|
viewModel.studentId.accept(studentId)
|
}
|
|
required init?(coder: NSCoder) {
|
fatalError("init(coder:) has not been implemented")
|
}
|
|
override func viewDidLoad() {
|
super.viewDidLoad()
|
view.backgroundColor = .white
|
viewModel.configure(tableView,needMore: true)
|
viewModel.beginRefresh()
|
}
|
|
override func setUI() {
|
view.addSubview(tableView)
|
tableView.snp.makeConstraints { make in
|
make.edges.equalToSuperview()
|
}
|
// tableView.jq_setEmptyView()
|
}
|
|
override func setRx() {
|
NotificationCenter.default.rx.notification(CourseBooking_Noti).take(until: self.rx.deallocated).subscribe(onNext: {[weak self] noti in
|
guard let weakSelf = self else { return }
|
if let obj = noti.object as? IndexPath{
|
let model = weakSelf.viewModel.dataSource.value[obj.row]
|
model.status = .cancel
|
weakSelf.tableView.beginUpdates()
|
weakSelf.tableView.reloadRows(at: [obj], with: .automatic)
|
weakSelf.tableView.endUpdates()
|
}
|
}).disposed(by: disposeBag)
|
}
|
}
|
|
extension CourseBookingSubListVC:UITableViewDelegate{}
|
|
extension CourseBookingSubListVC:UITableViewDataSource{
|
func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
|
return viewModel.dataSource.value.count
|
}
|
|
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
|
let cell = tableView.dequeueReusableCell(withIdentifier: "_CourseBooking_1_TCell") as! CourseBooking_1_TCell
|
cell.indexPath = indexPath
|
cell.studentAppointModel = viewModel.dataSource.value[indexPath.row]
|
return cell
|
}
|
}
|