//
|
// TroubleHistoryListVC.swift
|
// BrokerDriver
|
//
|
// Created by 无故事王国 on 2023/5/5.
|
//
|
|
import UIKit
|
import RxSwift
|
import RxRelay
|
import JQTools
|
|
class TroubleHistoryListVC: BaseViewController,Refreshable{
|
|
private var tableView:BaseTableView!
|
public let refreshStatus = BehaviorSubject(value: RefreshStatus.others)
|
private var page = 1
|
private var datas = [TroubleContentModel]()
|
private var orderId:String!
|
|
|
init(orderId:String) {
|
super.init(nibName: nil, bundle: nil)
|
self.orderId = orderId
|
}
|
|
required init?(coder: NSCoder) {
|
fatalError("init(coder:) has not been implemented")
|
}
|
|
override func viewDidLoad() {
|
super.viewDidLoad()
|
title = "Historical trouble"
|
|
self.refreshStatusBind(to: tableView, header: { [weak self] () in
|
self?.getData()
|
}, footer: { [weak self] () in
|
self?.getData(false)
|
}).disposed(by: disposeBag)
|
|
tableView.jq_setEmptyView("Not data", image: UIImage(named: "empty"), foregroundColor: .gray, clouse: nil)
|
|
DispatchQueue.main.asyncAfter(deadline: .now()+0.2) {
|
self.refreshStatus.onNext(.beingHeaderRefresh)
|
}
|
}
|
|
|
private func getData(_ isHeader:Bool = true){
|
|
if isHeader{
|
page = 1
|
}else{
|
page += 1
|
}
|
|
Services.orderTrouble(id: orderId, page: page).subscribe(onNext: { data in
|
if let model = data.data{
|
if isHeader{
|
self.datas.removeAll()
|
self.refreshStatus.onNext(.endHeaderRefresh)
|
self.refreshStatus.onNext(.resetNoMoreData)
|
}else{
|
if model.records.count == 0{
|
self.refreshStatus.onNext(.noMoreData)
|
}else{
|
self.refreshStatus.onNext(.endFooterRefresh)
|
}
|
}
|
self.datas.append(contentsOf: model.records)
|
self.tableView.reloadData()
|
}
|
}) { error in
|
alert(msg: error.localizedDescription)
|
self.refreshStatus.onNext(.endFooterRefresh)
|
self.refreshStatus.onNext(.endHeaderRefresh)
|
}.disposed(by: disposeBag)
|
}
|
|
|
override func setUI() {
|
super.setUI()
|
tableView = BaseTableView(frame: .zero, style: .plain)
|
tableView.delegate = self
|
tableView.dataSource = self
|
tableView.separatorStyle = .none
|
tableView.register(UINib(nibName: "TroubleHistoryTCell", bundle: nil), forCellReuseIdentifier: "_TroubleHistoryTCell")
|
view.addSubview(tableView)
|
tableView.snp.makeConstraints { make in
|
make.edges.equalToSuperview().inset(view.safeAreaInsets)
|
}
|
}
|
|
}
|
|
extension TroubleHistoryListVC:UITableViewDelegate{
|
func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
|
let data = datas[indexPath.row]
|
let vc = TroubleHistoryContentVC(model: data)
|
push(vc: vc)
|
}
|
}
|
|
extension TroubleHistoryListVC:UITableViewDataSource{
|
func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
|
return datas.count
|
}
|
|
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
|
let data = datas[indexPath.row]
|
let cell = tableView.dequeueReusableCell(withIdentifier: "_TroubleHistoryTCell") as! TroubleHistoryTCell
|
cell.label_title.text = data.category
|
cell.label_time.text = data.createTime
|
|
return cell
|
}
|
}
|