//
|
// CustomerSubListVC.swift
|
// WanPai
|
//
|
// Created by 无故事王国 on 2023/6/30.
|
//
|
|
import UIKit
|
import JQTools
|
import RxSwift
|
import RxRelay
|
|
class CustomerContentViewModel:RefreshModel<NoticeItemModel>{
|
var type = BehaviorRelay<CustomerSubListVC.CustomerSubType>.init(value: .notice)
|
override func api() -> (Observable<BaseResponse<[NoticeItemModel]>>)? {
|
return Services.exploreNoticeList(type: type.value)
|
}
|
}
|
|
class CustomerSubListVC: BaseVC {
|
|
private let viewModel = CustomerContentViewModel()
|
|
public enum CustomerSubType {
|
case notice,QA
|
}
|
|
lazy var tableView:BaseTableView = {
|
let table = BaseTableView(frame: .zero, style: .plain)
|
table.separatorStyle = .none
|
table.delegate = self
|
table.dataSource = self
|
table.register(UINib(nibName: "CustomerContentTCell", bundle: nil), forCellReuseIdentifier: "_CustomerContentTCell")
|
table.register(UINib(nibName: "CustomerContentQATCell", bundle: nil), forCellReuseIdentifier: "_CustomerContentQATCell")
|
|
return table
|
}()
|
|
|
init(type: CustomerSubType!) {
|
super.init(nibName: nil, bundle: nil)
|
viewModel.type.accept(type)
|
}
|
|
required init?(coder: NSCoder) {
|
fatalError("init(coder:) has not been implemented")
|
}
|
|
|
override func viewDidLoad() {
|
super.viewDidLoad()
|
|
if viewModel.type.value == .QA{
|
|
Services.bannerList(position: .qusition).subscribe(onNext: {[weak self]data in
|
if let models = data.data,models.count > 0{
|
let bannberView = CommonBannerView(frame: CGRect(x: 0, y: 0, width: JQ_ScreenW, height: JQ_ScreenW * 0.564))
|
self?.tableView.tableHeaderView = bannberView
|
|
let imgs = models.map({$0.img})
|
var items = [CommonBannerModel]()
|
for (index,img) in imgs.enumerated(){
|
items.append(CommonBannerModel(index: index,resource: img,mediaType: .imageUrl))
|
}
|
|
bannberView.setItems(items: items) { m in
|
let model = models[m.index]
|
jumpPage(model: model.model, page: model.page, type: model.type, id: model.turnId)
|
}
|
self?.tableView.reloadData()
|
}
|
}) { error in
|
|
}.disposed(by: disposeBag)
|
}
|
|
viewModel.configure(tableView,needMore: false)
|
viewModel.beginRefresh()
|
// tableView.jq_setEmptyView()
|
}
|
|
override func setUI() {
|
view.addSubview(tableView)
|
tableView.snp.makeConstraints { make in
|
make.edges.equalToSuperview()
|
}
|
}
|
}
|
|
extension CustomerSubListVC:UITableViewDelegate{
|
func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
|
let model = viewModel.dataSource.value[indexPath.row]
|
|
var id = 0
|
if viewModel.type.value == .notice{
|
id = model.noticeId
|
}else{
|
id = model.quesId
|
}
|
|
let vc = CustomerContentDetailVC(id: id, type: viewModel.type.value)
|
push(vc: vc)
|
}
|
}
|
|
extension CustomerSubListVC:UITableViewDataSource{
|
func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
|
return viewModel.dataSource.value.count
|
}
|
|
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
|
let model = viewModel.dataSource.value[indexPath.row]
|
if viewModel.type.value == .notice{
|
let cell = tableView.dequeueReusableCell(withIdentifier: "_CustomerContentTCell") as! CustomerContentTCell
|
cell.noticeItemModel = model
|
return cell
|
}else{
|
let cell = tableView.dequeueReusableCell(withIdentifier: "_CustomerContentQATCell") as! CustomerContentQATCell
|
cell.noticeItemModel = model
|
return cell
|
}
|
}
|
}
|