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

<script>
import IndexTeplateService from '@/domain/services/IndexTeplateService.js'
import HelperUtil from '@/utils/HelperUtil'
import UserCommands from '../../../commands/UserCommands'
import CommandExecuteContext from '../../../commands/CommandExecuteContext'
import AlarmMangExpService from "../../../domain/services/AlarmMangExpService";

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.SAFEDATA_DELETE)).then(() => {
        this.deleteAlarmMangExpInfo()
      }).catch(() => {
        this.close()
      })
    },

    /**
     * @Description  : 删除
     * @author       : ls
     * @date         : 2020/4/27 9:47
     * @param        :
     * @return       :
     */
    deleteAlarmMangExpInfo () {
      let loadingInstance = this.Loading.openLoading()
      AlarmMangExpService.delateAlarmMangExp(JSON.stringify(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
    }
  },
  created () {
    this.confirmUserCommand.execute()
  },
  computed: {
    confirmUserCommand () {
      this.confirmFlag.confirm = false
      return UserCommands.confirmUserCommand(this.commandContext, this.confirmFlag)
    }
  }

}
</script>