| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143 |
- //
- // OOBindRegisterController.swift
- // O2Platform
- //
- // Created by 刘振兴 on 2018/4/5.
- // Copyright © 2018年 zoneland. All rights reserved.
- //
- import UIKit
- import ReactiveSwift
- import ReactiveCocoa
- import Promises
- import O2OA_Auth_SDK
- class OOBindRegisterController: OOBaseViewController {
-
- @IBOutlet weak var phoneNumberTextField: OOUITextField!
-
- @IBOutlet weak var codeTextField: OOUIDownButtonTextField!
-
- @IBOutlet weak var nextButton: OOBaseUIButton!
-
- private var viewModel:OOLoginViewModel = {
- return OOLoginViewModel()
- }()
-
-
- override func viewDidLoad() {
- super.viewDidLoad()
-
- ////
- let headerView = Bundle.main.loadNibNamed("OORegisterTableView", owner: self, options: nil)?.first as! OORegisterTableView
- headerView.configTitle(title: "手机验证", actionTitle: nil)
- headerView.frame = CGRect(x: 0, y: 0, width: kScreenW, height: 66)
- view.addSubview(headerView)
- setupUI()
- }
-
- private func setupUI() {
-
- phoneNumberTextField.rule = OOPhoneNumberRule()
- phoneNumberTextField.keyboardType = .phonePad
- codeTextField.keyboardType = .numberPad
- codeTextField.buttonDelegate = self
-
- self.nextButton.isEnabled = false
- self.nextButton.disableBackColor = UIColor.lightGray
- self.codeTextField.downButton?.isEnabled = false
- self.codeTextField.isEnabled = false
-
-
-
- self.codeTextField.reactive.isEnabled <~ viewModel.passwordIsValid
- self.codeTextField.downButton!.reactive.isEnabled <~ viewModel.passwordIsValid
- self.nextButton.reactive.isEnabled <~ viewModel.submitButtionIsValid
- self.nextButton.reactive.backgroundColor <~ viewModel.submitButtonCurrentColor
-
- viewModel.loginControlIsValid(self.phoneNumberTextField, self.codeTextField)
-
- }
-
- @IBAction func nextAction(_ sender: UIButton) {
- codeTextField.stopTimerButton()
- guard let mobile = phoneNumberTextField.text else {
- self.showError(title: "请输入手机号码!")
- return
- }
- guard let value = codeTextField.text else {
- self.showError(title: "请输入验证码!")
- return
- }
- MBProgressHUD_JChat.showMessage(message: "绑定中...", toView: self.view)
- O2AuthSDK.shared.bindMobileToSever(mobile: mobile, code: value) { (state, msg) in
- switch state {
- case .goToChooseBindServer(let unitList):
- //多于一个节点到节点列表
- self.performSegue(withIdentifier: "nextSelectNodeSegue", sender: unitList)
- break
- case .goToLogin:
- self.showError(title: "错误!\(msg ?? "")")
- break
- case .noUnitCanBindError:
- self.showError(title: "没有获取到服务器列表,请确认服务器是否已经注册!")
- break
- case .unknownError:
- self.showError(title: "错误!\(msg ?? "")")
- break
- case .success:
- //处理移动端应用
- self.viewModel._saveAppConfigToDb()
- //成功,跳转
- DispatchQueue.main.async {
- if self.presentedViewController == nil {
- self.dismissVC(completion:nil)
- }
- let destVC = OOTabBarController.genernateVC()
- destVC.selectedIndex = 2
- UIApplication.shared.keyWindow?.rootViewController = destVC
- UIApplication.shared.keyWindow?.makeKeyAndVisible()
- }
- break
- }
- MBProgressHUD_JChat.hide(forView: self.view, animated: true)
- }
-
- }
-
- override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
- if segue.identifier == "nextSelectNodeSegue" {
- let destVC = segue.destination as! OOBindNodeViewController
- destVC.nodes = sender as! [O2BindUnitModel]
- destVC.mobile = phoneNumberTextField.text
- destVC.value = codeTextField.text
- }
- }
-
- override func didReceiveMemoryWarning() {
- super.didReceiveMemoryWarning()
- // Dispose of any resources that can be recreated.
- }
-
- }
- extension OOBindRegisterController:OOUIDownButtonTextFieldDelegate {
- func viewButtonClicked(_ textField: OOUIDownButtonTextField, _ sender: OOTimerButton) {
- //发送验证码
- self.showMessage(title: "发送中...")
- guard let mobile = phoneNumberTextField.text else {
- self.showError(title: "请输入手机号码!")
- return
- }
- O2AuthSDK.shared.sendBindSMS(mobile: mobile) { (result, msg) in
- if !result {
- DispatchQueue.main.async {
- self.showError(title: "发送验证码出错:\(msg ?? "")")
- sender.stopTiming()
- }
- }
- self.dismissProgressHUD()
- }
- }
- }
|