<template>
  <CommandExecuteContext v-bind:commands="commandContext"></CommandExecuteContext>
</template>

<script>
import UserCommands from '../../../commands/UserCommands'
import CommandExecuteContext from '../../../commands/CommandExecuteContext'
import AlarmFilterConfigService from '@/domain/services/AlarmFilterConfigService.js'
import HelperUtil from '../../../utils/HelperUtil'

export default {
  props: ['command'],

  components: {
    CommandExecuteContext
  },

  data: function () {
    return {
      // 接收的删除
      deleteList: this.command.target,

      // 命令
      commandContext: {},

      confirmFlag: {
        confirm: false
      }
    }
  },

  methods: {
    close () {
      this.command.done()
    },
    open () {
      let _this = this
      _this.InfoTip.conformTip(_this, HelperUtil.getCheckStatusCodeObjectByCode(_this.successCode.DELETE_CONFIRM)).then(() => {
        this.deleteAlarmFilter()
      }).catch(() => {
        this.close()
      })
    },

    // 删除设备
    deleteAlarmFilter () {
      console.log('删除设备')
      // 调用函数
      // --domin删除函数
      let _this = this
      let loadingInstance = _this.Loading.openLoading()
      AlarmFilterConfigService.deleteAlarmFilter(this.deleteList).then(result => {
        _this.Loading.closeLoading(loadingInstance)
        _this.InfoTip.successTip(_this, HelperUtil.getStatusCodeObjectByCode(_this.successCode.DELETE_CODE))
        _this.close()
      }).catch(err => {
        // 失败
        _this.Loading.closeLoading(loadingInstance)
        _this.InfoTip.errorTip(_this, err)
        _this.close()
      })
    }
  },

  watch: {
    commandContext (newVal, oldVal) {
      let _this = this
      if (_this.confirmFlag.confirm) {
        this.open()
        this.confirmFlag.confirm = false
      } else {
        if (JSON.stringify(newVal) === '{}') {
          _this.close()
        }
      }
      deep: true
    }
  },

  computed: {
    confirmUserCommand () {
      this.confirmFlag.confirm = false
      return UserCommands.confirmUserCommand(this.commandContext, this.confirmFlag)
    }
  },

  created () {
    this.confirmUserCommand.execute()
  }
}
</script>
