宽窄优行-由【嘉易行】项目成品而来
younger_times
2023-06-01 60a5e5d29ea3a7c63bc5acc9052a656821127ab9
新增修改
13个文件已修改
386 ■■■■■ 已修改文件
OKProject/API/API.swift 30 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
OKProject/Class/Enums.swift 18 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
OKProject/Class/Home/Controller/OrderReviewDetailVC.swift 104 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
OKProject/Class/Home/Controller/OrderReviewDetailVC.xib 23 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
OKProject/Class/Home/Controller/OrderReviewListVC.swift 28 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
OKProject/Class/Home/Model/EnterpriseModel.swift 33 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
OKProject/Class/Home/Model/TravelServiceModel.swift 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
OKProject/Class/Home/View/OrderReviewTCell.swift 116 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
OKProject/Class/Home/View/OrderReviewTCell.xib 16 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
OKProject/Class/Home/ViewModel/TravelViewModel.swift 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
OKProject/Class/Order/Controller/TaxiOrderListVC.swift 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
OKProject/Class/Order/Model/TaxiOrderModel.swift 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
OKProject/Class/Taxi/Controller/TravelServiceVC.swift 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
OKProject/API/API.swift
@@ -698,6 +698,12 @@
    case queryOfficalCarModel(calType:Int,startLonLat:String,endLonLat:String,startTime:String? = nil,endTime:String? = nil)
    
    case saveOrderBusiness(model:OfficalRequstModel)
    case approveOrderList(pageNum:Int)
    case approveOrderDetail(id:Int)
    case approveOrderAudit(id:Int,status:Int,auditRemark:String? = nil)
}
@@ -1024,6 +1030,12 @@
            return "/api/business/queryBusinessCarModel"
        case .saveOrderBusiness:
            return "/api/business/saveOrderBusiness"
        case .approveOrderList:
            return "/api/business/approveOrderList"
        case .approveOrderDetail:
            return "/api/business/approveOrderDetail"
        case .approveOrderAudit:
            return "/api/business/approveOrder"
        }
    }
    
@@ -2062,6 +2074,24 @@
            let params = APIParamsAppender()
                params.params = model.toJSON() ?? [:]
            return .requestParameters(parameters: params.done(), encoding: URLEncoding.queryString)
        case .approveOrderList(let pageNum):
            let params = APIParamsAppender()
                .append(key: "pageNum", value: pageNum)
                .append(key: "size", value: 20)
            return .requestParameters(parameters: params.done(), encoding: URLEncoding.queryString)
        case .approveOrderDetail(let id):
            let params = APIParamsAppender()
                .append(key: "id", value: id)
            return .requestParameters(parameters: params.done(), encoding: URLEncoding.queryString)
        case .approveOrderAudit(let id, let status, let auditRemark):
            let params = APIParamsAppender()
                .append(key: "id", value: id)
                .append(key: "auditStatus", value: status)
                .append(key: "auditRemark", value: auditRemark)
            return .requestParameters(parameters: params.done(), encoding: URLEncoding.queryString)
        }
    }
}
OKProject/Class/Enums.swift
@@ -187,6 +187,13 @@
enum CalType:Int,HandyJSONEnum{
    case Single = 1
    case Charter = 2
    var rawString:String{
        switch self{
        case .Single:return "单程计费"
        case .Charter:return "包车计费"
        }
    }
}
enum LinesType:Int,HandyJSONEnum{
@@ -214,10 +221,19 @@
}
enum OfficalPaymentType:Int{
enum OfficalPaymentType:Int,HandyJSONEnum{
    //1=自费,2=企业支付)
    case none = 0
    case selfPay = 1
    case company = 2
    var rawStr:String{
        switch self{
        case .selfPay:return "自费"
        case .company:return "企业支付"
        case .none:return "未知"
        }
    }
}
enum OrderAuthStatus:Int,HandyJSONEnum{
OKProject/Class/Home/Controller/OrderReviewDetailVC.swift
@@ -7,11 +7,113 @@
//
import UIKit
import QMUIKit
class OrderReviewDetailVC: YYViewController {
    private var id:Int!
    @IBOutlet weak var label_startAddress: UILabel!
    @IBOutlet weak var label_billing: UILabel!
    @IBOutlet weak var label_detailAddress: UILabel!
    @IBOutlet weak var label_payType: UILabel!
    @IBOutlet weak var stack_users: UIStackView!
    @IBOutlet weak var label_reason: UILabel!
    @IBOutlet weak var label_carType: UILabel!
    @IBOutlet weak var label_peopleNum: UILabel!
    @IBOutlet weak var textView_content: QMUITextView!
    @IBOutlet weak var label_textNum: UILabel!
    @IBOutlet weak var view_handle: UIView!
    init(id:Int) {
        super.init(nibName: nil, bundle: nil)
        self.id = id
    }
    required init?(coder: NSCoder) {
        fatalError("init(coder:) has not been implemented")
    }
    override func viewDidLoad() {
        super.viewDidLoad()
        title = "订单审核"
        APIManager.shared.provider.rx.request(.approveOrderDetail(id: id)).mapThenValidate(OrderReviewDetailModel.self).subscribe(onSuccess: {[weak self] result in
            guard let weakSelf = self else { return}
            switch result{
            case .success(let m):
                weakSelf.label_startAddress.text = m?.startAddress ?? ""
                weakSelf.label_detailAddress.text = m?.endAddress ?? ""
                weakSelf.label_billing.text = m?.calType.rawString ?? ""
                weakSelf.label_reason.text = m?.reasonTypeNames ?? ""
                weakSelf.label_carType.text = m?.serverCardName ?? ""
                weakSelf.textView_content.text = m?.auditRemark ?? ""
                weakSelf.label_peopleNum.text = "\(m?.peopleNum ?? 0)"
                weakSelf.label_payType.text = m?.payWay.rawStr ?? ""
                weakSelf.stack_users.removeSubviews()
                for v in m!.peopleItems{
                    if v.name.isEmpty && v.phone.isEmpty {continue}
                    let label = UILabel(text: String(format: "%@ %@", v.name,v.phone))
                    label.textColor = UIColor(hexString: "#333333")
                    label.textAlignment = .left
                    label.font = UIFont.systemFont(ofSize: 12, weight: .medium)
                    weakSelf.stack_users.addArrangedSubview(label)
                }
                switch m?.auditStatus{
                case .pass,.reject:
                    weakSelf.view_handle.isHidden = true
                    weakSelf.textView_content.isEditable = false
                case .review:
                    weakSelf.view_handle.isHidden = false
                    weakSelf.textView_content.isEditable = true
                default:break
                }
            case .failure(let error):
                alert(text: error.localizedDescription)
            }
        }) { error in
            alert(text: error.localizedDescription)
        }.disposed(by: disposeBag)
    }
    override func bindRx() {
        textView_content.rx.text.orEmpty.subscribe(onNext: { [weak self] text in
            self?.label_textNum.text = "\(text.length) / 50"
        }).disposed(by: disposeBag)
    }
    @IBAction func rejectAction(_ sender: UIButton) {
        guard !textView_content.text.isEmpty else {
            alert(text: "请输入拒绝内容");return
        }
        APIManager.shared.provider.rx.request(.approveOrderAudit(id: id, status: 2, auditRemark: textView_content.text)).mapThenValidate(Nothing.self).subscribe(onSuccess: {result in
            switch result{
            case .success(_):
                alert(text: "已提交")
                self.view_handle.isHidden = true
                NotificationCenter.default.post(name: OrderReviewRefresh_Noti, object: nil)
            case .failure(let error):alert(text: error.localizedDescription)
            }
        }) { error in
            alert(text: error.localizedDescription)
        }.disposed(by: disposeBag)
    }
    @IBAction func agreenAction(_ sender: UIButton) {
        APIManager.shared.provider.rx.request(.approveOrderAudit(id: id, status: 1)).mapThenValidate(Nothing.self).subscribe(onSuccess: {result in
            switch result{
            case .success(_):
                alert(text: "已提交")
                self.view_handle.isHidden = true
                NotificationCenter.default.post(name: OrderReviewRefresh_Noti, object: nil)
            case .failure(let error):alert(text: error.localizedDescription)
            }
        }) { error in
            alert(text: error.localizedDescription)
        }.disposed(by: disposeBag)
    }
}
OKProject/Class/Home/Controller/OrderReviewDetailVC.xib
@@ -1,9 +1,9 @@
<?xml version="1.0" encoding="UTF-8"?>
<document type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="3.0" toolsVersion="21701" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" useTraitCollections="YES" useSafeAreas="YES" colorMatched="YES">
<document type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="3.0" toolsVersion="21507" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" useTraitCollections="YES" useSafeAreas="YES" colorMatched="YES">
    <device id="retina6_12" orientation="portrait" appearance="light"/>
    <dependencies>
        <deployment identifier="iOS"/>
        <plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="21678"/>
        <plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="21505"/>
        <capability name="Named colors" minToolsVersion="9.0"/>
        <capability name="Safe area layout guides" minToolsVersion="9.0"/>
        <capability name="System colors in document resources" minToolsVersion="11.0"/>
@@ -12,7 +12,18 @@
    <objects>
        <placeholder placeholderIdentifier="IBFilesOwner" id="-1" userLabel="File's Owner" customClass="OrderReviewDetailVC" customModule="OK出行" customModuleProvider="target">
            <connections>
                <outlet property="label_billing" destination="sT3-Mo-Mh6" id="4MM-bc-5wE"/>
                <outlet property="label_carType" destination="PwF-Wq-NkS" id="xzT-41-05n"/>
                <outlet property="label_detailAddress" destination="JLA-SC-Gqx" id="rLD-B3-TRU"/>
                <outlet property="label_payType" destination="Bkz-AG-Ikt" id="7lW-Jt-R7Y"/>
                <outlet property="label_peopleNum" destination="BvR-db-krZ" id="3hm-eI-e0o"/>
                <outlet property="label_reason" destination="b0t-BE-4cT" id="12E-Y1-Nle"/>
                <outlet property="label_startAddress" destination="qeF-vv-kqF" id="c6T-R6-Sir"/>
                <outlet property="label_textNum" destination="ZUk-py-HhM" id="Pfc-Md-F3w"/>
                <outlet property="stack_users" destination="YlH-MV-euN" id="ECc-FZ-twB"/>
                <outlet property="textView_content" destination="PPD-3r-Eqm" id="ca2-WR-rCJ"/>
                <outlet property="view" destination="i5M-Pr-FkT" id="sfx-zR-JGt"/>
                <outlet property="view_handle" destination="2Cr-kP-eHw" id="7XB-im-vjv"/>
            </connections>
        </placeholder>
        <placeholder placeholderIdentifier="IBFirstResponder" id="-2" customClass="UIResponder"/>
@@ -305,7 +316,7 @@
                                <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="OBo-ya-pnw">
                                    <rect key="frame" x="0.0" y="408.66666666666669" width="393" height="176.66666666666669"/>
                                    <subviews>
                                        <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="选择车型:" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="FYl-eO-e7q">
                                        <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="具体内容:" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="FYl-eO-e7q">
                                            <rect key="frame" x="14" y="10" width="71.666666666666671" height="30"/>
                                            <constraints>
                                                <constraint firstAttribute="height" constant="30" id="k4b-at-ooD"/>
@@ -382,6 +393,9 @@
                                                    <real key="value" value="4"/>
                                                </userDefinedRuntimeAttribute>
                                            </userDefinedRuntimeAttributes>
                                            <connections>
                                                <action selector="rejectAction:" destination="-1" eventType="touchUpInside" id="Pgs-C3-xnb"/>
                                            </connections>
                                        </button>
                                        <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="uAr-bZ-5WA">
                                            <rect key="frame" x="216" y="69" width="136" height="40"/>
@@ -397,6 +411,9 @@
                                                    <real key="value" value="4"/>
                                                </userDefinedRuntimeAttribute>
                                            </userDefinedRuntimeAttributes>
                                            <connections>
                                                <action selector="agreenAction:" destination="-1" eventType="touchUpInside" id="bbK-IC-O8i"/>
                                            </connections>
                                        </button>
                                    </subviews>
                                    <color key="backgroundColor" systemColor="systemBackgroundColor"/>
OKProject/Class/Home/Controller/OrderReviewListVC.swift
@@ -8,15 +8,39 @@
import UIKit
class OrderReviewViewModel:YYRefreshViewModel<OrderReviewModel>{
    override func api() -> API! {
        return .approveOrderList(pageNum: currentPage)
    }
}
let OrderReviewRefresh_Noti = Notification.Name.init("OrderReviewRefresh_Noti")
class OrderReviewListVC: YYTableViewController {
    private var viewModel:OrderReviewViewModel!
    override func viewDidLoad() {
        super.viewDidLoad()
        title = "订单审核"
        viewModel = OrderReviewViewModel()
        viewModel.configure(tableView: tableView)
        tableView.delegate = self
        tableView.dataSource = self
        tableView.separatorStyle = .none
        tableView.register(UINib(nibName: "OrderReviewTCell", bundle: nil), forCellReuseIdentifier: "_OrderReviewTCell")
        tableView.beginRefreshing()
    }
    override func bindRx() {
        NotificationCenter.default.rx.notification(OrderReviewRefresh_Noti).takeUntil(self.rx.deallocated).subscribe(onNext: {[weak self] noti in
            self?.tableView.beginRefreshing()
        }).disposed(by: disposeBag)
    }
}
@@ -26,12 +50,14 @@
extension OrderReviewListVC:UITableViewDataSource{
    func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
        return 10
        return viewModel.dataSource.value.count
    }
    func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
        let model = viewModel.dataSource.value[indexPath.row]
        let cell = tableView.dequeueReusableCell(withIdentifier: "_OrderReviewTCell") as! OrderReviewTCell
        cell.backgroundColor = .clear
        cell.orderReviewModel = model
        return cell
    }
}
OKProject/Class/Home/Model/EnterpriseModel.swift
@@ -72,7 +72,7 @@
    var passengersPhone:String?
    
    /// 付费方式(1=自费,2=企业支付)
    var payWay:Int!
    var payWay:OfficalPaymentType!
    
    /// 出行人员详情JSON格式数组对象[{"name":"小明","phone":"15908401993"}]
    var people:String?
@@ -101,3 +101,34 @@
    /// 是否通知
    var isNotice:Int?
}
struct OrderReviewModel:HandyJSON{
    var auditStatus:OrderAuthStatus!
    var id = 0
    var insertTime = ""
    var serverCardName = ""
    var useDay = 0
    var useHour = 0
    var useTime = ""
}
struct OrderReviewDetailModel:HandyJSON{
    var auditRemark = ""
    var auditStatus:OrderAuthStatus!
    var calType:CalType!
    var endAddress = ""
    var id = 0
    var passengers = ""
    var passengersPhone = ""
    var payWay:OfficalPaymentType!
    var peopleNum = 0
    var reasonTypeNames = ""
    var serverCardName = ""
    var startAddress = ""
    var peopleItems = [OrderReviewDetailPeoepleModel]()
}
struct OrderReviewDetailPeoepleModel:HandyJSON{
    var name = ""
    var phone = ""
}
OKProject/Class/Home/Model/TravelServiceModel.swift
@@ -92,6 +92,8 @@
    
    var auditStatus:OrderAuthStatus!
    
    var auditRemark:String = ""
    /// 司机头像
    var driverAvatar: String = ""
    
OKProject/Class/Home/View/OrderReviewTCell.swift
@@ -9,6 +9,68 @@
import UIKit
class OrderReviewTCell: UITableViewCell {
    @IBOutlet weak var label_datetime: UILabel!
    @IBOutlet weak var label_state: UILabel!
    @IBOutlet weak var label_useTime: UILabel!
    @IBOutlet weak var label_useDatetime: UILabel!
    @IBOutlet weak var btn_detail: UIButton!
    @IBOutlet weak var label_useRequire: UILabel!
    var viewModel:TravelServiceViewModel?
    var orderReviewModel:OrderReviewModel!{
        didSet{
            label_useRequire.text = "用车要求:" + orderReviewModel.serverCardName
            label_datetime.text = orderReviewModel.insertTime
            label_state.text = orderReviewModel.auditStatus.rawStr
            switch orderReviewModel.auditStatus{
            case .review:
                label_state.text = "待处理"
                label_state.textColor = UIColor(hexString: "#45B494")
            case .reject:
                label_state.text = "已拒绝"
                label_state.textColor = UIColor.red
            case .pass:
                label_state.text = "已处理"
                label_state.textColor = UIColor(hexString: "#626262")
            default:break
            }
            label_useTime.isHidden  = (orderReviewModel.useDay == 0 && orderReviewModel.useHour == 0)
            label_useDatetime.text = "用车时间:" + orderReviewModel.useTime
            label_useTime.text = String(format: "用车时长:%ld天%ld时", orderReviewModel.useDay,orderReviewModel.useHour)
        }
    }
    var taxiOrderModel:TaxiOrderModel!{
        didSet{
            label_useRequire.text = "用车要求:" + taxiOrderModel.serverCarModel
            label_datetime.text = taxiOrderModel.orderTime
            label_state.text = taxiOrderModel.auditStatus.rawStr
            switch taxiOrderModel.auditStatus{
            case .review:
                label_state.text = "待处理"
                label_state.textColor = UIColor(hexString: "#45B494")
                btn_detail.setTitle("取消订单", for: .normal)
            case .reject:
                label_state.text = "已拒绝"
                label_state.textColor = UIColor.red
                btn_detail.setTitle("详情", for: .normal)
            case .pass:
                label_state.text = "已处理"
                label_state.textColor = UIColor(hexString: "#626262")
                btn_detail.setTitle("详情", for: .normal)
            default:break
            }
            label_useTime.isHidden  = (taxiOrderModel.useDay == 0 && taxiOrderModel.useHour == 0)
            label_useDatetime.text = "用车时间:" + taxiOrderModel.useTime
            label_useTime.text = String(format: "用车时长:%ld天%ld时", taxiOrderModel.useDay,taxiOrderModel.useHour)
        }
    }
    override func awakeFromNib() {
        super.awakeFromNib()
@@ -16,7 +78,59 @@
    }
    @IBAction func detailAction(_ sender: UIButton) {
        let detailVC = OrderReviewDetailVC()
        if sender.titleLabel?.text == "取消订单"{
            alert(popup: .double, title: "提示", text: "您确定要取消该订单吗?", submitTitle: "确定取消", cancelTitle: "不取消", submitClick: { [weak self]  in
                guard let self = self else{return}
                self.viewModel = TravelServiceViewModel()
                self.viewModel?.cancleOrderTaxiSubject.subscribe(onNext: { status in
                    switch status{
                    case .success(_):
                        NotificationCenter.default.post(name: OrderReviewRefresh_Noti, object: nil)
                    case .error(let error):
                        alert(text: error.localizedDescription)
                    case .loading:break
                    }
                }, onError: { error in
                    alert(text: error.localizedDescription)
                }).disposed(by: self.rx.disposeBag)
                self.viewModel?.addCancleSubject.subscribe(onNext: { status in
                    switch status{
                    case .success(_):self.viewModel!.cancleOrderTaxi()
                    case .error(let error):
                        alert(text: error.localizedDescription)
                    case .loading:break
                    }
                }, onError: { error in
                    alert(text: error.localizedDescription)
                }).disposed(by: self.rx.disposeBag)
                self.viewModel!.orderId.accept(self.taxiOrderModel.orderId)
                self.viewModel!.orderType.accept(OrderType(rawValue: self.taxiOrderModel.orderType)!)
                self.viewModel!.addCancle()
            }){}
            return
        }
        var id:Int!
        if taxiOrderModel != nil {
            id = taxiOrderModel.orderId
        }
        if orderReviewModel != nil{
            id = orderReviewModel.id
        }
        let detailVC = OrderReviewDetailVC(id:id)
        LD_currentNavigationController().pushViewController(detailVC)
    }
}
OKProject/Class/Home/View/OrderReviewTCell.xib
@@ -1,9 +1,9 @@
<?xml version="1.0" encoding="UTF-8"?>
<document type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="3.0" toolsVersion="21701" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" useTraitCollections="YES" useSafeAreas="YES" colorMatched="YES">
<document type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="3.0" toolsVersion="21507" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" useTraitCollections="YES" useSafeAreas="YES" colorMatched="YES">
    <device id="retina6_12" orientation="portrait" appearance="light"/>
    <dependencies>
        <deployment identifier="iOS"/>
        <plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="21678"/>
        <plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="21505"/>
        <capability name="Named colors" minToolsVersion="9.0"/>
        <capability name="Safe area layout guides" minToolsVersion="9.0"/>
        <capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/>
@@ -63,7 +63,7 @@
                                        <nil key="highlightedColor"/>
                                    </label>
                                    <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="用车时长:--" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="XUh-TB-Vca">
                                        <rect key="frame" x="0.0" y="28.999999999999993" width="474" height="20"/>
                                        <rect key="frame" x="0.0" y="28.999999999999993" width="474" height="17"/>
                                        <constraints>
                                            <constraint firstAttribute="height" constant="20" id="zle-JS-2qg"/>
                                        </constraints>
@@ -72,7 +72,7 @@
                                        <nil key="highlightedColor"/>
                                    </label>
                                    <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="用车要求:--" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="cDi-go-g4u">
                                        <rect key="frame" x="0.0" y="58" width="474" height="17"/>
                                        <rect key="frame" x="0.0" y="55" width="474" height="20"/>
                                        <constraints>
                                            <constraint firstAttribute="height" constant="20" id="551-Xz-zuT"/>
                                        </constraints>
@@ -143,6 +143,14 @@
                </constraints>
            </tableViewCellContentView>
            <viewLayoutGuide key="safeArea" id="njF-e1-oar"/>
            <connections>
                <outlet property="btn_detail" destination="1bH-Jk-aMg" id="Se3-R2-9Y4"/>
                <outlet property="label_datetime" destination="z7g-xH-yxz" id="HTk-tu-kcQ"/>
                <outlet property="label_state" destination="WL8-RP-NkK" id="Vwt-3x-Au2"/>
                <outlet property="label_useDatetime" destination="7Zd-M3-Osl" id="l8A-iY-vMh"/>
                <outlet property="label_useRequire" destination="cDi-go-g4u" id="SaQ-P6-qRe"/>
                <outlet property="label_useTime" destination="XUh-TB-Vca" id="uVj-2R-ipc"/>
            </connections>
            <point key="canvasLocation" x="308.39694656488547" y="93.309859154929583"/>
        </tableViewCell>
    </objects>
OKProject/Class/Home/ViewModel/TravelViewModel.swift
@@ -196,7 +196,7 @@
        
        let calType = CalType(rawValue: YYMapViewManager.share.calType.value!)
        let reqModel = OfficalRequstModel(serverCarModelId:selectedCarType.value?.id,calType: calType, endAddress: destination.name, endLat: destination.lat, endLon: destination.lon, orderSource: 1, orderType: orderType, passengers: YYMapViewManager.share.passenger.value?.name, passengersPhone: YYMapViewManager.share.passenger.value?.phone, payWay: officalPaymentType.value.rawValue, people: passengers.value.arrayToJson(), peopleNum: passengers.value.count, placementLat: Double(YYMapViewManager.share.userLocation.latitude), placementLon: Double(YYMapViewManager.share.userLocation.longitude), reason: trailContentReason.value, reasonTypeNames: trailReason.value, startAddress: originInfo.name, startLat: originInfo.lat, startLon: originInfo.lon, substitute: substitute, travelTime: timeStamp, type: 1,travelEndTime: travelEndTime.value,isNotice: isNotice.value)
        let reqModel = OfficalRequstModel(serverCarModelId:selectedCarType.value?.id,calType: calType, endAddress: destination.name, endLat: destination.lat, endLon: destination.lon, orderSource: 1, orderType: orderType, passengers: YYMapViewManager.share.passenger.value?.name, passengersPhone: YYMapViewManager.share.passenger.value?.phone, payWay: officalPaymentType.value, people: passengers.value.arrayToJson(), peopleNum: passengers.value.count, placementLat: Double(YYMapViewManager.share.userLocation.latitude), placementLon: Double(YYMapViewManager.share.userLocation.longitude), reason: trailContentReason.value, reasonTypeNames: trailReason.value, startAddress: originInfo.name, startLat: originInfo.lat, startLon: originInfo.lon, substitute: substitute, travelTime: timeStamp, type: 1,travelEndTime: travelEndTime.value,isNotice: isNotice.value)
        
        APIManager.shared.provider.rx
            .request(.saveOrderBusiness(model: reqModel)).map(YYModel<SwitchCityModel>.self)
OKProject/Class/Order/Controller/TaxiOrderListVC.swift
@@ -46,6 +46,7 @@
        tableView.delegate = self
        tableView.dataSource = self
        tableView.register(cellName: "TaxiOrderListCell", identifier: "item")
        tableView.register(cellName: "OrderReviewTCell", identifier: "_OrderReviewTCell")
    }
    
    //MARK: - Rx
@@ -142,6 +143,14 @@
    }
    
    func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
        if viewModel.type.value == .offical{
            let cell = tableView.dequeueReusableCell(withIdentifier: "_OrderReviewTCell") as! OrderReviewTCell
            cell.taxiOrderModel = viewModel.dataSource.value[indexPath.row]
            cell.selectionStyle = .none
            return cell
        }
        let cell = tableView.dequeueReusableCell(withIdentifier: "item", for: indexPath) as! TaxiOrderListCell
        cell.configure(model: viewModel.dataSource.value[indexPath.row])
        cell.selectionStyle = .none
OKProject/Class/Order/Model/TaxiOrderModel.swift
@@ -73,6 +73,9 @@
    
    /// 审核状态(-1 正常订单,0待审核 1审核通过 2拒绝)'
    var auditStatus:OrderAuthStatus = .normal
    var useTime:String = ""
    var useDay:Int = 0
    var useHour:Int = 0
}
struct CouponListModel:HandyJSON{
OKProject/Class/Taxi/Controller/TravelServiceVC.swift
@@ -797,7 +797,7 @@
            self.view_container.backgroundColor = UIColor(hexString: "#F3F4F5")
            self.mapView.removeFromSuperview()
            self.button_cancelOrder.isHidden = false
            self.createAuditView(title: "审核被拒绝\n", subTitle: "")
            self.createAuditView(title: "审核被拒绝\n", subTitle: model.auditRemark)
            return
        }