//
|
// DriverInfoVC.swift
|
// OKProject
|
//
|
// Created by alvin_y on 2020/6/11.
|
// Copyright © 2020 yangwang. All rights reserved.
|
//
|
|
import UIKit
|
import RxSwift
|
/// 司机信息
|
class DriverInfoVC: YYTableViewController {
|
|
/// 容器
|
@IBOutlet weak var view_container: UIView!
|
|
/// 订单数
|
@IBOutlet weak var label_orderNum: UILabel!
|
|
/// 评分
|
@IBOutlet weak var label_score: UILabel!
|
|
/// 身份证
|
@IBOutlet weak var label_idCard: UILabel!
|
|
/// 品牌
|
@IBOutlet weak var label_brand: UILabel!
|
|
/// 名称
|
@IBOutlet weak var label_name: UILabel!
|
|
/// 头像
|
@IBOutlet weak var image_avatar: YYImageView!
|
|
let viewModel = DriverInfoViewModel()
|
|
init(driverId: Int) {
|
super.init(nibName: String.init(describing: DriverInfoVC.self), bundle: Bundle.main)
|
viewModel.driverId.accept(driverId)
|
}
|
|
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.queryDriverInfo()
|
}
|
|
|
//MARK: - UI
|
override func setupViews() {
|
super.setupViews()
|
navigationItem.title = "司机主页"
|
tableView.delegate = self
|
tableView.dataSource = self
|
tableView.separatorStyle = .singleLine
|
tableView.separatorColor = UIColor.color(light: UIColor.color(hexString: "#DEDEDE"), dark: UIColor.color(hexString: "#DEDEDE"))
|
tableView.register(cellName: "DriverInfoCell", identifier: "item")
|
viewModel.configure(tableView: tableView)
|
tableView.mj_header?.beginRefreshing()
|
|
}
|
|
|
//MARK: - Rx
|
override func bindRx() {
|
super.bindRx()
|
viewModel.queryDriverSubject
|
.subscribeOn(MainScheduler.instance)
|
.subscribe(onNext: {[unowned self] (state) in
|
switch state{
|
case .loading:
|
self.show()
|
break
|
case .success(let model):
|
self.hide()
|
guard let model: DriverDetailInfoModel = model as? DriverDetailInfoModel else {return}
|
self.image_avatar.avatar(url: model.avatar)
|
self.label_name.text = model.name
|
self.label_brand.text = "\(model.licensePlate) \(model.brand)"
|
self.label_score.text = String.init(format: "%.1f", model.fraction)
|
self.label_orderNum.text = "\(model.orderNum)"
|
self.label_idCard.text = "身份证号:\(model.idcode.safeId())"
|
break
|
case .error(let error):
|
self.hide()
|
alert(text: error.localizedDescription)
|
break
|
}
|
}).disposed(by: disposeBag)
|
}
|
|
//MARK: - Layouts
|
override func defineLayouts() {
|
super.defineLayouts()
|
tableView.snp.remakeConstraints { (make) in
|
make.top.equalTo(view_container.snp.bottom)
|
make.left.right.bottom.equalToSuperview()
|
}
|
}
|
|
}
|
|
|
// MARK: - UITableViewDelegate
|
extension DriverInfoVC:UITableViewDelegate{
|
func tableView(_ tableView: UITableView, heightForRowAt indexPath: IndexPath) -> CGFloat {
|
return UITableView.automaticDimension
|
}
|
}
|
|
// MARK: - UITableViewDelegate
|
extension DriverInfoVC: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! DriverInfoCell
|
cell.configure(model: viewModel.dataSource.value[indexPath.row])
|
cell.selectionStyle = .none
|
cell.separatorInset = UIEdgeInsets(top: 0, left: 14, bottom: 0, right: 14)
|
return cell
|
}
|
|
|
}
|