// // IHRoomListManager.swift // Inhealth // // Created by weclouds on 2019/12/14. // Copyright © 2019 weclouds. All rights reserved. // import UIKit import PKHUD let kIHRoomListManagerNoticationSegmentViewSelectedIndex = "kIHRoomListManagerNoticationSegmentViewSelectedIndex" let kIHRoomListManagerNoticationReloadData = "kIHRoomListManagerNoticationReloadData" class IHRoomListManager: NSObject ,IHViewManagerProtocolDelegate{ var devDatas :[DevData]? var selectedIndex = 0 lazy var mainView: IHRoomListView = { let mainView = IHRoomListView() mainView.delegate = self return mainView }() override init() { super.init() notificationRegister() } // private var vc = UIViewController() private weak var vc : UIViewController? func bindController(_ vc: UIViewController) { self.vc = vc createUI() requeseData { self.mainView.collectionView.reloadData() } } deinit { NotificationCenter.default.removeObserver(self) } func notificationRegister() { NotificationCenter.default.addObserver(self, selector: #selector(itemNotify), name: NSNotification.Name(kIHRoomListManagerNoticationSegmentViewSelectedIndex), object: nil) NotificationCenter.default.addObserver(self, selector: #selector(reloadNotify), name: NSNotification.Name(kIHRoomListManagerNoticationReloadData), object: nil) } @objc func reloadNotify() { requeseData { self.mainView.collectionView.reloadData() } } @objc func itemNotify(_ notify:Notification) { let index = notify.object as! Int selectedIndex = index requeseData { self.mainView.collectionView.reloadData() } } func requeseData(complete:@escaping (()->Void)) { //获取数据 let roomlistvc = self.vc as! IHRoomListVCtr let roomId = roomlistvc.roomId let devType = roomlistvc.devType IHRoomListService.share.getDeviceList(nil, buildId: nil, floorId: nil, roomId: roomId, devType: "\(devType!)",keywords:nil, requestSuccess: { (list) in self.mainView.devDatas = list self.devDatas = list complete() }) { log.debug("失败") } } func createUI() { mainView.frame = self.vc!.view.bounds self.vc!.view.addSubview(mainView) } func setNavigationBar() { //导航栏的渲染方式 let addItem = UIBarButtonItem(image: UIImage(named: "设置")?.withRenderingMode(.alwaysOriginal), style: .plain, target: self, action: #selector(mapAction1)) let setItem = UIBarButtonItem(image: UIImage(named: "设置")?.withRenderingMode(.alwaysOriginal), style: .plain, target: self, action: #selector(mapAction1)) self.vc?.navigationItem.rightBarButtonItems = [setItem,addItem] } @objc func mapAction1(){ log.debug("点击了") } @objc func mapAction(){ log.debug("点击了") } } extension IHRoomListManager :IHRoomListViewDelegate{ func roomListViewOpration(_ devId: String, devType: String, status: String,currentIndex:IndexPath) { if devType == "1" || devType == "2"{ IHRoomListService.share.setLampTurn(lightId: devId, status: status, requestSuccess: {[unowned self] (isSucess) in self.requeseData { self.mainView.collectionView.reloadItems(at: [currentIndex]) } // 重新刷新数据 }) { } }else if devType == "4"{ IHRoomListService.share.purifiertTrunOff(purifierId: devId, status: status, level: nil, requestSuccess: {[unowned self] _ in self.requeseData { self.mainView.collectionView.reloadItems(at: [currentIndex]) } // 重新刷新数据 }) { } } } func roomListView(_ collectionView: UICollectionView, didSelectItemAt indexPath: IndexPath) { log.debug("选中了 -- \(selectedIndex)") let data = devDatas![indexPath.row] if selectedIndex == 0 { if data.devType == "3" { let sensor = IHSensorVCtr() sensor.devId = data.id sensor.dataSource = data sensor.navigationBarTitle = data.name! self.vc?.navigationController?.pushViewController(sensor, animated: true) }else if data.devType == "4"{ let air = IHAirVCtr() air.navigationBarTitle = data.name! air.purifierId = data.id air.dataSource = data self.vc?.navigationController?.pushViewController(air, animated: true) }else{ let roomLight = IHLampControlVCtr() //roomLight.navigationBarTitle = data.name! roomLight.lampName = data.name roomLight.dataSource = data log.debug("roomLight.dataSource - \(roomLight.dataSource)") self.vc?.navigationController?.pushViewController(roomLight, animated: true) } } else if selectedIndex == 3 { let sensor = IHSensorVCtr() sensor.devId = data.id sensor.dataSource = data sensor.navigationBarTitle = data.name! self.vc?.navigationController?.pushViewController(sensor, animated: true) }else if selectedIndex == 4{ let air = IHAirVCtr() air.navigationBarTitle = data.name! air.purifierId = data.id air.dataSource = data self.vc?.navigationController?.pushViewController(air, animated: true) }else{ let lampControlVC = IHLampControlVCtr() lampControlVC.lampName = data.name lampControlVC.dataSource = data self.vc?.navigationController?.pushViewController(lampControlVC, animated: true) // let roomLight = IHRoomLightVCtr() // roomLight.navigationBarTitle = data.name! // roomLight.dataSource = data // self.vc.navigationController?.pushViewController(roomLight, animated: true) } } }