//
|
// TaxiOrderListVC.swift
|
// OKProject
|
//
|
// Created by alvin_y on 2020/6/8.
|
// Copyright © 2020 yangwang. All rights reserved.
|
//
|
|
import UIKit
|
import RxSwift
|
import RxRelay
|
|
/// 出租车订单列表
|
class TaxiOrderListVC: YYTableViewController {
|
|
/// viewModel
|
let viewModel = TaxiOrderViewModel()
|
|
init(orderType: OrderType) {
|
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)
|
|
}
|
|
override func viewWillAppear(_ animated: Bool) {
|
super.viewWillAppear(animated)
|
tableView.mj_header?.beginRefreshing()
|
}
|
|
//MARK: - UI
|
override func setupViews() {
|
super.setupViews()
|
tableView.separatorStyle = .none
|
tableView.delegate = self
|
tableView.dataSource = self
|
tableView.register(cellName: "TaxiOrderListCell", identifier: "item")
|
}
|
|
//MARK: - Rx
|
override func bindRx() {
|
super.bindRx()
|
NotificationCenter.default.rx.notification(Notification.Name(rawValue: YYOrderListRefresh), object: nil).subscribe(onNext: {[unowned self] (_) in
|
self.tableView.mj_header?.beginRefreshing()
|
}).disposed(by: 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 TaxiOrderListVC:UITableViewDelegate{
|
func tableView(_ tableView: UITableView, heightForRowAt indexPath: IndexPath) -> CGFloat {
|
return UITableView.automaticDimension
|
}
|
|
func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
|
let data = viewModel.dataSource.value[indexPath.row]
|
|
// 8=待评价,9=已完成
|
if data.state == 8 || data.state == 9{
|
// 新的界面 有轨迹
|
let vc = TaxiOrderDetailsVC.init(orderId: data.orderId, orderType: viewModel.type.value)
|
self.yy_push(vc: vc)
|
}else{
|
// 订单流程界面
|
if self.viewModel.type.value == .special{
|
|
var isCarpool:Bool = false
|
if data.rideType == .seating{isCarpool = true}
|
let vc = YYSpecialCarViewController.init(orderId: data.orderId,isCarpool: isCarpool)
|
vc.viewModel.orderType.accept(.special)
|
self.yy_push(vc: vc)
|
}else if viewModel.type.value == .scenic{
|
if data.state == 7{
|
let vc = TravelOrderSuccessVC()
|
vc.id.accept(data.orderId)
|
vc.statusType = .MyOrder
|
yy_push(vc: vc)
|
return
|
}
|
|
let vc = TravelServiceVC(orderId: data.orderId, orderType: .scenic)
|
wy_pushAnimate(vc: vc)
|
// let vc = YYSpecialCarViewController.init(orderId: data.orderId)
|
// vc.viewModel.orderType.accept(.scenic)
|
// self.yy_push(vc: vc)
|
|
}else if self.viewModel.type.value == .travel{
|
if data.state == 7 {
|
//待支付
|
let vc = TravelOrderSuccessVC()
|
vc.id.accept(data.orderId)
|
vc.statusType = .MyOrder
|
self.yy_push(vc: vc)
|
return
|
}
|
if data.state == 10 {
|
// 取消
|
let vc = YYSpecialCarViewController.init(orderId: data.orderId)
|
vc.viewModel.orderType.accept(.travel)
|
self.yy_push(vc: vc)
|
return
|
}
|
let vc = YYSpecialCarViewController.init(orderId: data.orderId)
|
vc.viewModel.orderType.accept(.travel)
|
self.yy_push(vc: vc)
|
}else{
|
let vc = TravelServiceVC.init(orderId: data.orderId, orderType: viewModel.type.value)
|
self.yy_push(vc: vc)
|
}
|
}
|
}
|
}
|
|
// MARK: - UITableViewDelegate
|
extension TaxiOrderListVC: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: "item", for: indexPath) as! TaxiOrderListCell
|
cell.configure(model: viewModel.dataSource.value[indexPath.row])
|
cell.selectionStyle = .none
|
cell.refreshDelegate.delegate(on: self) { _,_ in
|
self.tableView.mj_header?.beginRefreshing()
|
}
|
return cell
|
}
|
|
|
}
|