//
|
// TravelCardShopListVC.swift
|
// OKProject
|
//
|
// Created by 无故事王国 on 2022/2/10.
|
// Copyright © 2022 yangwang. All rights reserved.
|
//
|
|
import UIKit
|
|
let UpdateShopList_RefreshNoti = Notification.Name.init("UpdateShopList_Noti")
|
|
class TravelCardShopListVC: YYTableViewController {
|
|
/// viewModel
|
let viewModel = TravelCardViewModel()
|
|
init(orderType: Int) {
|
super.init(nibName: nil, bundle: nil)
|
viewModel.type.accept(orderType)
|
}
|
|
required init?(coder: NSCoder) {
|
fatalError("init(coder:) has not been implemented")
|
}
|
|
override func viewDidLoad() {
|
super.viewDidLoad()
|
|
// Do any additional setup after loading the view.
|
|
viewModel.configure(tableView: tableView)
|
tableView.mj_header?.beginRefreshing()
|
|
}
|
|
//MARK: - UI
|
override func setupViews() {
|
super.setupViews()
|
tableView.separatorStyle = .none
|
tableView.delegate = self
|
tableView.dataSource = self
|
tableView.backgroundColor = UIColor(hexString: "#F3F4F5")
|
tableView.register(cellName: "TravelCardBuyTCell", identifier: "_TravelCardBuyTCell")
|
}
|
|
//MARK: - Rx
|
override func bindRx() {
|
super.bindRx()
|
|
NotificationCenter.default.rx.notification(UpdateShopList_RefreshNoti).takeUntil(self.rx.deallocated).subscribe { [weak self ]noti in
|
guard let weakSelf = self else { return }
|
if let obj = noti.object as? Int,obj == weakSelf.viewModel.type.value{
|
weakSelf.tableView.mj_header?.beginRefreshing()
|
}
|
} onError: { error in
|
|
}.disposed(by: rx.disposeBag)
|
}
|
|
//MARK: - Layouts
|
override func defineLayouts() {
|
super.defineLayouts()
|
tableView.snp.makeConstraints { (make) in
|
if #available(iOS 11.0, *) {
|
make.edges.equalTo(view.safeAreaLayoutGuide)
|
} else {
|
make.edges.equalToSuperview()
|
}
|
}
|
}
|
}
|
|
|
// MARK: - UITableViewDelegate
|
extension TravelCardShopListVC:UITableViewDelegate{
|
func tableView(_ tableView: UITableView, heightForRowAt indexPath: IndexPath) -> CGFloat {
|
return UITableView.automaticDimension
|
}
|
|
func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
|
let vc = TravelCardShopDetailVC()
|
vc.id = viewModel.dataSource.value[indexPath.row].id
|
vc.orderType = viewModel.type.value
|
vc.modalPresentationStyle = .custom
|
present(vc, animated: true, completion: nil)
|
}
|
}
|
|
// MARK: - UITableViewDelegate
|
extension TravelCardShopListVC: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: "_TravelCardBuyTCell", for: indexPath) as! TravelCardBuyTCell
|
cell.selectionStyle = .none
|
cell.contentView.backgroundColor = UIColor(hexString: "#F3F4F5")
|
cell.orderType = viewModel.type.value
|
cell.couponListModel = viewModel.dataSource.value[indexPath.row]
|
return cell
|
}
|
|
}
|