//
|
// YYViewModel.swift
|
// OKProject
|
//
|
// Created by alvin_y on 2020/5/20.
|
// Copyright © 2020 yangwang. All rights reserved.
|
//
|
|
import Foundation
|
import RxSwift
|
import RxCocoa
|
import HandyJSON
|
import MBProgressHUD
|
|
// 假设这是服务端返回的统一定义的response格式
|
struct BaseResponse<T :HandyJSON>: HandyJSON {
|
var sysTime: Int = 0
|
var code: Int = -1 // 服务端返回码
|
var data: T? = nil // 具体的data的格式和业务相关,故用泛型定义
|
var msg: String = "请求失败"
|
}
|
enum RequestStatus {
|
case loading
|
case success(_ model: Any?)
|
case error(_ error: Error)
|
}
|
|
enum ResponseStatus<T:HandyJSON> {
|
case success(_ model: T? = nil)
|
case error(_ error: Error)
|
}
|
|
class YYViewModel {
|
|
lazy var requestSubject = PublishSubject<RequestStatus>()
|
|
|
let disposeBag = DisposeBag()
|
var hud : MBProgressHUD?
|
|
func show(){
|
let hud = MBProgressHUD.showAdded(to: UIApplication.shared.keyWindow!, animated: true)
|
hud.mode = .indeterminate
|
hud.bezelView.style = .solidColor
|
hud.bezelView.color = #colorLiteral(red: 0, green: 0, blue: 0, alpha: 0.7)
|
hud.customView?.frame = CGRect(x: 0, y: 0, width: 50, height: 50)
|
self.hud = hud
|
}
|
|
func hidden(){
|
hud?.hide(animated: true)
|
}
|
|
}
|