【1】增加场景

创立场景:EditSceneViewController.swift

private func createScene() {    guard let name = inputHeader.textField.text else { return }        if name == "" {        showToast(string: "场景名称不能为空".localizedString)        return    }    if scene.scene_conditions.count == 0 {        showToast(string: "请先增加条件".localizedString)        return    }    if scene.scene_tasks.count == 0 {        showToast(string: "请先增加执行工作".localizedString)        return    }        scene.name = name    /// 执行条件    if scene.scene_conditions.first?.condition_type == 0 { // 手动        scene.auto_run = false    } else { // 主动        scene.auto_run = true        if self.conditionHeader.conditionRelationshipType == .all { // 满足所有条件            scene.condition_logic = 1        } else { // 满足任一条件            scene.condition_logic = 2        }                if scene.time_period == nil {            scene.time_period = 1            let format = DateFormatter()            format.dateStyle = .medium            format.timeStyle = .medium            format.dateFormat = "yyyy:MM:dd HH:mm:ss"            if let startTime = format.date(from: "2000:01:01 00:00:00")?.timeIntervalSince1970 {                scene.effect_start_time = Int(startTime)            }                        if let endTime = format.date(from: "2000:01:02 00:00:00")?.timeIntervalSince1970 {                scene.effect_end_time = Int(endTime)            }            scene.repeat_type = 1            scene.repeat_date = "1234567"        }            }        /// 申请接口    saveButton.selectedChangeView(isLoading: true)    ApiServiceManager.shared.createScene(scene: scene.transferedEditModel) { [weak self] response in        self?.showToast(string: "创立胜利".localizedString)        self?.navigationController?.popViewController(animated: true)            } failureCallback: { [weak self] (code, err) in        self?.showToast(string: err)        self?.saveButton.selectedChangeView(isLoading: false)    }}

【2】场景管制

场景的管制,包含手动场景的执行、主动场景的开启/敞开。

  • 执行、开启/敞开场景:SceneCell.swift

    private func updateAction(_ isOn:Bool,_ isAuto: Bool) {       ApiServiceManager.shared.sceneExecute(scene_id: self.currentSceneModel!.id, is_execute: isOn) {[weak self] respond in      guard let self = self else {          return      }      if respond.success {          if isAuto {              self.executiveBtn.selectedChangeView(isLoading: false)              self.executiveCallback!("主动执行\(isOn ? "开启":"敞开")胜利")          }else{              self.executiveBtn.selectedChangeView(isLoading: false)              self.executiveCallback!("手动执行胜利")          }      }  } failureCallback: { code, err in      if isAuto {          //复原状态          self.switchIsOn = !self.switchIsOn          self.autoSwitch.switchIsOn = !self.autoSwitch.switchIsOn          //按钮款式复原          self.executiveBtn.selectedChangeView(isLoading: false)          self.executiveCallback!("主动执行\(isOn ? "开启":"敞开")失败")      }else{          self.executiveBtn.selectedChangeView(isLoading: false)          self.executiveCallback!("手动执行失败")      }  }}
  • 闭包后果回调:SceneViewController.swift
    在delegate办法cellForRowAt内cell的闭包后果回调

    cell.executiveCallback = {[weak self] result in          guard let self = self else {              return          }          //提醒执行后果          self.showToast(string: result)          //从新刷新列表,更新执行后状态          self.requestNetwork()      }

    【3】编辑场景

    枚举定义:SceneType

编辑场景:EditSceneViewController.swift 编辑场景与创立场景共处一个控制器,通过枚举值切换UI及执行操作 编辑场景与创立场景共处一个控制器,通过枚举值切换UI及执行操作

 enum SceneType {    case edit    case create}

编辑场景与创立场景共处一个控制器,通过枚举值切换UI及执行操作

 private func editScene() {    guard let id = scene_id else { return }        guard let name = inputHeader.textField.text else { return }        if name == "" {        showToast(string: "场景名称不能为空".localizedString)        return    }    if scene.scene_conditions.count == 0 {        showToast(string: "请先增加条件".localizedString)        return    }    if scene.scene_tasks.count == 0 {        showToast(string: "请先增加执行工作".localizedString)        return    }        scene.name = name        saveButton.selectedChangeView(isLoading: true)    ApiServiceManager.shared.editScene(id: id, scene: scene.transferedEditModel) { [weak self] _ in        self?.showToast(string: "批改胜利".localizedString)        self?.navigationController?.popViewController(animated: true)    } failureCallback: { [weak self] (code, err) in        self?.showToast(string: err)        self?.saveButton.selectedChangeView(isLoading: false)    }}

4.删除场景

删除场景:EditSceneViewController.swift

  private func deleteScene() {    guard let id = scene_id else { return }    tipsAlert?.isSureBtnLoading = true    ApiServiceManager.shared.deleteScene(id: id) { [weak self] response in        self?.tipsAlert?.removeFromSuperview()        self?.showToast(string: "删除胜利".localizedString)        self?.navigationController?.popViewController(animated: true)    } failureCallback: { [weak self] (code, err) in        self?.tipsAlert?.isSureBtnLoading = false        self?.showToast(string: err)    }}