//
// MessageSubscribePageVC.swift
// CountryRadioApp
//
// Created by ws on 2021/8/31.
//
import UIKit
import MJRefresh
import RxDataSources
fileprivate let MessageSubscriTableCellID = "MessageSubscriTableCellID"
class MessageSubscribePageVC: WSBaseViewController {
let disponseBag = DisposeBag()
let viewModel = MessageSubscirViewModel()
// let dataArray = Variable([SectionModel<String, MessageSubiceModel>]())
// var oldArr:[MessageSubiceModel] = []
var dataArray:[MessageSubiceModel] = []
lazy var tableView : UITableView = { [weak self] in
let tab = UITableView(frame: CGRect(x: 0, y: kNavBarH, width: kScreenW, height: kScreenH-kNavBarH-kBottomSafeH), style: .plain)
tab.separatorStyle = .none
tab.keyboardDismissMode = .onDrag
#if swift(>=4.2)
tab.rowHeight = UITableView.automaticDimension
#else
tab.rowHeight = UITableViewAutomaticDimension
#endif
tab.rowHeight = UITableView.automaticDimension
tab.estimatedRowHeight = 65
tab.delegate = self
tab.dataSource = self
tab.register(MessageSubscriTableCell.self, forCellReuseIdentifier: MessageSubscriTableCellID)
return tab
}()
override func viewDidLoad() {
super.viewDidLoad()
self.title = "消息訂閱"
addSubViews()
}
func addSubViews(){
view.addSubview(tableView)
// tableView.rx.setDelegate(self)
tableView.mj_header = MJRefreshStateHeader(refreshingBlock: { [weak self] in
self?.viewModel.reloadData(completed: { [weak self] (data) in
// self?.oldArr = data
// self?.dataArray.value = [SectionModel(model: "", items: data)]
self?.dataArray = data
self?.tableView.reloadData()
})
})
tableView.mj_footer = MJRefreshBackNormalFooter(refreshingBlock: { [weak self] in
self?.viewModel.loadMoreData(completed: { [weak self](data) in
// self?.dataArray.value = [SectionModel(model: "", items: self!.oldArr + data)]
self?.dataArray += data
self?.tableView.reloadData()
})
})
// tableView.mj_header?.beginRefreshing()
//獲取數(shù)據(jù)
viewModel.fetch(completed: { [weak self] (arr) in
// self?.dataArray.value = [SectionModel(model: "", items: arr)]
self?.dataArray = arr
self?.tableView.reloadData()
})
// let dataSource = RxTableViewSectionedReloadDataSource<SectionModel<String,MessageSubiceModel>> { [self] (_, tableView, indexPath, model) -> UITableViewCell in
//
// guard let cell = tableView.dequeueReusableCell(withIdentifier: MessageSubscriTableCellID, for: indexPath) as? MessageSubscriTableCell else{
// fatalError("unexpected cell in collection view")
// }
// var tmpModel = model
// cell.subButton.rx.tap.subscribe { [weak self] (evetn) in
//
// var param:[String:Any] = [:]
// param["id"] = model.id
//
// if tmpModel.issubscribe == "0" { //未訂閱
// RequestManager<BaseModel>().request(target: ApiManager.AddNotice(param)) { [weak self] (respone) in
//
// if respone.code == 1 {
// tmpModel.issubscribe = "1"
//
// }
// self?.view.makeToast(respone.message!)
// }
// }else{ //已訂閱
// RequestManager<BaseModel>().request(target: ApiManager.CancelNotice(param)) { (respone) in
// if respone.code == 1 {
// tmpModel.issubscribe = "0"
// DispatchQueue.main.async {
// self?.tableView.reloadRows(at: [indexPath], with: .automatic)
// }
// }
// self?.view.makeToast(respone.message!)
// }
// }
//
// }.disposed(by: self.disponseBag)
//
// cell.moreButton.rx.tap.subscribe { [weak self] (event) in
//
// self?.navigationController?.pushViewController(SubsvillageListVC(), animated: true)
// XLLog("更多")
// }.disposed(by: self.disponseBag)
//
// cell.setModel(model: tmpModel)
//
// return cell
// }
//綁定數(shù)據(jù)
// self.dataArray.asObservable().bind(to: tableView.rx.items(dataSource: dataSource)).disposed(by: disponseBag)
//改變刷新狀態(tài)
viewModel.refreshStatus.asObservable().subscribe(onNext: { (status) in
self.refreshStatus(status: status,tableView: self.tableView)
}).disposed(by: disponseBag)
}
/**
設(shè)置刷新狀態(tài)
*/
override func refreshStatus(status:RefreshStatus,tableView: UITableView) {
switch status {
case .InvalidData: // 無效的數(shù)據(jù)
tableView.mj_header?.endRefreshing()
tableView.mj_footer?.endRefreshing()
return
case .DropDownSuccess: // 下拉成功
tableView.mj_header?.endRefreshing()
tableView.mj_footer?.endRefreshing()
case .PullSuccessHasMoreData: // 上拉,還有更多數(shù)據(jù)
tableView.mj_footer?.endRefreshing()
case .PullSuccessNoMoreData: // 上拉,沒有更多數(shù)據(jù)
tableView.mj_footer?.endRefreshingWithNoMoreData()
}
tableView.mj_header?.endRefreshing()
}
}
extension MessageSubscribePageVC : UITableViewDelegate,UITableViewDataSource {
func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
return dataArray.count
}
func tableView(_ tableView: UITableView, heightForRowAt indexPath: IndexPath) -> CGFloat {
return 80
}
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
guard let cell = tableView.dequeueReusableCell(withIdentifier: MessageSubscriTableCellID, for: indexPath) as? MessageSubscriTableCell else{
fatalError("unexpected cell in collection view")
}
var model = self.dataArray[indexPath.row] as? MessageSubiceModel
cell.subButton.rx.tap.subscribe { [weak self] (evetn) in
var param:[String:Any] = [:]
param["id"] = model?.id
if model?.issubscribe == "0" { //未訂閱
RequestManager<BaseModel>().request(target: ApiManager.AddNotice(param)) { [weak self] (respone) in
if respone.code == 1 {
model?.issubscribe = "1"
self?.dataArray[indexPath.row] = model!
DispatchQueue.main.async {
self?.tableView.reloadRows(at: [indexPath], with: .none)
}
}
self?.view.makeToast(respone.message!)
}
}else{ //已訂閱
RequestManager<BaseModel>().request(target: ApiManager.CancelNotice(param)) { (respone) in
if respone.code == 1 {
model?.issubscribe = "0"
self?.dataArray[indexPath.row] = model!
DispatchQueue.main.async {
self?.tableView.reloadRows(at: [indexPath], with: .none)
}
}
self?.view.makeToast(respone.message!)
}
}
}
cell.setModel(model: model!)
return cell
}
}
2021-09-22
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。
相關(guān)閱讀更多精彩內(nèi)容
- 老媽說,她最近休息,問我要不要帶寶寶過去玩幾天。 事實(shí)上,上次我老爸過生日的時(shí)候,我就想去了。可他們拒絕了。因?yàn)閷?..
- 2021年9月22日 星期三 晴 開學(xué)至今已有20多天,接下來學(xué)校工作較重要的常規(guī)工作就...
- 三是堅(jiān)決打好三大攻堅(jiān)戰(zhàn),主要目標(biāo)任務(wù)如期完成。 正:We made decisive progress in th...
- 佛說:“因果有輪回,凡事皆有報(bào),你給別人的一切,最后都會(huì)回到自己身上。” 在人生路上,面對(duì)遇到的人和事,你采取不同...