From a1d7e81859f554f3a53680cc35f0f49bf1f77098 Mon Sep 17 00:00:00 2001
From: wwf <1971391498@qq.com>
Date: 星期四, 14 五月 2026 14:37:02 +0800
Subject: [PATCH] 导入项目

---
 src/views/infra/job/JobDetail.vue |   73 ++++++++++++++++++++++++++++++++++++
 1 files changed, 73 insertions(+), 0 deletions(-)

diff --git a/src/views/infra/job/JobDetail.vue b/src/views/infra/job/JobDetail.vue
new file mode 100644
index 0000000..584c89b
--- /dev/null
+++ b/src/views/infra/job/JobDetail.vue
@@ -0,0 +1,73 @@
+<template>
+  <Dialog v-model="dialogVisible" title="浠诲姟璇︾粏" width="700px">
+    <el-descriptions :column="1" border>
+      <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 lang="ts" setup>
+import { DICT_TYPE } from '@/utils/dict'
+import { formatDate } from '@/utils/formatTime'
+import * as JobApi from '@/api/infra/job'
+
+defineOptions({ name: 'InfraJobDetail' })
+
+const dialogVisible = ref(false) // 寮圭獥鐨勬槸鍚﹀睍绀�
+const detailLoading = ref(false) // 琛ㄥ崟鐨勫姞杞戒腑
+const detailData = ref({} as JobApi.JobVO) // 璇︽儏鏁版嵁
+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>

--
Gitblit v1.8.0