1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071 |
- <template>
- <Dialog title="任务详细" v-model="dialogVisible" width="700px">
- <el-descriptions border :column="1">
- <el-descriptions-item label="任务编号" min-width="60">
- {{ detailData.id }}
- </el-descriptions-item>
- <el-descriptions-item label="任务名称">
- {{ detailData.name }}
- </el-descriptions-item>
- <el-descriptions-item label="任务名称">
- <dict-tag :type="DICT_TYPE.INFRA_JOB_STATUS" :value="detailData.status" />
- </el-descriptions-item>
- <el-descriptions-item label="处理器的名字">
- {{ detailData.handlerName }}
- </el-descriptions-item>
- <el-descriptions-item label="处理器的参数">
- {{ detailData.handlerParam }}
- </el-descriptions-item>
- <el-descriptions-item label="Cron 表达式">
- {{ detailData.cronExpression }}
- </el-descriptions-item>
- <el-descriptions-item label="重试次数">
- {{ detailData.retryCount }}
- </el-descriptions-item>
- <el-descriptions-item label="重试间隔">
- {{ detailData.retryInterval + ' 毫秒' }}
- </el-descriptions-item>
- <el-descriptions-item label="监控超时时间">
- {{ detailData.monitorTimeout > 0 ? detailData.monitorTimeout + ' 毫秒' : '未开启' }}
- </el-descriptions-item>
- <el-descriptions-item label="后续执行时间">
- <el-timeline>
- <el-timeline-item
- v-for="(nextTime, index) in nextTimes"
- :key="index"
- :timestamp="formatDate(nextTime)"
- >
- 第 {{ index + 1 }} 次
- </el-timeline-item>
- </el-timeline>
- </el-descriptions-item>
- </el-descriptions>
- </Dialog>
- </template>
- <script setup lang="ts">
- import { DICT_TYPE } from '@/utils/dict'
- import { formatDate } from '@/utils/formatTime'
- import * as JobApi from '@/api/infra/job'
- const dialogVisible = ref(false) // 弹窗的是否展示
- const detailLoading = ref(false) // 表单的加载中
- const detailData = ref({}) // 详情数据
- const nextTimes = ref([]) // 下一轮执行时间的数组
- /** 打开弹窗 */
- const open = async (id: number) => {
- dialogVisible.value = true
- // 查看,设置数据
- if (id) {
- detailLoading.value = true
- try {
- detailData.value = await JobApi.getJob(id)
- // 获取下一次执行时间
- nextTimes.value = await JobApi.getJobNextTimes(id)
- } finally {
- detailLoading.value = false
- }
- }
- }
- defineExpose({ open }) // 提供 open 方法,用于打开弹窗
- </script>
|