OOBindNodeViewController.swift 5.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149
  1. //
  2. // OOBindNodeViewController.swift
  3. // O2Platform
  4. //
  5. // Created by 刘振兴 on 2018/4/8.
  6. // Copyright © 2018年 zoneland. All rights reserved.
  7. //
  8. import UIKit
  9. import Whisper
  10. import Promises
  11. import O2OA_Auth_SDK
  12. class OOBindNodeViewController:OOBaseViewController,UITableViewDataSource,UITableViewDelegate {
  13. private var viewModel:OOLoginViewModel = {
  14. return OOLoginViewModel()
  15. }()
  16. private let cellIdentitifer = "OONodeUnitTableViewCell"
  17. private let headerFrame = CGRect(x: 0, y: 0, width: kScreenW, height: 164)
  18. private let footerFrame = CGRect(x: 0, y: 0, width: kScreenW, height: 100)
  19. lazy var headerView:UIImageView = {
  20. return UIImageView(image:#imageLiteral(resourceName: "pic_xzzz_bj"))
  21. }()
  22. lazy var footerView:UIView = {
  23. let containerView = UIView(frame: self.footerFrame)
  24. let buttonFrame = CGRect(x: 25, y: (self.footerFrame.height - 44) / 2, width: self.footerFrame.width - 25 * 2, height: 44)
  25. let nextButton = OOBaseUIButton(frame: buttonFrame)
  26. nextButton.backgroundColor = UIColor.hexInt(0xFB4747)
  27. nextButton.configUI()
  28. //nextButton.setBackgroundColor(UIColor.hexInt(0xFB4747), forState: .normal)
  29. //下一步
  30. let attrits = NSAttributedString(string: "下一步", attributes: [NSAttributedString.Key.foregroundColor:UIColor.white,NSAttributedString.Key.font:UIFont(name:"PingFangSC-Regular",size:17)!])
  31. nextButton.setAttributedTitle(attrits, for: .normal)
  32. nextButton.addTarget(self, action: #selector(nextButtonClick(_:)), for: .touchUpInside)
  33. containerView.addSubview(nextButton)
  34. return containerView
  35. }()
  36. public var nodes:[O2BindUnitModel] = []
  37. public var mobile:String!
  38. public var value:String!
  39. private var selectedNode:O2BindUnitModel?
  40. @IBOutlet weak var tableView: UITableView!
  41. override func viewDidLoad() {
  42. super.viewDidLoad()
  43. let headerView1 = Bundle.main.loadNibNamed("OORegisterTableView", owner: self, options: nil)?.first as! OORegisterTableView
  44. headerView1.configTitle(title: "选择服务节点", actionTitle: nil)
  45. headerView1.frame = CGRect(x: 0, y: 0, width: kScreenW, height: 66)
  46. if #available(iOS 11, *) {
  47. self.tableView.contentInsetAdjustmentBehavior = .never
  48. self.view.addSubview(headerView1)
  49. }else{
  50. self.view.addSubview(headerView1)
  51. }
  52. self.tableView.tableHeaderView = headerView
  53. self.tableView.tableFooterView = footerView
  54. self.tableView.dataSource = self
  55. self.tableView.delegate = self
  56. }
  57. override func didReceiveMemoryWarning() {
  58. super.didReceiveMemoryWarning()
  59. // Dispose of any resources that can be recreated.
  60. }
  61. func numberOfSections(in tableView: UITableView) -> Int {
  62. return 1
  63. }
  64. func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
  65. return nodes.count
  66. }
  67. func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
  68. let cell = tableView.dequeueReusableCell(withIdentifier: cellIdentitifer, for: indexPath) as! OONodeUnitTableViewCell
  69. cell.config(withItem: nodes[indexPath.row])
  70. if cell.isSelected {
  71. cell.selectImageView.isHighlighted = true
  72. }else {
  73. cell.selectImageView.isHighlighted = false
  74. }
  75. return cell
  76. }
  77. func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
  78. selectedNode = nodes[indexPath.row]
  79. }
  80. private func nextAction() {
  81. if let node = selectedNode {
  82. MBProgressHUD_JChat.showMessage(message: "绑定中...", toView: self.view)
  83. O2AuthSDK.shared.bindMobileToServer(unit: node, mobile: mobile, code: value) { (state, msg) in
  84. switch state {
  85. case .goToChooseBindServer(_):
  86. //多于一个节点到节点列表
  87. //self.performSegue(withIdentifier: "nextSelectNodeSegue", sender: unitList)
  88. self.showError(title: "错误!")
  89. break
  90. case .goToLogin:
  91. // self.showError(title: "错误!\(msg ?? "")")
  92. self.forwardDestVC("login", "loginVC")
  93. break
  94. case .noUnitCanBindError:
  95. self.showError(title: "没有获取到服务器列表,请确认服务器是否已经注册!")
  96. break
  97. case .unknownError:
  98. self.showError(title: "错误!\(msg ?? "")")
  99. break
  100. case .success:
  101. //处理移动端应用
  102. self.viewModel._saveAppConfigToDb()
  103. //成功,跳转
  104. DispatchQueue.main.async {
  105. if self.presentedViewController == nil {
  106. self.dismissVC(completion:nil)
  107. }
  108. let destVC = OOTabBarController.genernateVC()
  109. destVC.selectedIndex = 2
  110. UIApplication.shared.keyWindow?.rootViewController = destVC
  111. UIApplication.shared.keyWindow?.makeKeyAndVisible()
  112. }
  113. break
  114. }
  115. MBProgressHUD_JChat.hide(forView: self.view, animated: true)
  116. }
  117. }else{
  118. //请选择指定的目标服务
  119. self.showWhisperMessage(title: "请选择服务节点", message: "")
  120. }
  121. }
  122. @objc func nextButtonClick(_ sender:Any) {
  123. nextAction()
  124. }
  125. }