宽窄优行-由【嘉易行】项目成品而来
无故事王国
2023-05-25 dc1998fc1ac124f6b9a0e434ccf91103dd936409
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
//
//  AgreementViewModel.swift
//  OKProject
//
//  Created by alvin_y on 2020/6/17.
//  Copyright © 2020 yangwang. All rights reserved.
//
 
import UIKit
import RxSwift
import RxCocoa
/// 数据类型(1:隐私协议,2:用户协议,3:用户指南,4:法律条款,5:关于我们,6=注册协议,7=取消订单说明,8=充值领券规则设置,常见问题12,计价规则13,14包车协议)
enum AgreementType {
    // 隐私协议
    case privacy
    // 用户协议
    case userAgreement
    // 用户指南
    case userGuide
    // 法律条款
    case legalProvisions
    // 关于我们
    case aboutUs
    // 注册协议
    case registered
    // 取消订单说明
    case cancel
    // 充值领券规则设置
    case topUp
    // 跨城服务协议
    case travel
    /// 常见问题
    case Q_A
    /// 计价
    case valuation
    /// 包车
    case charter
    /// 跨城物流协议
    case travelLositci
 
    case relation
//    /// 同城物流协议
//    case cityLositci
 
    case question
 
    case carRent
    case carSale
    case scenic
    func parame() -> Int {
        switch self {
        case .privacy:
            return 1
        case .userAgreement:
            return 2
        case .userGuide:
            return 3
        case .legalProvisions:
            return 4
        case .aboutUs:
            return 5
        case .registered:
            return 6
        case .cancel:
            return 7
        case .topUp:
            return 8
        case .travel:
            return 11
        case .Q_A:
            return 12
        case .valuation:
            return 13
        case .charter:
            return 14
        case .travelLositci:
            return 15
        case .relation:
            return 16
            case .question:
                return 21
            case .carRent:
                return 19
            case .carSale:
                return 20
            case .scenic:
                return 22
        }
    }
    
    func title() -> String {
        switch self {
        case .privacy:
            return "隐私协议"
        case .userAgreement:
            return "用户协议"
        case .userGuide:
            return "用户指南"
        case .legalProvisions:
            return "法律条款与平台规范"
        case .aboutUs:
            return "关于我们"
        case .registered:
            return "注册协议"
        case .cancel:
            return "取消说明"
        case .topUp:
            return "充值领券规则"
        case .travel:
            return "跨城出行须知"
        case .Q_A:
            return "常见问题"
        case .valuation:
            return "计价规则"
        case .charter:
            return "包车协议"
        case .travelLositci:
            return "小件物流服务协议"
        case .relation:
            return "亲密账户协议"
            case .carSale:
                return "汽车售卖协议"
            case .carRent:
                return "汽车出租协议"
            case .question:
                return "常见问题"
            case .scenic:
                return "景区直通车"
        }
    }
}
 
class AgreementViewModel: YYViewModel {
    
    /// 数据类型(1:隐私协议,2:用户协议,3:用户指南,4:法律条款,5:关于我们,6=注册协议,7=取消订单说明,8=充值领券规则设置)
    let type = BehaviorRelay<AgreementType>(value: .privacy)
    
 
    /// 协议
    func agreement() {
        requestSubject.onNext(.loading)
        APIManager.shared.provider.rx
            .request(.agreement(type: type.value.parame()))
            .map(YYModel<SwitchCityModel>.self)
            .validate()
            .subscribe(onSuccess: { [weak self] (model) in
                guard let data = model.data else {return}
                self?.requestSubject.onNext(.success(data))
            }) { (error) in
                self.requestSubject.onNext(.error(error))
            }
            .disposed(by: disposeBag)
    }
    
}