| | |
| | | |
| | | case saveOrderBusiness(model:OfficalRequstModel) |
| | | |
| | | case approveOrderList(pageNum:Int) |
| | | |
| | | case approveOrderDetail(id:Int) |
| | | |
| | | case approveOrderAudit(id:Int,status:Int,auditRemark:String? = nil) |
| | | |
| | | } |
| | | |
| | | |
| | |
| | | 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" |
| | | } |
| | | } |
| | | |
| | |
| | | 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) |
| | | } |
| | | } |
| | | } |
| | |
| | | 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{ |
| | |
| | | } |
| | | |
| | | |
| | | 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{ |
| | |
| | | // |
| | | |
| | | 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) |
| | | } |
| | | } |
| | |
| | | <?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"/> |
| | |
| | | <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"/> |
| | |
| | | <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"/> |
| | |
| | | <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"/> |
| | |
| | | <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"/> |
| | |
| | | |
| | | 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) |
| | | } |
| | | } |
| | | |
| | |
| | | |
| | | 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 |
| | | } |
| | | } |
| | |
| | | var passengersPhone:String? |
| | | |
| | | /// 付费方式(1=自费,2=企业支付) |
| | | var payWay:Int! |
| | | var payWay:OfficalPaymentType! |
| | | |
| | | /// 出行人员详情JSON格式数组对象[{"name":"小明","phone":"15908401993"}] |
| | | var people:String? |
| | |
| | | /// 是否通知 |
| | | 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 = "" |
| | | } |
| | |
| | | |
| | | var auditStatus:OrderAuthStatus! |
| | | |
| | | var auditRemark:String = "" |
| | | |
| | | /// 司机头像 |
| | | var driverAvatar: String = "" |
| | | |
| | |
| | | |
| | | 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() |
| | | selectionStyle = .none |
| | | } |
| | | |
| | | @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) |
| | | } |
| | | } |
| | |
| | | <?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"/> |
| | |
| | | <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> |
| | |
| | | <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> |
| | |
| | | </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> |
| | |
| | | |
| | | 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) |
| | |
| | | tableView.delegate = self |
| | | tableView.dataSource = self |
| | | tableView.register(cellName: "TaxiOrderListCell", identifier: "item") |
| | | tableView.register(cellName: "OrderReviewTCell", identifier: "_OrderReviewTCell") |
| | | } |
| | | |
| | | //MARK: - Rx |
| | |
| | | } |
| | | |
| | | 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 |
| | |
| | | |
| | | /// 审核状态(-1 正常订单,0待审核 1审核通过 2拒绝)' |
| | | var auditStatus:OrderAuthStatus = .normal |
| | | var useTime:String = "" |
| | | var useDay:Int = 0 |
| | | var useHour:Int = 0 |
| | | } |
| | | |
| | | struct CouponListModel:HandyJSON{ |
| | |
| | | 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 |
| | | } |
| | | |