Files
continew-admin-ui/src/views/schedule/job/JobDetailDrawer.vue

62 lines
3.0 KiB
Vue

<template>
<a-drawer v-model:visible="visible" title="任务详情" :width="width >= 600 ? 600 : '100%'" :footer="false">
<a-descriptions :column="2" size="large" class="general-description">
<a-descriptions-item label="ID" :span="2">
<a-typography-paragraph copyable>{{ dataDetail?.id }}</a-typography-paragraph>
</a-descriptions-item>
<a-descriptions-item label="任务组">{{ dataDetail?.groupName }}</a-descriptions-item>
<a-descriptions-item label="任务名称">{{ dataDetail?.jobName }}</a-descriptions-item>
<a-descriptions-item label="触发类型">
<GiCellTag :value="dataDetail?.triggerType" :dict="job_trigger_type_enum" />
</a-descriptions-item>
<a-descriptions-item v-if="dataDetail?.triggerType === 1" label="Cron">{{ dataDetail?.triggerInterval }}</a-descriptions-item>
<a-descriptions-item v-else-if="dataDetail?.triggerType === 2" label="间隔时长">{{ dataDetail?.triggerInterval }} </a-descriptions-item>
<a-descriptions-item label="任务类型">
<GiCellTag :value="dataDetail?.taskType" :dict="job_task_type_enum" />
</a-descriptions-item>
<a-descriptions-item label="执行器名称">{{ dataDetail?.executorInfo }}</a-descriptions-item>
<a-descriptions-item label="任务参数">{{ dataDetail?.argsStr }}</a-descriptions-item>
<a-descriptions-item label="路由策略">
<GiCellTag :value="dataDetail?.routeKey" :dict="job_route_strategy_enum" />
</a-descriptions-item>
<a-descriptions-item label="阻塞策略">
<GiCellTag :value="dataDetail?.blockStrategy" :dict="job_block_strategy_enum" />
</a-descriptions-item>
<a-descriptions-item label="超时时间">{{ dataDetail?.executorTimeout }} </a-descriptions-item>
<a-descriptions-item label="最大重试次数">{{ dataDetail?.maxRetryTimes }}</a-descriptions-item>
<a-descriptions-item label="重试间隔">{{ dataDetail?.retryInterval }} </a-descriptions-item>
<a-descriptions-item label="并行数">{{ dataDetail?.parallelNum }}</a-descriptions-item>
<a-descriptions-item label="任务状态">
<GiCellTag :value="dataDetail?.jobStatus" :dict="job_status_enum" />
</a-descriptions-item>
<a-descriptions-item label="描述" :span="2">{{ dataDetail?.description }}</a-descriptions-item>
</a-descriptions>
</a-drawer>
</template>
<script setup lang="ts">
import { useWindowSize } from '@vueuse/core'
import type { JobResp } from '@/apis/schedule'
import { useDict } from '@/hooks/app'
const { width } = useWindowSize()
const dataDetail = ref<JobResp>()
const visible = ref(false)
const { job_status_enum, job_trigger_type_enum, job_task_type_enum, job_route_strategy_enum, job_block_strategy_enum } = useDict(
'job_status_enum',
'job_trigger_type_enum',
'job_task_type_enum',
'job_route_strategy_enum',
'job_block_strategy_enum',
)
// 打开
const onOpen = (record: JobResp) => {
dataDetail.value = record
visible.value = true
}
defineExpose({ onOpen })
</script>