宽窄优行-由【嘉易行】项目成品而来
younger_times
2023-05-29 a26039cd1a9437d2232ccaea7f5a66f59a46ee69
新增
8个文件已修改
152 ■■■■■ 已修改文件
OKProject/API/API.swift 31 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
OKProject/Class/Enums.swift 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
OKProject/Class/Home/Controller/HomeVC.swift 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
OKProject/Class/Home/Controller/ReasonforTravelVC.swift 21 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
OKProject/Class/Home/Controller/TravelVC.swift 78 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
OKProject/Class/Home/Model/EnterpriseModel.swift 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
OKProject/Class/Home/ViewModel/TravelViewModel.swift 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
OKProject/Class/Order/Controller/MyOrderListVC.swift 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
OKProject/API/API.swift
@@ -688,6 +688,12 @@
    case getCompanyLimitDetail(id:Int)
    case companyLimitApprove(id:Int,remark:String? = nil,status:Int)
    case getBusinessReason
    case queryBusinessCar(calType:CalType,endLonLat:String,startLonLat:String,startTime:String? = nil,endTime:String? = nil)
    case validPermission
}
@@ -1004,6 +1010,12 @@
                return "/api/user/getCompanyLimitDetail"
            case .companyLimitApprove:
                return "/api/user/companyLimitApprove"
        case .getBusinessReason:
            return "/api/business/getBusinessReason"
        case .queryBusinessCar:
            return "/api/business/queryBusinessCarModel"
        case .validPermission:
            return "/api/business/validPermission"
        }
    }
    
@@ -2011,6 +2023,25 @@
                    .append(key: "remark", value: remark)
                    .append(key: "status", value: status)
                return .requestParameters(parameters: params.done(), encoding: URLEncoding.queryString)
        case .getBusinessReason:
            let params = APIParamsAppender()
            return .requestParameters(parameters: params.done(), encoding: URLEncoding.queryString)
        case .queryBusinessCar(let calType, let endLonLat, let startLonLat, let startTime, let endTime):
            let params = APIParamsAppender()
                .append(key: "carType", value: calType.rawValue)
                .append(key: "endLonLat", value: endLonLat)
                .append(key: "startLonLat", value: startLonLat)
                .append(key: "startTime", value: startTime)
                .append(key: "endTime", value: endTime)
            return .requestParameters(parameters: params.done(), encoding: URLEncoding.queryString)
        case .validPermission:
            let params = APIParamsAppender()
            return .requestParameters(parameters: params.done(), encoding: URLEncoding.queryString)
        }
    }
}
OKProject/Class/Enums.swift
@@ -184,6 +184,11 @@
    }
}
enum CalType:Int{
    case Single = 1
    case Charter = 2
}
enum LinesType:Int,HandyJSONEnum{
    case none = -1
    case pending = 0
OKProject/Class/Home/Controller/HomeVC.swift
@@ -697,7 +697,7 @@
                let vc = TravelVC(orderType: .special)
                vc.showCar = showCar
                return vc
            case "公务出行":
            case "公务用车":
                let vc = TravelVC.init(orderType: .offical)
                vc.showCar = showCar
                vc.officialCharterClouse = { [weak self] in
OKProject/Class/Home/Controller/ReasonforTravelVC.swift
@@ -35,6 +35,7 @@
    @IBOutlet weak var tf_passengerPhone: UITextField!
    @IBOutlet weak var view_addPassenger: UIView!
    var passengers = [PassengerInfo]()
    var reasonModels = [ReasonModel]()
    var selectIndex = 0
@@ -56,6 +57,21 @@
        passengers.append(PassengerInfo(name: "杨锴", phone: "18111223301"))
        tableViewHeiCons.constant = 40 * Double(passengers.count)
        APIManager.shared.provider.rx.request(.getBusinessReason).mapThenValidate([ReasonModel].self).subscribe { result in
            switch result{
            case .success(let m):
                self.reasonModels = m ?? []
                let h = ceil(Double(self.reasonModels.count) / 4.0) * 30.0 + floor(Double(self.reasonModels.count) / 4.0) * 10.0
                self.collectViewHeiCons.constant = h
                self.collectionView.reloadData()
            case .failure(let error):
                alert(text: error.localizedDescription)
            }
        } onError: { error in
            alert(text: error.localizedDescription)
        }.disposed(by: disposeBag)
    }
    override func bindRx() {
@@ -139,7 +155,8 @@
extension ReasonforTravelVC:UICollectionViewDataSource{
    func collectionView(_ collectionView: UICollectionView, cellForItemAt indexPath: IndexPath) -> UICollectionViewCell {
        let cell = collectionView.dequeueReusableCell(withReuseIdentifier: "_Common_SingleText_CCell", for: indexPath) as! Common_SingleText_CCell
        cell.titleL.text = "测试"
        let model = reasonModels[indexPath.row]
        cell.titleL.text = model.name
        cell.titleL.borderWidth = 1
        cell.titleL.cornerRadius = 2
        cell.titleL.backgroundColor = .white
@@ -155,7 +172,7 @@
    }
    func collectionView(_ collectionView: UICollectionView, numberOfItemsInSection section: Int) -> Int {
        return 8
        return reasonModels.count
    }
}
OKProject/Class/Home/Controller/TravelVC.swift
@@ -90,6 +90,15 @@
        // 选择起点
        cell.origin.delegate(on: self) { (self, _) in
            if self.viewModel.orderType.value == .offical && self.viewModel.authStatus.value == false{
                alert(popup: .single, title: "提示", text: "未通过企业认证", submitTitle: "确定", cancelTitle: "取消") {
                } cancelClick: {
                }
                return
            }
            if self.viewModel.orderType.value == .special{
                let vc = SearchAddressDragVC()
                vc.orderType.accept(.special)
@@ -134,6 +143,14 @@
        
        // 选择终点
        cell.destination.delegate(on: self) { (self, _) in
            if self.viewModel.orderType.value == .offical && self.viewModel.authStatus.value == false{
                alert(popup: .single, title: "提示", text: "未通过企业认证", submitTitle: "确定", cancelTitle: "取消") {
                } cancelClick: {
                }
                return
            }
            if self.viewModel.orderType.value == .special{
                let vc = SearchAddressDragVC()
@@ -160,6 +177,14 @@
        
        // 选择人数
        cell.appointment.delegate(on: self) { (self, _) in
            if self.viewModel.orderType.value == .offical && self.viewModel.authStatus.value == false{
                alert(popup: .single, title: "提示", text: "未通过企业认证", submitTitle: "确定", cancelTitle: "取消") {
                } cancelClick: {
                }
                return
            }
            if self.viewModel.orderType.value == OrderType.special{
                let num = YYMapViewManager.share.passengerNum.value
                SpecialSealAffirmView.show(defaultNum: num, affirmClouse: { num in
@@ -180,6 +205,15 @@
            }
            if self.viewModel.orderType.value == OrderType.offical{
                if self.viewModel.authStatus.value == false{
                    alert(popup: .single, title: "提示", text: "未通过企业认证", submitTitle: "确定", cancelTitle: "取消") {
                    } cancelClick: {
                    }
                    return
                }
                let view = TaxiReservationView()
                view.show(intervalMinute:20)
                view.complete.delegate(on: self) { (self, timeStamp) in
@@ -199,6 +233,15 @@
            //公务车出行事由
            if self.viewModel.orderType.value == .offical{
                if self.viewModel.authStatus.value == false{
                    alert(popup: .single, title: "提示", text: "未通过企业认证", submitTitle: "确定", cancelTitle: "取消") {
                    } cancelClick: {
                    }
                    return
                }
                let vc = ReasonforTravelVC()
                vc.view.backgroundColor = UIColor.black.withAlphaComponent(0)
                vc.view.frame = CGRect(x: 0, y: screenH, width: ScreenWidth, height: ScreenHeight)
@@ -234,6 +277,16 @@
        cell.tip.delegate(on: self) { (self, _) in
                //公务车计费方式
                if self.viewModel.orderType.value == .offical{
                    if self.viewModel.orderType.value == .offical && self.viewModel.authStatus.value == false{
                        alert(popup: .single, title: "提示", text: "未通过企业认证", submitTitle: "确定", cancelTitle: "取消") {
                        } cancelClick: {
                        }
                        return
                    }
                    MineInfoView.instance(data: ["单程计费","包车计费"]).show { (row) in
                        if row == 0{
@@ -256,6 +309,16 @@
        cell.contact.delegate(on: self) { (self, _) in
            if self.viewModel.orderType.value == .special{
                if self.viewModel.orderType.value == .offical && self.viewModel.authStatus.value == false{
                    alert(popup: .single, title: "提示", text: "未通过企业认证", submitTitle: "确定", cancelTitle: "取消") {
                    } cancelClick: {
                    }
                    return
                }
                //乘车人信息
                let vc = PassengerVC()
                vc.orderType.accept(self.viewModel.orderType.value)
@@ -378,7 +441,20 @@
        advertViewModel.advertType.accept(2)
        advertViewModel.getAdvertising()
        cell_address.queryServerCarModel()
        if viewModel.orderType.value == .offical{
            APIManager.shared.provider.rx.request(.validPermission).mapThenValidate(AuthStatusModel.self).subscribe { restult in
                switch restult{
                case .success(let m):
                    self.viewModel.authStatus.accept(m?.permission ?? false)
                case .failure(let error):
                    alert(text: error.localizedDescription)
                }
            } onError: { error in
                alert(text: error.localizedDescription)
            }.disposed(by: disposeBag)
        }
    }
    
    //MARK: - viewWillAppear
OKProject/Class/Home/Model/EnterpriseModel.swift
@@ -45,3 +45,14 @@
    var staffName = ""
    var status:LinesType = .none
}
struct ReasonModel:HandyJSON{
    var companyId = ""
    var createTime = ""
    var id = 0
    var name = ""
}
struct AuthStatusModel:HandyJSON{
    var permission = false
}
OKProject/Class/Home/ViewModel/TravelViewModel.swift
@@ -53,6 +53,8 @@
    /// 订单Id
    let orderId = BehaviorRelay<Int>(value: 0)
    
    let authStatus = BehaviorRelay<Bool>(value: false)
    /// 获取正在进行中的订单
    func queryServingOrder()  {
        APIManager.shared.provider.rx
OKProject/Class/Order/Controller/MyOrderListVC.swift
@@ -108,7 +108,7 @@
                vc = TaxiOrderListVC.init(orderType: .scenic)
            }
            return vc!
        case "公务出行":
        case "公务用车":
            var vc:LogisticsListVC?
            if vc == nil {
                vc = LogisticsListVC.init(orderType: .offical)