暂无描述

GroupDetailController.swift 5.2KB

    // // GroupDetailController.swift // PaiAi // // Created by zhengjianfei on 16/4/5. // Copyright © 2016年 FFIB. All rights reserved. // import UIKit import RxSwift import RxCocoa final class GroupDetailController: UIViewController { // MARK: Storyboard property @IBOutlet weak var scrollViewConstraint: NSLayoutConstraint! @IBOutlet weak var groupLockConstraint: NSLayoutConstraint! @IBOutlet var titleLabel: UILabel! @IBOutlet var groupNameLabel: UILabel! @IBOutlet var groupUserCountLabel: UILabel! @IBOutlet var groupUserHeaderScrollView: UIScrollView! @IBOutlet var groupLockSwitch: UISwitch! @IBOutlet var groupLockTip: UILabel! var groupDetailViewModel = GroupDetailViewModel() // MARK: parameter property lazy var groupId: String = "" let disposeBag = DisposeBag() // MARK: view function override func viewDidLoad() { super.viewDidLoad() rightBarAction = #selector(quit) configureInterface() } override func viewWillAppear(_ animated: Bool) { super.viewWillAppear(true) titleWithbackBar = "群资料" groupDetailViewModel.fetchGroupDetailData(groupId: groupId) FFToastView.showLoadingToast(inView: view, blockSuperView: true) } // MARK: init interface func configureInterface() { groupDetailViewModel.groupDetailData.asObservable().bind {[unowned self] (model) in // if let adminID = model.group?.admin_id { // self.groupLockSwitch.isHidden = adminID != SharedUserInfo.userId // } else { // self.groupLockSwitch.isHidden = true // } // // self.groupNameLabel.text = model.group?.group_name // if let count = model.users?.passed_count { // self.groupUserCountLabel.text = "\(count)名" // } else { // self.groupUserCountLabel.text = "0名" // } // // guard let passUsers = model.users?.passed else { // return // } // //锁定 // if let lock = model.group?.group_lock { // self.groupLockSwitch.isOn = lock // self.groupLockTip.text = lock ? "群已锁定,不再允许新成员加入" : "群未锁定,可以邀请新成员加入" // } // let userHead = passUsers.flatMap {[$0.avatar]} // self.configureScrollView(userHead: userHead) }.disposed(by: disposeBag) } func configureScrollView(userHead: [String]) { var count = -1 let headerUrl = userHead.filter { (_) -> Bool in count += 1 return count < 6 } let userSize = (view.width - 70) / 6 self.scrollViewConstraint.constant = userSize + 12 self.groupUserHeaderScrollView.buildImageViews(headerUrl, width: userSize, height: (view.width - 70) / 6, spacing: 10, topSpcing: 0) { (_) in } } // MARK: Storyboard button override func prepare(for segue: UIStoryboardSegue, sender: Any?) { let navigationController = segue.destination as! UINavigationController if let ctl = navigationController.topViewController as? ChangeGroupNameController { ctl.detailData = groupDetailViewModel.groupDetailData.value } if let ctl = navigationController.topViewController as? GroupMebersController { guard let passed = groupDetailViewModel.groupDetailData.value.users?.passed else { return } ctl.meberData = Variable<[UserModel]>(passed) ctl.groupId = groupDetailViewModel.groupDetailData.value.group_id } } @IBAction func showEWM() { let ctl = UIStoryboard.groupDetail.instantiateController(ShowGroupQRController.self) ctl.data = groupDetailViewModel.groupDetailData.value.group presentController(ctl) } @objc func quit() { let alert = FFAlertController(title: "", message: "", alertStyle: .actionSheet) alert.addAlertAction(alertAction: DestructiveAlertAction(title: "退出该群", handler: { (alertAction) in let subAlert = FFAlertController(title: "退出群", message: "退出后将不再能看到群内照片", alertStyle: .alert) subAlert.addAlertAction(alertAction: CancelAlertAction()) subAlert.addAlertAction(alertAction: ConfirmAlertAction(handler: { (alertAction) in self.groupDetailViewModel.quitQroup(success: {[weak self] in if let weakself = self { PhotoLocalStorage.instance.removeLocalData(group_id: weakself.groupId) subAlert.dismissController() _ = weakself.navigationController?.popToRootViewController(animated: true) FFToastView.showToast(inView: UIApplication.shared.keyWindow ?? weakself.view, withText: "退出群成功") } }) })) self.presentController(subAlert) })) alert.addAlertAction(alertAction: FFAlertAction(title: "取消", handler: nil)) presentController(alert) } @IBAction func changeSwitch() { groupDetailViewModel.postLock(isLock: groupLockSwitch.isOn) } }