NodelViewModel.swift 2.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116
  1. //
  2. // NodelViewModel.swift
  3. // naiyoup
  4. //
  5. // Created by C Auto on 2021/6/4.
  6. //
  7. import Foundation
  8. import SwiftyUserDefaults
  9. class NodelViewModel: ObservableObject {
  10. static let nodel = NodelViewModel()
  11. @Published var errmsg : String = ""
  12. @Published var isAlt : Bool = false
  13. @Published var loading : Bool = false
  14. @Published var isActive : Bool = false
  15. @Published var isEerr : Bool = false
  16. @Published var nodeList : [NodelModel] = []
  17. //设置当前选这种的线路
  18. @Published var nodeModel : NodelModel? = nil
  19. //请求节点
  20. func GetNode(){
  21. self.ShowLoading()
  22. NetworkApi.shared.GetNode { arr in
  23. self.isAlt = false
  24. self.nodeList = arr
  25. self.HidLoading()
  26. } failure: { error in
  27. self.HidLoading()
  28. self.isAlt = true
  29. self.SetError(err: error)
  30. }
  31. }
  32. func updateNodelms(index:Int,ms:Int) {
  33. self.nodeList[index].ping_ms = ms
  34. }
  35. private func SetViewError(msg:String) {
  36. self.errmsg = msg
  37. }
  38. func SetError(err: ErrorCode) {
  39. switch err{
  40. case .sysError(let ret):
  41. // self.errmsg = ret
  42. self.SetViewError(msg: ret)
  43. break;
  44. case .invalidResponse(let ret):
  45. //self.errmsg = ret
  46. self.SetViewError(msg: ret)
  47. break
  48. case .networkUnavailable(let msg, let code):
  49. //self.errmsg = "\(String(describing: msg))\(String(describing: code))"
  50. self.SetViewError(msg: "\(String(describing: msg))\(String(describing: code))")
  51. break
  52. case .needRetrier(_, _, _):
  53. break
  54. case .uploadError(_, _, _, _, _):
  55. break
  56. case .tokenError(let msg):
  57. self.errmsg = msg
  58. // self.islogin = false
  59. Defaults[\.loginModel] = ""
  60. }
  61. }
  62. func LoginLoading(){
  63. self.isActive = true
  64. // self.islogin = true
  65. self.isAlt = false
  66. }
  67. func LoginHidLoading(){
  68. self.isActive = false
  69. // self.islogin = false
  70. self.isAlt = true
  71. }
  72. func ShowLoading() {
  73. self.loading = true
  74. }
  75. func HidLoading(){
  76. self.loading = false
  77. }
  78. func SetEerr(){
  79. self.isEerr = true
  80. }
  81. }