//
|
// MineContactVC.swift
|
// OKProject
|
//
|
// Created by alvin_y on 2020/6/15.
|
// Copyright © 2020 yangwang. All rights reserved.
|
//
|
|
import UIKit
|
import RxCocoa
|
import RxSwift
|
|
|
/// 紧急联系人状态
|
enum MineContactState {
|
// 编辑
|
case edit
|
// 添加
|
case add
|
}
|
|
class MineContactVC: YYViewController {
|
|
let viewModel = MineContactViewModel()
|
|
/// 编辑View
|
@IBOutlet weak var view_edit: UIView!
|
|
/// 添加View
|
@IBOutlet weak var view_add: UIView!
|
|
/// 添加按钮
|
@IBOutlet weak var button_add: YYButton!
|
|
/// 编辑按钮
|
@IBOutlet weak var button_edit: UIButton!
|
|
/// 名字
|
@IBOutlet weak var label_name: UILabel!
|
|
/// 手机号
|
@IBOutlet weak var textField_phone: YYTextField!
|
|
/// 姓名
|
@IBOutlet weak var textField_name: YYTextField!
|
|
init(state: MineContactState) {
|
super.init(nibName: String.init(describing: MineContactVC.self), bundle: Bundle.main)
|
viewModel.state.accept(state)
|
}
|
|
required init?(coder: NSCoder) {
|
fatalError("init(coder:) has not been implemented")
|
}
|
|
override func viewDidLoad() {
|
super.viewDidLoad()
|
|
// Do any additional setup after loading the view.
|
}
|
|
override func viewWillAppear(_ animated: Bool) {
|
super.viewWillAppear(animated)
|
self.label_name.text = "\(app.userInfo.emergencyContact) \(app.userInfo.emergencyContactNumber)"
|
self.textField_name.text = app.userInfo.emergencyContact
|
self.textField_phone.text = app.userInfo.emergencyContactNumber
|
viewModel.name.accept(app.userInfo.emergencyContact)
|
viewModel.phone.accept(app.userInfo.emergencyContactNumber)
|
}
|
|
//MARK: - UI
|
override func setupViews() {
|
super.setupViews()
|
navigationItem.title = "紧急联系人"
|
textField_phone.keyboardType = .numberPad
|
}
|
|
|
//MARK: - Rx
|
override func bindRx() {
|
super.bindRx()
|
|
textField_name.rx.text.orEmpty.bind(to: viewModel.name).disposed(by: disposeBag)
|
textField_phone.rx.text.orEmpty.bind(to: viewModel.phone).disposed(by: disposeBag)
|
|
|
button_edit.rx.tap.subscribe(onNext: {[unowned self] (_) in
|
self.viewModel.state.accept(.add)
|
self.textField_name.text = app.userInfo.emergencyContact
|
self.textField_phone.text = app.userInfo.emergencyContactNumber
|
}).disposed(by: disposeBag)
|
|
button_add.rx.tap.subscribe(onNext: {[unowned self] (_) in
|
if self.textField_name.isEmpty(empty: "请填写姓名"){
|
return
|
}
|
if self.textField_phone.isEmpty(empty: "请填写联系电话"){
|
return
|
}
|
if self.textField_phone.text != ""{
|
if !(self.textField_phone.text?.isPhoneNum())!{
|
alert(text: "请输入正确的联系电话")
|
return
|
}
|
}
|
if self.textField_phone.text == app.userInfo.phone{
|
alert(text: "请勿设置本人手机号为紧急联系人")
|
return
|
}
|
self.viewModel.setUrgentUser()
|
}).disposed(by: disposeBag)
|
|
|
viewModel.state
|
.observeOn(MainScheduler.instance)
|
.subscribe(onNext: {[unowned self] (s) in
|
self.view_add.isHidden = s == .edit
|
self.view_edit.isHidden = s == .add
|
self.button_add.isHidden = s == .edit
|
}).disposed(by: disposeBag)
|
|
|
/// 设置紧急联系人
|
viewModel.requestSubject
|
.subscribe(onNext: {[unowned self] (status) in
|
switch status{
|
case .loading:
|
self.show()
|
break
|
case .success(_):
|
self.hide()
|
app.userInfo.emergencyContact = self.textField_name.text ?? ""
|
app.userInfo.emergencyContactNumber = self.textField_phone.text ?? ""
|
self.label_name.text = app.userInfo.emergencyContact
|
app.userInfo.save()
|
alert(text: "设置成功")
|
self.viewModel.state.accept(.edit)
|
self.yy_pop()
|
break
|
case .error(let error):
|
self.hide()
|
alert(text: error.localizedDescription)
|
break
|
}
|
}).disposed(by: rx.disposeBag)
|
}
|
|
}
|