OOBindNodeViewController.swift 5.7 KB

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