//
|
// CarDetailVC.swift
|
// OKProject
|
//
|
// Created by 无故事王国 on 2022/5/10.
|
// Copyright © 2022 yangwang. All rights reserved.
|
//
|
|
import UIKit
|
import FFPage
|
import SPPageMenu
|
import QMUIKit
|
//enum CarDetailType:Int {
|
// case rent = 1 //出租/承包
|
// case rentIndividual = 2 //出租/承包(个人)
|
// case sell //售卖
|
//}
|
|
class CarDetailVC: YYViewController {
|
|
private var carDetailType:CommonStyle!
|
var id:Int!
|
private var carSellModel:CarSellModel?
|
private var rentalModel:RentalModel?
|
|
lazy var adapterVC:FFAdapterViewController = {
|
let adapterVC = FFAdapterViewController()
|
adapterVC.style = .subRefresh
|
adapterVC.ignoreTopSpeace = navH
|
return adapterVC
|
}()
|
|
//73848 【车辆详情】底部的 咨询车况显示 需 固定在底部
|
lazy var contactBtn:QMUIButton = {
|
let btn = QMUIButton(type: .custom)
|
btn.setTitle("马上咨询", for: .normal)
|
btn.setImage(UIImage(named: "icon_phone"), for: .normal)
|
btn.setTitleColor(UIColor.white, for: .normal)
|
btn.titleLabel?.font = UIFont.systemFont(ofSize: 16, weight: .medium)
|
btn.backgroundColor = UIColor(hexString: "#FFA145")
|
return btn
|
}()
|
|
lazy var headerVC:CarDetailHeaderVC = {
|
let headerVC = CarDetailHeaderVC()
|
return headerVC
|
}()
|
|
|
lazy var menuVC:CarDetailMenuVC = {
|
let menuVC = CarDetailMenuVC()
|
return menuVC
|
}()
|
|
lazy var pageVC:FFPageViewController = {
|
let pageViewController = FFPageViewController()
|
pageViewController.view.backgroundColor = .clear
|
pageViewController.delegate = self
|
pageViewController.scrollview.backgroundColor = .clear
|
return pageViewController
|
}()
|
|
|
private let menu = ["车辆信息","评论"]
|
|
override func viewWillAppear(_ animated: Bool) {
|
super.viewWillAppear(animated)
|
yy_nav_back_img = UIImage.init(named: "icon_back_white")!
|
self.navigationController?.navigationBar.titleTextAttributes = [NSAttributedString.Key.foregroundColor:UIColor.white,NSAttributedString.Key.font: UIFont.init(name: Medium, size: 18) ?? UIFont.systemFont(ofSize: 18)]
|
let image = UIImage(named: "LD_Rectangle")
|
self.navigationController?.navigationBar.setBackgroundImage(image, for: .default)
|
self.navigationController?.navigationBar.isTranslucent = true
|
}
|
|
override func viewWillDisappear(_ animated: Bool) {
|
super.viewWillDisappear(animated)
|
self.navigationController?.navigationBar.titleTextAttributes = [NSAttributedString.Key.foregroundColor:UIColor.color(light: UIColor.color(hexString: "#000000"), dark: UIColor.color(hexString: "#FFFFFF")),NSAttributedString.Key.font: UIFont.init(name: Medium, size: 18) ?? UIFont.systemFont(ofSize: 18)]
|
self.navigationController?.navigationBar.barTintColor = UIColor.color(light: UIColor.color(hexString: "#FFFFFF"), dark: UIColor.color(hexString: "#191919"))
|
self.navigationController?.navigationBar.setBackgroundImage(UIImage(), for: .default)
|
self.navigationController?.navigationBar.isTranslucent = false
|
}
|
|
|
required init(type:CommonStyle) {
|
super.init(nibName: nil, bundle: nil)
|
self.carDetailType = type
|
}
|
|
override init(nibName nibNameOrNil: String?, bundle nibBundleOrNil: Bundle?) {
|
super.init(nibName: nibNameOrNil, bundle: nibBundleOrNil)
|
}
|
|
required init?(coder: NSCoder) {
|
fatalError("init(coder:) has not been implemented")
|
}
|
|
override func viewDidLoad() {
|
super.viewDidLoad()
|
navigationItem.title = "车辆详情"
|
}
|
|
//MARK: - UI
|
override func setupViews() {
|
super.setupViews()
|
|
adapterVC.headHeight = ScreenWidth * 0.8
|
adapterVC.categroyHeight = 51
|
adapterVC.headViewController = headerVC
|
adapterVC.categroyViewController = menuVC
|
adapterVC.pageViewController = pageVC
|
adapterVC.ignoreTopSpeace = navH
|
|
// if carDetailType == .rent{
|
// adapterVC.categroyHeight = 0
|
// }
|
|
addChild(adapterVC)
|
view.addSubview(adapterVC.view)
|
adapterVC.didMove(toParent: self)
|
|
// 分类委托
|
menuVC.pageMenu.delegate = self
|
menuVC.pageMenu.bridgeScrollView = pageVC.scrollview
|
|
contactBtn.addTarget(self, action: #selector(callAction), for: .touchUpInside)
|
view.addSubview(contactBtn)
|
contactBtn.snp.makeConstraints { make in
|
make.left.right.bottom.equalToSuperview()
|
make.height.equalTo(40)
|
}
|
}
|
|
override func bindRx() {
|
|
if carDetailType == .sell{
|
headerVC.carTypeL.backgroundColor = UIColor(hexString: "#00BF30")
|
APIManager.shared.provider.rx.request(.sellingCarDetail(id: id)).map(YYModel<CarSellModel>.self).validate().subscribe(onSuccess: { m in
|
if let model = m.data{
|
self.carSellModel = model
|
if model.userType == .user{
|
self.headerVC.carTypeL.text = "个人车辆"
|
}else{
|
self.headerVC.carTypeL.text = "企业车辆"
|
}
|
self.headerVC.setImgs(model.imgUrl.components(separatedBy: ",").filter({!$0.isEmpty}))
|
self.pageVC.reloadData()
|
}
|
}) { error in
|
|
}.disposed(by: disposeBag)
|
}
|
|
if carDetailType == .rent{
|
headerVC.carTypeL.backgroundColor = UIColor(hexString: "#FF8A3D")
|
APIManager.shared.provider.rx.request(.carRentalDetail(id: id)).map(YYModel<RentalModel>.self).validate().subscribe(onSuccess: {m in
|
if let model = m.data{
|
self.rentalModel = model
|
if model.userType == .user{
|
self.headerVC.carTypeL.text = "个人车辆"
|
}else{
|
self.headerVC.carTypeL.text = "企业车辆"
|
}
|
self.headerVC.setImgs(model.imgUrl.components(separatedBy: ",").filter({!$0.isEmpty}))
|
self.pageVC.reloadData()
|
}
|
}) { error in
|
|
}.disposed(by: disposeBag)
|
}
|
}
|
|
//MARK: - Layouts
|
override func defineLayouts() {
|
super.defineLayouts()
|
}
|
|
@objc func callAction(){
|
if let m = rentalModel{
|
UIApplication.shared.open(URL(string: "telprompt://\(m.contactsPhone)")!, options: [:], completionHandler: nil)
|
}
|
}
|
}
|
|
|
extension CarDetailVC : FFPageViewControllerDelegate{
|
|
func totalPagesOfpageViewController(_ pageViewConteoller: FFPageViewController) -> UInt {
|
return 2
|
}
|
|
func pageViewController(_ pageViewConteoller: FFPageViewController, controllerForPage page: Int) -> UIViewController {
|
if page == 0{
|
if carDetailType == .sell{
|
let vc = CarDetailCarInfoVC()
|
vc.carSellModel = carSellModel
|
return vc
|
}else{
|
let vc = CarDetailCarRentInfoVC(type: carDetailType)
|
vc.rentalModel = rentalModel
|
return vc
|
}
|
}
|
|
let vc = CarDetailCarCommentVC()
|
vc.scrollView = adapterVC.scrollview
|
if carDetailType == .sell{
|
vc.orderId = carSellModel?.id
|
}else if carDetailType == .rent{
|
vc.orderId = rentalModel?.id
|
}
|
vc.type = carDetailType
|
return vc
|
}
|
|
func pageViewController(_ pageViewController: FFPageViewController, currentPageChanged currentPage: Int) {
|
contactBtn.isHidden = currentPage == 1
|
}
|
|
}
|
|
extension CarDetailVC : SPPageMenuDelegate {
|
func pageMenu(_ pageMenu: SPPageMenu, itemSelectedAt index: Int) {
|
contactBtn.isHidden = index == 1
|
pageVC.scroll(toPage: index, animation: true)
|
}
|
}
|