Procházet zdrojové kódy

prefect Jenkins module

Hixon před 1 rokem
rodič
revize
a29b375959

+ 18 - 0
src/api/personal/jenkinsTask/index.ts

@@ -61,3 +61,21 @@ export const delJenkinsTask = (taskId: string | number | Array<string | number>)
     method: 'delete'
   });
 };
+
+/**
+ * 查询Jenkins任务详细
+ * @param taskId
+ */
+export const runJenkinsTask = (taskId: string | number) => {
+  return request({
+    url: '/personal/jenkinsTask/run/' + taskId,
+    method: 'get'
+  });
+};
+
+export const viewJenkinsTask = (name: string | number) => {
+  return request({
+    url: '/personal/jenkinsTask/view/' + name,
+    method: 'get'
+  });
+};

+ 35 - 1
src/views/personal/jenkinsTask/index.vue

@@ -63,6 +63,12 @@
         </el-table-column>
         <el-table-column label="操作" align="center" class-name="small-padding fixed-width">
           <template #default="scope">
+            <el-tooltip content="运行" placement="top">
+              <el-button link type="primary" icon="Right" @click="handleRunTask(scope.row)" v-hasPermi="['personal:jenkinsTask:edit']"></el-button>
+            </el-tooltip>
+            <el-tooltip content="查看" placement="top">
+              <el-button link type="primary" icon="View" @click="handleViewTask(scope.row)" v-hasPermi="['personal:jenkinsTask:edit']"></el-button>
+            </el-tooltip>
             <el-tooltip content="修改" placement="top">
               <el-button link type="primary" icon="Edit" @click="handleUpdate(scope.row)" v-hasPermi="['personal:jenkinsTask:edit']"></el-button>
             </el-tooltip>
@@ -128,11 +134,16 @@
         </div>
       </template>
     </el-dialog>
+
+    <!-- 任务详情对话框 -->
+    <el-dialog :title="dialog2.title" v-model="dialog2.visible" width="600px" append-to-body>
+      <div style="white-space: pre-wrap;" v-html="detail"></div>
+    </el-dialog>
   </div>
 </template>
 
 <script setup name="JenkinsTask" lang="ts">
-import { listJenkinsTask, getJenkinsTask, delJenkinsTask, addJenkinsTask, updateJenkinsTask } from '@/api/personal/jenkinsTask';
+import { listJenkinsTask, getJenkinsTask, delJenkinsTask, addJenkinsTask, updateJenkinsTask, runJenkinsTask, viewJenkinsTask } from '@/api/personal/jenkinsTask';
 import { JenkinsTaskVO, JenkinsTaskQuery, JenkinsTaskForm } from '@/api/personal/jenkinsTask/types';
 
 const { proxy } = getCurrentInstance() as ComponentInternalInstance;
@@ -146,6 +157,7 @@ const ids = ref<Array<string | number>>([]);
 const single = ref(true);
 const multiple = ref(true);
 const total = ref(0);
+const detail = ref('');
 
 const queryFormRef = ref<ElFormInstance>();
 const jenkinsTaskFormRef = ref<ElFormInstance>();
@@ -155,6 +167,11 @@ const dialog = reactive<DialogOption>({
   title: ''
 });
 
+const dialog2 = reactive<DialogOption>({
+  visible: false,
+  title: '任务详情'
+});
+
 const initFormData: JenkinsTaskForm = {
   taskId: undefined,
   name: undefined,
@@ -299,6 +316,23 @@ const handleExport = () => {
   }, `jenkinsTask_${new Date().getTime()}.xlsx`)
 }
 
+const handleRunTask = async (row?: JenkinsTaskVO) => {
+  const _taskId = row?.taskId || ids.value[0]
+  await proxy?.$modal.confirm('是否确认执行编号为"' + _taskId + '"的构建?').finally(() => loading.value = false);
+  await runJenkinsTask(_taskId);
+  proxy?.$modal.msgSuccess("执行成功");
+  await getList();
+}
+
+const handleViewTask = async (row?: JenkinsTaskVO) => {
+  buttonLoading.value = true;
+  const _name = row?.name || ids.value[0]
+  const res = await viewJenkinsTask(_name);
+  detail.value = res.data;
+  buttonLoading.value = false;
+  dialog2.visible = true;
+}
+
 onMounted(() => {
   getList();
 });