IHNewEquipmentView.swift 32 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864
  1. //
  2. // IHNewEquipmentView.swift
  3. // Inhealth
  4. //
  5. // Created by weclouds on 2019/12/14.
  6. // Copyright © 2019 weclouds. All rights reserved.
  7. //
  8. import UIKit
  9. import PKHUD
  10. struct EquipmentInfo {
  11. var floorId:String?
  12. var roomId:String?
  13. var deviceType:String?
  14. var deviceName:String?
  15. var deviceID:String? //
  16. var imagePath :String? //存储图片地址
  17. var deviceImage:UIImage? //存储设备图片
  18. var inspecTime :String? //巡检时间
  19. var lightMode:String? //灯控类型
  20. var type : String? // 学校 设备类型(4 教室灯,5 黑板灯,6 窗帘,7 面板)
  21. var gatewayId : String? //网关id
  22. var lightId : String? //编辑时,有值
  23. }
  24. enum EquipmentError {
  25. case success
  26. case lackImage //缺少图片
  27. case lackDeviceName // 缺少设备名称
  28. case lackDeviceID // 缺少设备id
  29. case lackFloorId
  30. case lackRoomId //缺少房间
  31. case lackInspecTime // 缺少巡检时间
  32. }
  33. protocol IHNewEquipmentViewDelegate : NSObjectProtocol{
  34. func selectedPhoto()
  35. ///保存设备信息
  36. func storageDeviceInformation(_ infomation:EquipmentInfo?,error:EquipmentError)
  37. func scanQRCode()
  38. }
  39. let kNotifactionIHNewEquipmentViewUploadImageFinished = "kNotifactionIHNewEquipmentViewUploadImageFinished"
  40. let kIHNewEquipmentViewNotificationGetDeviceImage = "kIHNewEquipmentViewNotificationGetDeviceImage"
  41. class IHNewEquipmentView: UIView {
  42. fileprivate var isEditDeviceType = false
  43. //只读
  44. var isBeginEdit:Bool? {
  45. return isEditContent()
  46. }
  47. //是否学校
  48. var isSchool : String = "0"
  49. var tempImage:UIImage?
  50. var devType:String? = "0"
  51. weak var delegate : IHNewEquipmentViewDelegate?
  52. //所有的网关
  53. var gatewayList :[GatewayData]?{
  54. didSet{
  55. if let gatewayList = self.gatewayList{
  56. self.gatewayIdLabel.text = gatewayList.first?.gatewayId
  57. }
  58. }
  59. }
  60. var devData :DevData?{
  61. didSet{
  62. if let devData = self.devData {
  63. if let image = devData.image,let type = devData.devType,let name = devData.name,let devId = devData.deviceId,let roomNumber = devData.number,let floor = devData.floor ,let roomId = devData.roomId , let floorId = devData.floorId,let gatewayId = devData.gatewayId {
  64. self.devType = type
  65. DeviceImage.netImage(url: image, placeholder: "Sensor--Device Information")
  66. DeviceImage.contentMode = .scaleToFill // 平铺
  67. deviceNameLabel.text = name
  68. deviceID.text = devId
  69. if type == "1" {
  70. deviceTypelabel.text = "灯控"
  71. }else if type == "2"{
  72. deviceTypelabel.text = "HCL灯控"
  73. }else if type == "3"{
  74. deviceTypelabel.text = "感应器"
  75. }else if type == "4"{
  76. deviceTypelabel.text = "空气净化器"
  77. }
  78. if type == "1" || type == "2" {
  79. self.LightModeBox.isHidden = false
  80. if let mode = devData.mode {
  81. var modeString = ""
  82. if mode == "0" {
  83. modeString = "WE-L10"
  84. }else if mode == "1"{
  85. modeString = "WE-L20"
  86. }else if mode == "2"{
  87. modeString = "WE-CL10"
  88. }else if mode == "3"{
  89. modeString = "WE-CL20"
  90. }else if mode == "4"{
  91. modeString = "WE-L10-EP"
  92. }else if mode == "5"{
  93. modeString = "WE-L20-EP"
  94. }else if mode == "6"{
  95. modeString = "WE-CL10-EP"
  96. }
  97. self.modeStr = modeString
  98. self.lightModeLabel.text = modeString
  99. }
  100. }else{
  101. self.LightModeBox.isHidden = true
  102. }
  103. floorLabel.text = floor
  104. roomLabel.text = roomNumber
  105. self.roomStr = roomNumber
  106. self.floorStr = floor
  107. self.imagePath = image
  108. self.roomId = roomId
  109. self.floorId = floorId
  110. self.gatewayIdLabel.text = gatewayId
  111. }
  112. }
  113. }
  114. }
  115. var gateway:GatewayData?{
  116. didSet{
  117. if let gateway = self.gateway {
  118. if let gatewayName = gateway.network_name,let deviceId = gateway.gatewayId,let floor = gateway.floor,let floorId = gateway.floor,let roomNumber = gateway.roomNumber,let roomId = gateway.roomId,let inspecTime = gateway.inspecTime{
  119. DeviceImage.image = UIImage(named: "gateway_Information")
  120. DeviceImage.contentMode = .scaleToFill // 平铺
  121. deviceNameLabel.text = gatewayName
  122. deviceID.text = deviceId
  123. deviceTypelabel.text = "网关"
  124. floorLabel.text = floor
  125. roomLabel.text = roomNumber
  126. self.roomStr = roomNumber
  127. self.floorStr = floor
  128. let time = Int(inspecTime)
  129. var inspecTimeString = ""
  130. if time! < 60 {
  131. inspecTimeString = inspecTime + "min"
  132. }else if time == 60 {
  133. inspecTimeString = "1hour"
  134. }else{
  135. inspecTimeString = "\(time! / 60)hours"
  136. }
  137. inspectionCycleLabel.text = inspecTimeString
  138. self.inspecTimeStr = inspecTimeString
  139. self.imagePath = "-"
  140. self.roomId = roomId
  141. self.floorId = floorId
  142. self.saveInspecTime = inspecTime
  143. }
  144. }
  145. }
  146. }
  147. var equipmentStyle:NewEquipmentRoomStyle? {
  148. didSet{
  149. if let style = self.equipmentStyle {
  150. switch style {
  151. case .newRoom:
  152. log.debug("新建房间")
  153. self.roomBox.isHidden = true
  154. deviceTypeBox.isUserInteractionEnabled = true
  155. self.typeViewTopToImageConstraint.constant = 30
  156. self.gatewayBox.isHidden = true
  157. case .oldRoom:
  158. log.debug("在room里设置")
  159. self.roomBox.isHidden = true
  160. deviceTypeBox.isUserInteractionEnabled = true
  161. self.typeViewTopToImageConstraint.constant = 30
  162. case .equipmentList:
  163. log.debug("设备列表新建设备")
  164. self.roomBox.isHidden = false
  165. rightPoint.isHidden = false
  166. self.InspectionBox.isHidden = true
  167. self.typeViewTopToImageConstraint.constant = 170
  168. self.InspectionBox.isUserInteractionEnabled = false
  169. if self.isSchool == "0" {
  170. //不是学校里隐藏
  171. self.gatewayBox.isHidden = true
  172. }else{
  173. //学校- 可以交互
  174. self.gatewayBox.isUserInteractionEnabled = true
  175. }
  176. case .equipmentEdit:
  177. log.debug("编辑设备")
  178. self.roomBox.isHidden = false
  179. rightPoint.isHidden = true
  180. deviceTypeBox.isUserInteractionEnabled = false
  181. self.typeViewTopToImageConstraint.constant = 170
  182. // self.InspectionBox.isUserInteractionEnabled = false
  183. if self.isSchool == "0" {
  184. //不是学校里隐藏
  185. self.gatewayBox.isHidden = true
  186. }else{
  187. //学校
  188. self.gatewayImage.isHidden = true
  189. }
  190. case .gatewayEdit:
  191. log.debug("编辑网关")
  192. self.DeviceImage.isUserInteractionEnabled = false
  193. deviceTypeBox.isUserInteractionEnabled = false
  194. rightPoint.isHidden = true
  195. self.uploadImageIcon.isHidden = true
  196. self.roomBox.isHidden = false
  197. self.LightModeBox.isHidden = true
  198. self.InspectionBox.isHidden = false
  199. self.InspectionBox.isUserInteractionEnabled = true
  200. self.typeViewTopToImageConstraint.constant = 170
  201. }
  202. }
  203. }
  204. }
  205. var floorList:[RoomListData]?{
  206. didSet{
  207. floorNames = IHCentrlizedService.share.getFloorNameList(from: self.floorList)
  208. if self.equipmentStyle == .equipmentEdit || self.equipmentStyle == .gatewayEdit {
  209. }else{
  210. floorLabel.text = floorNames?.first
  211. }
  212. if floorNames != nil || floorNames!.count > 0 {
  213. floorLabel.reset()
  214. //获取第一层楼的房间列表
  215. roomNames = IHCentrlizedService.share.getFirstRooms(self.floorList)
  216. // if self.equipmentStyle != .equipmentEdit || self.equipmentStyle != .gatewayEdit {
  217. //
  218. // }else{
  219. // roomLabel.text = roomNames?.first
  220. // }
  221. //改
  222. if self.equipmentStyle != .equipmentEdit || self.equipmentStyle != .gatewayEdit {
  223. roomLabel.text = roomNames?.first
  224. }
  225. if self.equipmentStyle != .equipmentEdit {
  226. //第一个房间id
  227. self.roomId = IHCentrlizedService.share.getFirstRoomID(self.floorList)
  228. }
  229. }else{
  230. floorLabel.isEmpty("Please chose Floor")
  231. }
  232. //f
  233. if self.equipmentStyle != .equipmentEdit {
  234. selectedFloor = self.floorList?.first // 默认选择第一个
  235. }
  236. }
  237. }
  238. var saveInspecTime:String? = "5"
  239. var floorId:String?
  240. var roomId:String?
  241. var floorStr :String?
  242. var roomStr :String?
  243. var modeStr :String? = "WE-L10"
  244. var inspecTimeStr:String?
  245. var selectedFloor: RoomListData?{
  246. didSet{
  247. self.floorId = self.selectedFloor?.id
  248. }
  249. }
  250. var floorNames :[String]?
  251. var roomNames :[String]?
  252. @IBOutlet weak var LightModeBox: UIView!
  253. @IBOutlet weak var lightModeLabel: UILabel!
  254. @IBOutlet weak var InspectionBox: UIView!
  255. @IBOutlet weak var inspectionCycleLabel: UILabel!
  256. @IBOutlet weak var roomBox: UIView!
  257. @IBOutlet weak var floorBox: UIView!
  258. @IBOutlet weak var roomView: UIView!
  259. @IBOutlet weak var roomLabel: UILabel!
  260. @IBOutlet weak var floorLabel: UILabel!
  261. @IBOutlet weak var typeViewTopToImageConstraint: NSLayoutConstraint!
  262. @IBOutlet weak var DeviceImage: UIImageView!
  263. @IBOutlet weak var uploadImageIcon: UIImageView!
  264. @IBOutlet weak var deviceTypeBox: UIView!
  265. @IBOutlet weak var deviceTypelabel: UILabel!
  266. @IBOutlet weak var deviceNameLabel: UITextField!
  267. @IBOutlet weak var deviceID: UITextField!
  268. @IBOutlet weak var rightPoint: UIImageView!
  269. @IBOutlet weak var gatewayBox: UIView!
  270. @IBOutlet weak var gatewayIdLabel: UILabel!
  271. @IBOutlet weak var gatewayImage: UIImageView!
  272. var isPickImageFinished:Bool? = false
  273. var imagePath :String?
  274. override func awakeFromNib() {
  275. super.awakeFromNib()
  276. notifacionRegister() //注册通知
  277. setupUI()
  278. addGesture()
  279. }
  280. override func layoutSubviews() {
  281. super.layoutSubviews()
  282. if isSchool == "1"{
  283. //devData
  284. if let devData = self.devData{
  285. //4 教室灯,5 黑板灯,6 窗帘,7 面板)
  286. switch devData.type {
  287. case "4":
  288. self.deviceTypelabel.text = "教室灯"
  289. case "5":
  290. self.deviceTypelabel.text = "黑板灯"
  291. case "6":
  292. self.deviceTypelabel.text = "窗帘"
  293. default:
  294. self.deviceTypelabel.text = "面板"
  295. }
  296. }
  297. self.lightModeLabel.text = "EL-DP02-1200-LY"
  298. if self.equipmentStyle == .equipmentEdit{
  299. self.gatewayBox.frame = self.InspectionBox.frame
  300. }
  301. }
  302. }
  303. deinit {
  304. //注销通知
  305. notifactionUnRegister()
  306. }
  307. @IBAction func preseveAction(_ sender: Any) {
  308. var error = EquipmentError.success
  309. var deviceInfo = EquipmentInfo()
  310. log.debug("selectedFloor?.name - \(selectedFloor?.name) === selectedFloor?.id - \(selectedFloor?.id) - \(self.floorId)")
  311. if self.deviceNameLabel.text == nil || self.deviceNameLabel.text == " "{
  312. HUD.flash(.label("设备名称不能为空"), delay: 0.7)
  313. return
  314. }
  315. if self.deviceID.text == nil || self.deviceID.text! == " "{
  316. HUD.flash(.label("设备ID不能为空"), delay: 0.7)
  317. return
  318. }
  319. //&& self.floorId != nil && self.roomId != nil
  320. if self.deviceNameLabel.text != nil && self.deviceNameLabel.text != " " &&
  321. self.deviceID.text != nil && self.deviceID.text != " " {
  322. error = .success
  323. deviceInfo.imagePath = self.imagePath
  324. deviceInfo.deviceType = self.devType
  325. deviceInfo.deviceName = self.deviceNameLabel.text
  326. deviceInfo.deviceID = self.deviceID.text
  327. deviceInfo.deviceImage = self.DeviceImage.image
  328. deviceInfo.floorId = self.floorId
  329. deviceInfo.roomId = self.roomId
  330. //选网关
  331. if gatewayList?.count ?? 0 > 0{
  332. for gateItem in gatewayList!{
  333. if self.floorId == gateItem.floorId{
  334. deviceInfo.gatewayId = gateItem.gatewayId
  335. }
  336. }
  337. }
  338. }
  339. if self.equipmentStyle != .oldRoom && self.equipmentStyle != .newRoom {
  340. if self.floorId != nil && self.roomId != nil {
  341. }
  342. if self.roomId == nil {
  343. error = .lackRoomId
  344. }
  345. if self.floorId == nil {
  346. error = .lackFloorId
  347. }
  348. }
  349. //
  350. if self.deviceID.text == "" || self.deviceID.text == nil {
  351. error = .lackDeviceID
  352. }
  353. //self.deviceNameLabel.text?.isBlanck == true 判断是否空格情况
  354. if self.deviceNameLabel.text == "" || self.deviceNameLabel.text == nil || self.deviceNameLabel.text?.isBlanck == true {
  355. error = .lackDeviceName
  356. }
  357. //先判断这个
  358. if isSchool == "0"{
  359. if self.devType != "4"{
  360. if self.devType == "0" || self.devType == "1" {
  361. var lightMode = "0"
  362. //"WE-L10","WE-L20","WE-CL10","WE-CL20" "WE-L10-EP","WE-L20-EP","WE-CL10-EP"
  363. if self.modeStr == "WE-L10" {
  364. lightMode = "0"
  365. }else if self.modeStr == "WE-L20" {
  366. lightMode = "1"
  367. }else if self.modeStr == "WE-CL10" {
  368. lightMode = "2"
  369. }else if self.modeStr == "WE-CL20" {
  370. lightMode = "3"
  371. }else if self.modeStr == "WE-L10-EP" {
  372. lightMode = "4"
  373. }else if self.modeStr == "WE-L20-EP" {
  374. lightMode = "5"
  375. }else if self.modeStr == "WE-CL10-EP" {
  376. lightMode = "6"
  377. }
  378. deviceInfo.lightMode = lightMode
  379. }
  380. if self.devType == "2"{
  381. switch self.modeStr {
  382. case "IH-SR01":
  383. deviceInfo.lightMode = "0"
  384. case "IH-SR02":
  385. deviceInfo.lightMode = "1"
  386. case "IH-SR03":
  387. deviceInfo.lightMode = "2"
  388. case "IH-SR04":
  389. deviceInfo.lightMode = "3"
  390. default:
  391. deviceInfo.lightMode = "4"
  392. }
  393. }
  394. if self.devType == "3"{
  395. switch self.modeStr {
  396. case "IH-AP01":
  397. deviceInfo.lightMode = "0"
  398. case "IH-AP02":
  399. deviceInfo.lightMode = "1"
  400. default:
  401. deviceInfo.lightMode = "2"
  402. }
  403. }
  404. }
  405. }else{
  406. //学校
  407. if self.gatewayIdLabel.text == "" {
  408. HUD.flash(.label("未绑定网关"), delay: 0.7)
  409. return
  410. }
  411. deviceInfo.gatewayId = self.gatewayIdLabel.text
  412. if self.deviceTypelabel.text == "教室灯"{
  413. //设备型号(教室灯 0=>EL-DP02-1200-LY,1=>EL-DP03-1200-LY,2=>EL-WKDP03-1200-LY,黑板灯 0=>EL-HZJ01-1200-LY)
  414. if self.lightModeLabel.text == "EL-DP02-1200-LY" {
  415. deviceInfo.lightMode = "0"
  416. }else if self.lightModeLabel.text == "EL-DP03-1200-LY" {
  417. deviceInfo.lightMode = "1"
  418. }else {
  419. deviceInfo.lightMode = "2"
  420. }
  421. deviceInfo.type = "4"
  422. }
  423. if self.deviceTypelabel.text == "黑板灯" {
  424. deviceInfo.lightMode = "0"
  425. deviceInfo.type = "5"
  426. }
  427. if self.deviceTypelabel.text == "窗帘"{
  428. deviceInfo.type = "6"
  429. deviceInfo.lightMode = "0"
  430. }
  431. if self.deviceTypelabel.text == "面板"{
  432. deviceInfo.type = "7"
  433. deviceInfo.lightMode = "0"
  434. }
  435. }
  436. if self.equipmentStyle == .equipmentEdit {
  437. if self.imagePath == nil{
  438. // error = .lackImage
  439. self.imagePath = ""
  440. }
  441. }else if self.equipmentStyle == .gatewayEdit{
  442. print("No problem")
  443. } else{
  444. if isPickImageFinished == false{
  445. // error = .lackImage
  446. self.imagePath = ""
  447. }
  448. }
  449. if self.equipmentStyle == .gatewayEdit {
  450. if self.saveInspecTime == nil {
  451. error = .lackInspecTime
  452. }else{
  453. deviceInfo.inspecTime = self.saveInspecTime
  454. }
  455. }
  456. if isSchool == "1" && self.equipmentStyle == .equipmentEdit{
  457. //编辑时lightId有值
  458. deviceInfo.lightId = self.devData?.id
  459. }
  460. if let delegate = self.delegate {
  461. delegate.storageDeviceInformation(deviceInfo, error: error)
  462. }
  463. }
  464. @IBAction func qrCodeAction(_ sender: Any) {
  465. ///点击了
  466. log.debug("打开二维码")
  467. if let delegate = self.delegate {
  468. delegate.scanQRCode()
  469. }
  470. }
  471. }
  472. //私有方法
  473. extension IHNewEquipmentView{
  474. func setupUI() {
  475. isPickImageFinished = false
  476. DeviceImage.isUserInteractionEnabled = true
  477. uploadImageIcon.isUserInteractionEnabled = true
  478. let tapImageV = UITapGestureRecognizer(target: self, action: #selector(tapDeviceImage))
  479. let tapImageV2 = UITapGestureRecognizer(target: self, action: #selector(tapDeviceImage))
  480. DeviceImage.addGestureRecognizer(tapImageV)
  481. uploadImageIcon.addGestureRecognizer(tapImageV2)
  482. DeviceImage.contentMode = .scaleAspectFill
  483. }
  484. fileprivate func isEditContent() -> Bool {
  485. var isEditDevice = false
  486. var isEditdeviceName = false
  487. let isPickImage = isPickImageFinished
  488. let isEditDevType = self.isEditDeviceType
  489. if self.deviceID.text != "" {
  490. isEditDevice = true
  491. }else{
  492. isEditDevice = false
  493. }
  494. if self.deviceNameLabel.text != "" {
  495. isEditdeviceName = true
  496. }else{
  497. isEditdeviceName = false
  498. }
  499. if isEditDevice == true || isEditdeviceName == true || isPickImage == true || isEditDevType == true {
  500. return true
  501. }else{
  502. return false
  503. }
  504. }
  505. }
  506. ///通知
  507. extension IHNewEquipmentView{
  508. func notifactionUnRegister() {
  509. NotificationCenter.default.removeObserver(self)
  510. }
  511. func notifacionRegister() {
  512. NotificationCenter.default.addObserver(self, selector: #selector(notifyDeviceId), name: NSNotification.Name(kNotifactionIHNewEquipmentManagerscanFinished), object: nil)
  513. NotificationCenter.default.addObserver(self, selector: #selector(notifyDeviceIcon(_:)), name: NSNotification.Name(kIHNewEquipmentViewNotificationGetDeviceImage), object: nil)
  514. NotificationCenter.default.addObserver(self, selector: #selector(notifyImagePath), name: NSNotification.Name(kNotifactionIHNewEquipmentViewUploadImageFinished), object: nil)
  515. }
  516. @objc func notifyDeviceId(_ notif:Notification) {
  517. log.debug(notif.object)
  518. let deviceId = notif.object as! String
  519. self.deviceID.text = deviceId
  520. }
  521. @objc func notifyDeviceIcon(_ notif:Notification) {
  522. let image = notif.object as! UIImage
  523. self.DeviceImage.image = image
  524. tempImage = image //切换的时候保存
  525. }
  526. @objc func notifyImagePath(_ notif:Notification) {
  527. let path = notif.object as! String
  528. isPickImageFinished = true
  529. self.imagePath = path
  530. }
  531. }
  532. ///添加手势
  533. extension IHNewEquipmentView{
  534. func addGesture() {
  535. let tapDeviceType = UITapGestureRecognizer(target: self, action: #selector(pickDeviceType))
  536. deviceTypeBox.addGestureRecognizer(tapDeviceType)
  537. let floorTap = UITapGestureRecognizer(target: self, action: #selector(tapFloorBoxAction))
  538. floorBox.addGestureRecognizer(floorTap)
  539. let roomTap = UITapGestureRecognizer(target: self, action: #selector(tapRoomBoxAction))
  540. roomBox.addGestureRecognizer(roomTap)
  541. //灯控型号
  542. let modeTap = UITapGestureRecognizer(target: self, action: #selector(tapModeAction))
  543. LightModeBox.addGestureRecognizer(modeTap)
  544. //巡检时间
  545. let inspectionTap = UITapGestureRecognizer(target: self, action: #selector(tapInspectionAction))
  546. InspectionBox.addGestureRecognizer(inspectionTap)
  547. //选择网关
  548. let gatewayIdTap = UITapGestureRecognizer(target: self, action: #selector(tapGatewayidAtion))
  549. gatewayBox.addGestureRecognizer(gatewayIdTap)
  550. }
  551. @objc func tapDeviceImage(){
  552. log.debug("tapDeviceImage")
  553. if let delegate = self.delegate {
  554. delegate.selectedPhoto()
  555. }
  556. }
  557. @objc func pickDeviceType(){
  558. var titleArr : [String] = []
  559. if isSchool == "1" {
  560. //学校
  561. titleArr = ["教室灯","黑板灯","面板","窗帘"]
  562. if self.equipmentStyle == .equipmentList || self.equipmentStyle == .equipmentEdit {
  563. titleArr = ["教室灯","黑板灯","面板","窗帘","网关"]
  564. }
  565. }else{
  566. //酒店
  567. //titleArr = ["lights","circadian lights","sensor","air purifiers"]
  568. titleArr = ["灯控","HCL灯控","感应器","空气净化器"]
  569. if self.equipmentStyle == .equipmentList || self.equipmentStyle == .equipmentEdit {
  570. titleArr = ["灯控","HCL灯控","感应器","空气净化器","网关"]
  571. }
  572. }
  573. let pick = THScrollChooseView(question: titleArr, withDefaultDesc: titleArr.first)
  574. pick?.confirmBlock = {(selectedIndex) in
  575. log.debug(" title = \(titleArr[selectedIndex])")
  576. self.deviceTypelabel.text = titleArr[selectedIndex]
  577. self.isEditDeviceType = true
  578. self.devType = "\(selectedIndex)"
  579. // if selectedIndex == 0 || selectedIndex == 1 {
  580. // self.LightModeBox.isHidden = false
  581. // }else{
  582. // self.LightModeBox.isHidden = true
  583. // }
  584. if selectedIndex == 4{
  585. //网关没有模式
  586. self.LightModeBox.isHidden = true
  587. }else{
  588. //其它设备都有模式
  589. self.LightModeBox.isHidden = false
  590. if selectedIndex == 2{
  591. self.lightModeLabel.text = "IH-SR01"
  592. }else if selectedIndex == 3{
  593. self.lightModeLabel.text = "IH-AP01"
  594. }
  595. }
  596. if self.equipmentStyle == .equipmentList || self.equipmentStyle == .equipmentEdit {
  597. if selectedIndex == 4 {
  598. self.DeviceImage.isUserInteractionEnabled = false
  599. //gateway_Information ic_gateway_edit
  600. self.DeviceImage.image = UIImage(named: "gateway_Information")
  601. self.uploadImageIcon.isHidden = true
  602. self.InspectionBox.isHidden = false
  603. }else{
  604. self.DeviceImage.isUserInteractionEnabled = true
  605. self.DeviceImage.image = self.tempImage ?? UIImage(named: "Sensor--Device Information")
  606. self.uploadImageIcon.isHidden = false
  607. self.InspectionBox.isHidden = true
  608. }
  609. }
  610. }
  611. pick?.show()
  612. }
  613. @objc func tapFloorBoxAction() {
  614. let titleArr = self.floorNames
  615. let pick = THScrollChooseView(question: titleArr, withDefaultDesc:self.floorStr ?? titleArr?.first)
  616. pick?.confirmBlock = {(selectedIndex) in
  617. log.debug(" title = \(titleArr?[selectedIndex] ?? "")")
  618. let floor = self.floorList?[selectedIndex]
  619. self.floorLabel.text = floor?.name
  620. self.selectedFloor = floor
  621. self.roomId = floor?.roomList?.first?.id //切换之后立即获取第一个房间id
  622. //获取房间
  623. self.roomNames = IHCentrlizedService.share.getRoomNameList(from: floor?.roomList)
  624. self.roomLabel.text = self.roomNames?.first
  625. if self.floorNames != nil || self.floorNames!.count > 0 {
  626. self.floorLabel.reset()
  627. }else{
  628. self.floorLabel.isEmpty("Please chose Floor")
  629. }
  630. //获取第一层楼的房间列表
  631. }
  632. pick?.show()
  633. }
  634. @objc func tapRoomBoxAction() {
  635. log.debug(" tapRoomBoxAction")
  636. let titleArr = self.roomNames
  637. let pick = THScrollChooseView(question: titleArr, withDefaultDesc: self.roomStr ?? titleArr?.first)
  638. if titleArr?.count == 0 {
  639. g_showHUD("这层没有添加的房间!")
  640. return
  641. }
  642. pick?.confirmBlock = {(selectedIndex) in
  643. // log.debug(" title = \(titleArr?[selectedIndex] ?? " ")")
  644. self.roomId = IHCentrlizedService.share.getRoomId(from: self.selectedFloor, roomIndex: selectedIndex)
  645. self.roomLabel.text = titleArr?[selectedIndex]
  646. }
  647. pick?.show()
  648. }
  649. @objc func tapModeAction() {
  650. log.debug(" tapModeAction")
  651. var titleArr : [String] = []
  652. if isSchool == "1"{
  653. //学校
  654. //设备型号(教室灯 0=>EL-DP02-1200-LY,1=>EL-DP03-1200-LY,2=>EL-WKDP03-1200-LY,黑板灯 0=>EL-HZJ01-1200-LY)
  655. if self.deviceTypelabel.text == "教室灯" {
  656. titleArr = ["EL-DP02-1200-LY","EL-DP03-1200-LY","EL-WKDP03-1200-LY"]
  657. } else if (self.deviceTypelabel.text == "黑板灯"){
  658. titleArr = ["EL-HZJ01-1200-LY"]
  659. }
  660. }else{
  661. //酒店
  662. if self.devType! == "0"{
  663. //lights
  664. titleArr = ["WE-L10","WE-L20","WE-CL10","WE-CL20","WE-L10-EP","WE-L20-EP","WE-CL10-EP","IH-DM1","IH-DM2","IH-DM3","IH-DE1","IH-DE2","IH-DE3"]
  665. }else if self.devType! == "1"{
  666. //hcl lights
  667. titleArr = ["WE-L10","WE-L20","IH-DL1 ","IH-DL2","IH-DL3","IH-DL4","IH-DL5","IH-PL1","IH-PL2","IH-PL3","IH-DM1","IH-DM2","IH-DM3","IH-DE1","IH-DE2","IH-DE3"]
  668. }else if self.devType! == "2"{
  669. //aq sensors
  670. titleArr = ["IH-SR01","IH-SR02","IH-SR03","IH-SR04","IH-SR05"]
  671. }else{
  672. //air purifiers
  673. //设备型号(0 IH-AP01,1 IH-AP02,2 IH-AP03)
  674. titleArr = ["IH-AP01","IH-AP02","IH-AP03"]
  675. }
  676. }
  677. let pick = THScrollChooseView(question:titleArr, withDefaultDesc: self.modeStr ?? titleArr.first)
  678. pick?.confirmBlock = {(selectedIndex) in
  679. // log.debug(" title = \(titleArr?[selectedIndex] ?? " ")")
  680. // self.roomId = IHCentrlizedService.share.getRoomId(from: self.selectedFloor, roomIndex: selectedIndex)
  681. self.lightModeLabel.text = titleArr[selectedIndex]
  682. self.modeStr = titleArr[selectedIndex]
  683. }
  684. pick?.show()
  685. }
  686. @objc func tapInspectionAction() {
  687. log.debug(" tapInspectionAction")
  688. let titleArr = ["5min","10min","30min","1hour","3hours","6hours","12hours","24hours"]
  689. let pick = THScrollChooseView(question:titleArr, withDefaultDesc: self.inspecTimeStr ?? titleArr.first)
  690. pick?.confirmBlock = {(selectedIndex) in
  691. // log.debug(" title = \(titleArr?[selectedIndex] ?? " ")")
  692. self.roomId = IHCentrlizedService.share.getRoomId(from: self.selectedFloor, roomIndex: selectedIndex)
  693. self.inspectionCycleLabel.text = titleArr[selectedIndex]
  694. switch selectedIndex {
  695. case 0:
  696. self.saveInspecTime = "5"
  697. case 1:
  698. self.saveInspecTime = "10"
  699. case 2:
  700. self.saveInspecTime = "30"
  701. case 3:
  702. self.saveInspecTime = "60"
  703. case 4:
  704. self.saveInspecTime = "180"
  705. case 5:
  706. self.saveInspecTime = "360"
  707. case 6:
  708. self.saveInspecTime = "720"
  709. case 7:
  710. self.saveInspecTime = "1440"
  711. default:
  712. break
  713. }
  714. }
  715. pick?.show()
  716. }
  717. @objc func tapGatewayidAtion(){
  718. //所有的网关 gatewayList equipmentList
  719. if isSchool == "1" && self.equipmentStyle! == .equipmentList{
  720. //新建设备并且是学校时
  721. guard let gatewayList = self.gatewayList else {
  722. return
  723. }
  724. var titleArr = [String]()
  725. for gateway in gatewayList {
  726. if let gatewayId = gateway.gatewayId{
  727. titleArr.append(gatewayId)
  728. }
  729. }
  730. let pick = THScrollChooseView(question: titleArr, withDefaultDesc: titleArr.first)
  731. pick?.confirmBlock = {(selectedIndex) in
  732. self.gatewayIdLabel.text = titleArr[selectedIndex]
  733. }
  734. pick?.show()
  735. }
  736. }
  737. }