//
|
// NoticeCenterVC.swift
|
// XQMuse
|
//
|
// Created by 无故事王国 on 2024/8/20.
|
//
|
|
import UIKit
|
import RxSwift
|
import RxDataSources
|
|
class NoticeCenterViewModel:RefreshInnerModel<NoticeModel>{
|
override func api() -> (Observable<BaseResponse<BaseResponseList<NoticeModel>>>)? {
|
return Services.noticeList(page: page, pageSize: 20)
|
}
|
}
|
|
class NoticeCenterVC: BaseVC {
|
|
private var tableView:UITableView!
|
private var viewModel = NoticeCenterViewModel()
|
|
override func viewDidLoad() {
|
super.viewDidLoad()
|
title = "消息通知"
|
|
viewModel.configure(tableView)
|
viewModel.beginRefresh()
|
}
|
|
override func viewDidDisappear(_ animated: Bool) {
|
super.viewDidDisappear(animated)
|
NotificationCenter.default.post(name: Refreh_Notice_Noti, object: nil)
|
}
|
|
override func setUI() {
|
super.setUI()
|
view.backgroundColor = UIColor(hexString: "#fafafa")
|
|
tableView = UITableView(frame: .zero, style: .plain)
|
tableView.delegate = self
|
tableView.dataSource = self
|
tableView.backgroundColor = .clear
|
tableView.separatorStyle = .none
|
tableView.register(UINib(nibName: "MessageTCell", bundle: nil), forCellReuseIdentifier: "_MessageTCell")
|
view.addSubview(tableView)
|
tableView.snp.makeConstraints { make in
|
make.left.right.bottom.equalToSuperview()
|
make.top.equalTo(self.view.safeAreaLayoutGuide.snp.top).offset(9)
|
}
|
}
|
}
|
|
extension NoticeCenterVC:UITableViewDelegate & UITableViewDataSource{
|
|
func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
|
let model = viewModel.dataSource.value!.list[indexPath.row]
|
model.readStatus = 2
|
tableView.reloadRows(at: [indexPath], with: .none)
|
|
Services.noticeDetailId(model.id).subscribe(onNext: {data in
|
if let m = data.data{
|
if model.noticeType == 1{
|
let vc = NoticeCenterSysDetailVC(m)
|
self.push(vc: vc)
|
}
|
|
if model.noticeType == 2{
|
let vc = NoticeCenterUserRepeaceDetailVC(m)
|
self.push(vc: vc)
|
}
|
}
|
}).disposed(by: disposeBag)
|
|
|
}
|
|
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
|
let model = viewModel.dataSource.value!.list[indexPath.row]
|
let cell = tableView.dequeueReusableCell(withIdentifier: "_MessageTCell", for: indexPath) as! MessageTCell
|
cell.backgroundColor = .clear
|
cell.setNoticeModel(model)
|
return cell
|
}
|
|
func tableView(_ tableView: UITableView, heightForRowAt indexPath: IndexPath) -> CGFloat {
|
94.5
|
}
|
|
func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
|
return viewModel.dataSource.value?.list.count ?? 0
|
}
|
|
|
}
|