<template>
  <a-drawer width="35%" placement="right" :closable="false" :visible="openView" @close="onCloseView">
    <a-descriptions title="任务详细" layout="vertical" bordered>
      <a-descriptions-item label="任务编号">
        {{ form.jobId }}
      </a-descriptions-item>
      <a-descriptions-item label="任务分组">
        {{ jobGroupFormat(form.jobGroup) }}
      </a-descriptions-item>
      <a-descriptions-item label="任务名称">
        {{ form.jobName }}
      </a-descriptions-item>
      <a-descriptions-item label="创建时间">
        {{ form.createTime }}
      </a-descriptions-item>
      <a-descriptions-item label="下次执行时间" span="2">
        {{ parseTime(form.nextValidTime) }}
      </a-descriptions-item>
      <a-descriptions-item label="调用目标方法">
        {{ form.invokeTarget }}
      </a-descriptions-item>
      <a-descriptions-item label="cron表达式" span="2">
        {{ form.cronExpression }}
      </a-descriptions-item>
      <a-descriptions-item label="任务状态">
        <a-badge v-if="form.status == 0" status="processing" text="运行中" />
        <a-badge v-if="form.status == 1" status="warning" text="暂停" />
      </a-descriptions-item>
      <a-descriptions-item label="是否并发">
        <a-badge v-if="form.concurrent == 0" status="processing" text="允许" />
        <a-badge v-if="form.concurrent == 1" status="warning" text="禁止" />
      </a-descriptions-item>
      <a-descriptions-item label="执行策略">
        <a-badge v-if="form.misfirePolicy == 0" status="default" text="默认策略" />
        <a-badge v-if="form.misfirePolicy == 1" status="Processing" text="立即执行" />
        <a-badge v-if="form.misfirePolicy == 2" color="purple" text="执行一次" />
        <a-badge v-if="form.misfirePolicy == 3" status="warning" text="放弃执行" />
      </a-descriptions-item>
    </a-descriptions>
  </a-drawer>
</template>

<script>

import { getJob } from '@/api/monitor/job'

export default {
  name: 'ViewForm',
  props: {
    jobGroupOptions: {
      type: Array,
      required: true
    }
  },
  data () {
    return {
      loading: false,
      formTitle: '',
      // 表单参数
      form: {
        jobId: undefined,
        jobName: undefined,
        jobGroup: undefined,
        invokeTarget: undefined,
        cronExpression: undefined,
        misfirePolicy: '1',
        concurrent: '1',
        status: '0'
      },
      openView: false
    }
  },
  filters: {
  },
  created () {
  },
  computed: {
  },
  watch: {
  },
  methods: {
    jobGroupFormat (jobGroup) {
      return this.selectDictLabel(this.jobGroupOptions, jobGroup)
    },
    handleView (row) {
      getJob(row.jobId).then(response => {
        this.form = response.data
        this.openView = true
      })
    },
    onCloseView () {
      this.openView = false
    }
  }
}
</script>
