//
|
// TaxiOrderDetailsView.swift
|
// OKProject
|
//
|
// Created by alvin_y on 2020/6/13.
|
// Copyright © 2020 yangwang. All rights reserved.
|
//
|
|
import UIKit
|
import HCSStarRatingView
|
class TaxiOrderDetailsView: UIView {
|
|
/// 评价按钮高度约束
|
@IBOutlet weak var buttonHeightConstraint: NSLayoutConstraint!
|
|
/// 评价高度约束
|
@IBOutlet weak var evaluationConstraint: NSLayoutConstraint!
|
|
/// 评价右边约束
|
@IBOutlet weak var evaluationRightContraint: NSLayoutConstraint!
|
|
/// 评价左边约束
|
@IBOutlet weak var evaluationLeftContraint: NSLayoutConstraint!
|
|
/// 评价按钮
|
@IBOutlet weak var button_evaluation: YYButton!
|
|
/// 标签
|
@IBOutlet weak var tagsView: HXTagsView!
|
|
/// 金额
|
@IBOutlet weak var button_money: UIButton!
|
|
/// 评分
|
@IBOutlet weak var starView: HCSStarRatingView!
|
|
/// 分数
|
@IBOutlet weak var label_score: UILabel!
|
|
/// 车牌
|
@IBOutlet weak var label_licensePlate: UILabel!
|
|
/// 名字
|
@IBOutlet weak var label_name: UILabel!
|
|
/// 品牌
|
@IBOutlet weak var label_brand: UILabel!
|
|
/// 评价数组
|
private var evaluationArray: [String] = []
|
|
/// 评价
|
let didPressEvaluation = Delegate<(CGFloat,String?),Void>()
|
|
let didPressMore = Delegate<Void,Void>()
|
/// 获取Self
|
/// - Returns: Self
|
class func instance() -> TaxiOrderDetailsView {
|
let v = UINib(nibName: "TaxiOrderDetailsView", bundle: nil).instantiate(withOwner: self, options: nil).first as! TaxiOrderDetailsView
|
v.setupViews()
|
v.bindRx()
|
return v
|
}
|
|
|
//MARK: - UI
|
func setupViews() {
|
starView.value = 0
|
starView.addTarget(self, action: #selector(starRatingChanged), for: .valueChanged)
|
tagsView.layout.scrollDirection = .vertical
|
tagsView.backgroundColor = UIColor.clear
|
tagsView.tagAttribute.selectedBackgroundColor = UIColor.white
|
tagsView.tagAttribute.borderColor = UIColor.color(hexString: "#CCCCCC")
|
tagsView.tagAttribute.selectedBorderColor = UIColor.clear
|
tagsView.tagAttribute.selectedTextColor = UIColor.white
|
tagsView.tagAttribute.textColor = UIColor.color(hexString: "#27282D",0.6)
|
tagsView.tagAttribute.titleSize = 10
|
tagsView.tagAttribute.tagSpace = 12
|
tagsView.tagAttribute.cornerRadius = 2
|
let size = CGSize(width: 50, height: 27)
|
tagsView.layout.itemSize = size
|
tagsView.isMultiSelect = true
|
tagsView.layout.sectionInset = UIEdgeInsets.init(top: 6, left: 14, bottom: 6, right: 14)
|
tagsView.completion = { [unowned self] (selectTags, index) in
|
self.evaluationArray = selectTags as? [String] ?? []
|
}
|
}
|
|
//MARK: - Rx
|
func bindRx() {
|
button_evaluation.rx.tap.subscribe(onNext: {[unowned self] (_) in
|
if self.starView.value == 0{
|
alert(text: "请给司机打分")
|
return
|
}
|
var tags: String? = nil
|
if self.evaluationArray.count != 0{
|
let content = (self.evaluationArray as NSArray).componentsJoined(by: ",")
|
tags = content
|
}
|
self.didPressEvaluation.call((self.starView.value, tags))
|
}).disposed(by: rx.disposeBag)
|
|
button_money.rx.tap
|
.subscribe(onNext: {[unowned self] (_) in
|
self.didPressMore.call()
|
})
|
.disposed(by: rx.disposeBag)
|
}
|
|
/// 评分
|
@objc func starRatingChanged() {
|
if starView.value < 5{
|
self.evaluationLeftContraint.constant = 10
|
self.evaluationRightContraint.constant = 10
|
}else{
|
self.evaluationLeftContraint.constant = 50
|
self.evaluationRightContraint.constant = 50
|
}
|
tagsView.clearSelectedTags()
|
tagsView.isHidden = false
|
button_evaluation.isHidden = false
|
let array = getEvaluatContent(value: Int(starView.value))
|
tagsView.tags = array
|
tagsView.reloadData()
|
let height = HXTagsView.getEqualSpaceFlowLayoutHeight(withTags: array, layout: tagsView.layout, tagAttribute: tagsView.tagAttribute, width: screenW - (self.evaluationLeftContraint.constant + self.evaluationRightContraint.constant))
|
self.evaluationConstraint.constant = height
|
}
|
|
func configure(data: TravelServiceModel) {
|
label_name.text = data.driverName
|
label_licensePlate.text = data.licensePlate
|
label_brand.text = "\(data.brand) \(data.carColor)"
|
label_score.text = "\(data.score.remain1Digits())"
|
button_money.setTitle("\(data.payMoney.remain2Digits())元", for: .normal)
|
starView.value = data.orderScore.remain1Digits().wy_toFloat()
|
// 8=待评价,9=已完成,10=已取消,11=改派中
|
if data.state == 8{
|
starView.isUserInteractionEnabled = true
|
tagsView.isUserInteractionEnabled = true
|
button_evaluation.isHidden = false
|
self.buttonHeightConstraint.constant = 40
|
}else if data.state == 9{
|
starView.isUserInteractionEnabled = false
|
tagsView.isUserInteractionEnabled = false
|
button_evaluation.isHidden = true
|
self.buttonHeightConstraint.constant = 0
|
}
|
if data.orderScore < 5{
|
self.evaluationLeftContraint.constant = 10
|
self.evaluationRightContraint.constant = 10
|
}else{
|
self.evaluationLeftContraint.constant = 50
|
self.evaluationRightContraint.constant = 50
|
}
|
let selectedArray = data.evaluate.components(separatedBy: ",")
|
if data.evaluate != ""{
|
self.tagsView.clearSelectedTags()
|
let array = self.getEvaluatContent(value: Int(data.orderScore))
|
self.tagsView.tags = selectedArray
|
self.tagsView.reloadData()
|
self.tagsView.reloadSelectedTags(selectedArray)
|
let height = HXTagsView.getEqualSpaceFlowLayoutHeight(withTags: array, layout: self.tagsView.layout, tagAttribute: self.tagsView.tagAttribute, width: screenW - (self.evaluationLeftContraint.constant + self.evaluationRightContraint.constant))
|
self.tagsView.isHidden = false
|
self.evaluationConstraint.constant = height
|
}else{
|
self.tagsView.isHidden = true
|
self.evaluationConstraint.constant = 0
|
}
|
}
|
|
/// 获取评价内容
|
/// - Parameter value: 评分
|
/// - Returns: 内容
|
func getEvaluatContent(value: Int) -> [String] {
|
if value < 5{
|
return ["道路不熟","服务态度恶劣","车辆肮脏","车内有异味","车牌号不符","司机吸烟","打电话玩手机","未坐好就开车","未提醒系安全带","未提醒开门注意","过路口不减速","索要好评"]
|
}else{
|
return ["车内整洁","活地图认路准","驾驶平稳","态度好服务棒"]
|
}
|
}
|
}
|