IHServiceManger.swift 6.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177
  1. //
  2. // IHServiceManger.swift
  3. // Inhealth
  4. //
  5. // Created by weclouds on 2019/12/19.
  6. // Copyright © 2019 weclouds. All rights reserved.
  7. //
  8. import UIKit
  9. let kNotifitionIHServiceMangerGetSegmentIndex = "kNotifitionIHServiceMangerGetSegmentIndex"
  10. let kNotifitionIHServiceManagerReloaddata = "kNotifitionIHServiceManagerReloaddata"
  11. class IHServiceManger: NSObject ,IHViewManagerProtocolDelegate{
  12. var selectedIndex : Int? = -1
  13. lazy var mainView: IHServiceView = {
  14. let mainView = IHServiceView()
  15. mainView.delegate = self
  16. return mainView
  17. }()
  18. private var page = 1
  19. private weak var vc : UIViewController?
  20. var type :String? = "0"
  21. var hotelId :String? = nil
  22. var buildId:String? = nil
  23. var floorId:String? = nil
  24. override init() {
  25. super.init()
  26. notificationRegister()
  27. }
  28. func bindController(_ vc: UIViewController) {
  29. self.vc = vc
  30. createUI()
  31. let serviceVC = self.vc as! IHServiceListVCtr
  32. let index = serviceVC.devType
  33. var type :String? = nil
  34. if index == 0 {
  35. type = nil
  36. }else{
  37. type = "\(index! - 1)"
  38. }
  39. self.type = type
  40. self.buildId = Intermediate.buildId
  41. self.hotelId = Intermediate.hotelId
  42. self.floorId = Intermediate.floorId
  43. // log.debug(" 请求故障数据hotelId - \(Intermediate.hotelId) buildid - \(Intermediate.buildId), floorId = \(Intermediate.floorId)")
  44. self.requestData(Intermediate.hotelId, buildId: Intermediate.buildId, floorId: nil, roomId: nil, page: 1, type: self.type)
  45. NotificationCenter.default.addObserver(self, selector: #selector(reloadDataAction), name: NSNotification.Name(KNotifiRepairDetailManagerRepairDispatch), object: nil)
  46. }
  47. @objc private func reloadDataAction(){
  48. self.requestData(Intermediate.hotelId, buildId: Intermediate.buildId, floorId: nil, roomId: nil, page: 1, type: self.type)
  49. }
  50. func createUI() {
  51. mainView.frame = CGRect(x: 0, y: 0, width: KSCREENWIDTH, height: KSCREENHEIGHT - KNavBarHeight - KTabbarHeight)
  52. self.vc?.view.addSubview(mainView)
  53. }
  54. func requestData(_ hotelId:String?, buildId:String?,floorId:String?,roomId:String?, page:Int,type:String?) {
  55. IHAlarmService.share.getAlarmList(page, hotelId: hotelId, buildId: buildId, floorId: floorId, roomId: roomId, type: type, keyword: nil, status: nil, requestSuccess: { (alarmlist) in
  56. self.mainView.endRefresh()
  57. if alarmlist.count > 0{
  58. self.mainView.alarmList = alarmlist
  59. }else{
  60. self.mainView.alarmList = self.mainView.alarmList
  61. }
  62. //添加提示
  63. if(alarmlist.count == 0 ){
  64. let hud = MBProgressHUD.showAdded(to: self.vc!.view, animated: true)
  65. hud.label.text = "到底了";
  66. hud.hide(animated: true, afterDelay: 0.6)
  67. }
  68. // log.debug("数据:\(alarmlist)")
  69. }) { (error) in
  70. self.mainView.endRefresh()
  71. }
  72. }
  73. deinit {
  74. NotificationCenter.default.removeObserver(self)
  75. }
  76. func notificationRegister() {
  77. NotificationCenter.default.addObserver(self, selector: #selector(reloadAddressNotify), name: NSNotification.Name(kNotifitionIHServiceManagerReloaddata), object: nil)
  78. NotificationCenter.default.addObserver(self, selector: #selector(itemNotify), name: NSNotification.Name(kNotifitionIHServiceMangerGetSegmentIndex), object: nil)
  79. }
  80. @objc func reloadAddressNotify() {
  81. self.requestData(Intermediate.hotelId, buildId: Intermediate.buildId, floorId: nil, roomId: nil, page: 1, type: self.type)
  82. }
  83. @objc func itemNotify(_ notify:Notification) {
  84. let index = notify.object as! Int
  85. selectedIndex = index
  86. }
  87. }
  88. extension IHServiceManger : IHServiceViewDelegate{
  89. func serviceViewSeeDetails(for indexPath: IndexPath) {
  90. let detailvc = IHrepairAndDetailVCtr()
  91. let alarm = self.mainView.alarmList![indexPath.row]
  92. detailvc.alarm = alarm
  93. detailvc.style = .detail
  94. var devType = ""
  95. if alarm.type == "0"{
  96. devType = "Lights-"
  97. }else if alarm.type == "1"{
  98. devType = " Circadian light-"
  99. }else if alarm.type == "2"{
  100. devType = "Sensor-"
  101. }else if alarm.type == "3"{
  102. devType = " Air purifier-"
  103. }
  104. let name = alarm.name
  105. detailvc.navigationBarTitle = devType + (name ?? "") + " 详情"
  106. self.vc?.navigationController?.pushViewController(detailvc, animated: true)
  107. }
  108. func serviceViewDeleteEquipment(for alarmId: String) {
  109. let index = selectedIndex
  110. var type :String? = nil
  111. if index == 0 {
  112. type = nil
  113. }else{
  114. type = "\(index! - 1)"
  115. }
  116. IHAlarmService.share.deleteAlarm(alarmId) {
  117. self.requestData(Intermediate.hotelId, buildId: self.buildId, floorId: nil, roomId: nil, page: 1, type: type)
  118. NotificationCenter.default.post(name: NSNotification.Name(kNotifactionIHTabBarControllerUpdateBadgeNumber), object: Intermediate.hotelId)
  119. }
  120. }
  121. func serviceViewRepairEquipment(for indexPath: IndexPath) {
  122. let repairvc = IHrepairAndDetailVCtr()
  123. repairvc.alarm = self.mainView.alarmList![indexPath.row]
  124. repairvc.style = .repair
  125. repairvc.navigationBarTitle = "调度维修"
  126. self.vc?.navigationController?.pushViewController(repairvc, animated: true)
  127. }
  128. func tableViewEsAddPullToRefresh() {
  129. page = 1
  130. let serviceVC = self.vc as! IHServiceListVCtr
  131. let index = serviceVC.devType
  132. var type :String? = nil
  133. if index == 0 {
  134. type = nil
  135. }else{
  136. type = "\(index! - 1)"
  137. }
  138. self.requestData(Intermediate.hotelId, buildId: self.buildId, floorId: nil, roomId: nil, page: page, type: type)
  139. }
  140. func tableViewEsAddInfiniteScrolling() {
  141. page += 1
  142. let serviceVC = self.vc as! IHServiceListVCtr
  143. let index = serviceVC.devType
  144. var type :String? = nil
  145. if index == 0 {
  146. type = nil
  147. }else{
  148. type = "\(index! - 1)"
  149. }
  150. self.requestData(Intermediate.hotelId, buildId: self.buildId, floorId: nil, roomId: nil, page: page, type: type)
  151. }
  152. }