// // IHServiceManger.swift // Inhealth // // Created by weclouds on 2019/12/19. // Copyright © 2019 weclouds. All rights reserved. // import UIKit let kNotifitionIHServiceMangerGetSegmentIndex = "kNotifitionIHServiceMangerGetSegmentIndex" let kNotifitionIHServiceManagerReloaddata = "kNotifitionIHServiceManagerReloaddata" class IHServiceManger: NSObject ,IHViewManagerProtocolDelegate{ var selectedIndex : Int? = -1 lazy var mainView: IHServiceView = { let mainView = IHServiceView() mainView.delegate = self return mainView }() private var page = 1 private weak var vc : UIViewController? var type :String? = "0" var hotelId :String? = nil var buildId:String? = nil var floorId:String? = nil override init() { super.init() notificationRegister() } func bindController(_ vc: UIViewController) { self.vc = vc createUI() let serviceVC = self.vc as! IHServiceListVCtr let index = serviceVC.devType var type :String? = nil if index == 0 { type = nil }else{ type = "\(index! - 1)" } self.type = type self.buildId = Intermediate.buildId self.hotelId = Intermediate.hotelId self.floorId = Intermediate.floorId // log.debug(" 请求故障数据hotelId - \(Intermediate.hotelId) buildid - \(Intermediate.buildId), floorId = \(Intermediate.floorId)") self.requestData(Intermediate.hotelId, buildId: Intermediate.buildId, floorId: nil, roomId: nil, page: 1, type: self.type) NotificationCenter.default.addObserver(self, selector: #selector(reloadDataAction), name: NSNotification.Name(KNotifiRepairDetailManagerRepairDispatch), object: nil) } @objc private func reloadDataAction(){ self.requestData(Intermediate.hotelId, buildId: Intermediate.buildId, floorId: nil, roomId: nil, page: 1, type: self.type) } func createUI() { mainView.frame = CGRect(x: 0, y: 0, width: KSCREENWIDTH, height: KSCREENHEIGHT - KNavBarHeight - KTabbarHeight) self.vc?.view.addSubview(mainView) } func requestData(_ hotelId:String?, buildId:String?,floorId:String?,roomId:String?, page:Int,type:String?) { IHAlarmService.share.getAlarmList(page, hotelId: hotelId, buildId: buildId, floorId: floorId, roomId: roomId, type: type, keyword: nil, status: nil, requestSuccess: { (alarmlist) in self.mainView.endRefresh() if alarmlist.count > 0{ self.mainView.alarmList = alarmlist }else{ self.mainView.alarmList = self.mainView.alarmList } //添加提示 if(alarmlist.count == 0 ){ let hud = MBProgressHUD.showAdded(to: self.vc!.view, animated: true) hud.label.text = "到底了"; hud.hide(animated: true, afterDelay: 0.6) } // log.debug("数据:\(alarmlist)") }) { (error) in self.mainView.endRefresh() } } deinit { NotificationCenter.default.removeObserver(self) } func notificationRegister() { NotificationCenter.default.addObserver(self, selector: #selector(reloadAddressNotify), name: NSNotification.Name(kNotifitionIHServiceManagerReloaddata), object: nil) NotificationCenter.default.addObserver(self, selector: #selector(itemNotify), name: NSNotification.Name(kNotifitionIHServiceMangerGetSegmentIndex), object: nil) } @objc func reloadAddressNotify() { self.requestData(Intermediate.hotelId, buildId: Intermediate.buildId, floorId: nil, roomId: nil, page: 1, type: self.type) } @objc func itemNotify(_ notify:Notification) { let index = notify.object as! Int selectedIndex = index } } extension IHServiceManger : IHServiceViewDelegate{ func serviceViewSeeDetails(for indexPath: IndexPath) { let detailvc = IHrepairAndDetailVCtr() let alarm = self.mainView.alarmList![indexPath.row] detailvc.alarm = alarm detailvc.style = .detail var devType = "" if alarm.type == "0"{ devType = "Lights-" }else if alarm.type == "1"{ devType = " Circadian light-" }else if alarm.type == "2"{ devType = "Sensor-" }else if alarm.type == "3"{ devType = " Air purifier-" } let name = alarm.name detailvc.navigationBarTitle = devType + (name ?? "") + " 详情" self.vc?.navigationController?.pushViewController(detailvc, animated: true) } func serviceViewDeleteEquipment(for alarmId: String) { let index = selectedIndex var type :String? = nil if index == 0 { type = nil }else{ type = "\(index! - 1)" } IHAlarmService.share.deleteAlarm(alarmId) { self.requestData(Intermediate.hotelId, buildId: self.buildId, floorId: nil, roomId: nil, page: 1, type: type) NotificationCenter.default.post(name: NSNotification.Name(kNotifactionIHTabBarControllerUpdateBadgeNumber), object: Intermediate.hotelId) } } func serviceViewRepairEquipment(for indexPath: IndexPath) { let repairvc = IHrepairAndDetailVCtr() repairvc.alarm = self.mainView.alarmList![indexPath.row] repairvc.style = .repair repairvc.navigationBarTitle = "调度维修" self.vc?.navigationController?.pushViewController(repairvc, animated: true) } func tableViewEsAddPullToRefresh() { page = 1 let serviceVC = self.vc as! IHServiceListVCtr let index = serviceVC.devType var type :String? = nil if index == 0 { type = nil }else{ type = "\(index! - 1)" } self.requestData(Intermediate.hotelId, buildId: self.buildId, floorId: nil, roomId: nil, page: page, type: type) } func tableViewEsAddInfiniteScrolling() { page += 1 let serviceVC = self.vc as! IHServiceListVCtr let index = serviceVC.devType var type :String? = nil if index == 0 { type = nil }else{ type = "\(index! - 1)" } self.requestData(Intermediate.hotelId, buildId: self.buildId, floorId: nil, roomId: nil, page: page, type: type) } }