feat: 完成定时任务模块接口联调

This commit is contained in:
insistence
2024-01-24 22:18:17 +08:00
parent 750806c97e
commit 7e0937fa5c
2 changed files with 67 additions and 12 deletions

View File

@@ -141,7 +141,7 @@
<el-dialog :title="title" v-model="open" width="820px" append-to-body>
<el-form ref="jobRef" :model="form" :rules="rules" label-width="120px">
<el-row>
<el-col :span="12">
<el-col :span="24">
<el-form-item label="任务名称" prop="jobName">
<el-input v-model="form.jobName" placeholder="请输入任务名称" />
</el-form-item>
@@ -158,6 +158,18 @@
</el-select>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="任务执行器" prop="jobGroup">
<el-select v-model="form.jobExecutor" placeholder="请选择任务执行器">
<el-option
v-for="dict in sys_job_executor"
:key="dict.value"
:label="dict.label"
:value="dict.value"
></el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="24">
<el-form-item prop="invokeTarget">
<template #label>
@@ -178,6 +190,16 @@
<el-input v-model="form.invokeTarget" placeholder="请输入调用目标字符串" />
</el-form-item>
</el-col>
<el-col :span="24">
<el-form-item label="位置参数" prop="jobArgs">
<el-input v-model="form.jobArgs" placeholder="请输入位置参数" />
</el-form-item>
</el-col>
<el-col :span="24">
<el-form-item label="关键字参数" prop="jobKwargs">
<el-input v-model="form.jobKwargs" placeholder="请输入关键字参数" />
</el-form-item>
</el-col>
<el-col :span="24">
<el-form-item label="cron表达式" prop="cronExpression">
<el-input v-model="form.cronExpression" placeholder="请输入cron执行表达式">
@@ -242,7 +264,7 @@
</el-col>
<el-col :span="12">
<el-form-item label="任务分组:">{{ jobGroupFormat(form) }}</el-form-item>
<el-form-item label="创建时间:">{{ form.createTime }}</el-form-item>
<el-form-item label="创建时间:">{{ parseTime(form.createTime) }}</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="cron表达式">{{ form.cronExpression }}</el-form-item>
@@ -250,9 +272,18 @@
<el-col :span="12">
<el-form-item label="下次执行时间:">{{ parseTime(form.nextValidTime) }}</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="任务执行器:">{{ jobExecutorFormat(form) }}</el-form-item>
</el-col>
<el-col :span="24">
<el-form-item label="调用目标方法:">{{ form.invokeTarget }}</el-form-item>
</el-col>
<el-col :span="24">
<el-form-item label="位置参数:">{{ form.jobArgs }}</el-form-item>
</el-col>
<el-col :span="24">
<el-form-item label="关键字参数:">{{ form.jobKwargs }}</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="任务状态:">
<div v-if="form.status == 0">正常</div>
@@ -267,10 +298,10 @@
</el-col>
<el-col :span="12">
<el-form-item label="执行策略:">
<div v-if="form.misfirePolicy == 0">默认策略</div>
<div v-else-if="form.misfirePolicy == 1">立即执行</div>
<div v-else-if="form.misfirePolicy == 2">执行一次</div>
<div v-else-if="form.misfirePolicy == 3">放弃执行</div>
<div v-if="form.misfirePolicy == '0'">默认策略</div>
<div v-else-if="form.misfirePolicy == '1'">立即执行</div>
<div v-else-if="form.misfirePolicy == '2'">执行一次</div>
<div v-else-if="form.misfirePolicy == '3'">放弃执行</div>
</el-form-item>
</el-col>
</el-row>
@@ -289,7 +320,7 @@ import { listJob, getJob, delJob, addJob, updateJob, runJob, changeJobStatus } f
import Crontab from '@/components/Crontab'
const router = useRouter();
const { proxy } = getCurrentInstance();
const { sys_job_group, sys_job_status } = proxy.useDict("sys_job_group", "sys_job_status");
const { sys_job_group, sys_job_status, sys_job_executor } = proxy.useDict("sys_job_group", "sys_job_status", "sys_job_executor");
const jobList = ref([]);
const open = ref(false);
@@ -335,6 +366,10 @@ function getList() {
function jobGroupFormat(row, column) {
return proxy.selectDictLabel(sys_job_group.value, row.jobGroup);
}
/** 任务执行器名字典翻译 */
function jobExecutorFormat(row, column) {
return proxy.selectDictLabel(sys_job_executor.value, row.jobExecutor);
}
/** 取消按钮 */
function cancel() {
open.value = false;
@@ -348,8 +383,8 @@ function reset() {
jobGroup: undefined,
invokeTarget: undefined,
cronExpression: undefined,
misfirePolicy: 1,
concurrent: 1,
misfirePolicy: "1",
concurrent: "1",
status: "0"
};
proxy.resetForm("jobRef");

View File

@@ -141,12 +141,24 @@
<el-form-item label="任务名称:">{{ form.jobName }}</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="任务分组:">{{ form.jobGroup }}</el-form-item>
<el-form-item label="执行时间:">{{ form.createTime }}</el-form-item>
<el-form-item label="任务分组:">{{ jobGroupFormat(form) }}</el-form-item>
<el-form-item label="执行时间:">{{ parseTime(form.createTime) }}</el-form-item>
</el-col>
<el-col :span="24">
<el-form-item label="任务执行器:">{{ jobExecutorFormat(form) }}</el-form-item>
</el-col>
<el-col :span="24">
<el-form-item label="任务触发器:">{{ form.jobTrigger }}</el-form-item>
</el-col>
<el-col :span="24">
<el-form-item label="调用方法:">{{ form.invokeTarget }}</el-form-item>
</el-col>
<el-col :span="24">
<el-form-item label="位置参数:">{{ form.jobArgs }}</el-form-item>
</el-col>
<el-col :span="24">
<el-form-item label="关键字参数:">{{ form.jobKwargs }}</el-form-item>
</el-col>
<el-col :span="24">
<el-form-item label="日志信息:">{{ form.jobMessage }}</el-form-item>
</el-col>
@@ -175,7 +187,7 @@ import { getJob } from "@/api/monitor/job";
import { listJobLog, delJobLog, cleanJobLog } from "@/api/monitor/jobLog";
const { proxy } = getCurrentInstance();
const { sys_common_status, sys_job_group } = proxy.useDict("sys_common_status", "sys_job_group");
const { sys_common_status, sys_job_group, sys_job_executor } = proxy.useDict("sys_common_status", "sys_job_group", "sys_job_executor");
const jobLogList = ref([]);
const open = ref(false);
@@ -209,6 +221,14 @@ function getList() {
loading.value = false;
});
}
/** 任务组名字典翻译 */
function jobGroupFormat(row, column) {
return proxy.selectDictLabel(sys_job_group.value, row.jobGroup);
}
/** 任务组名字典翻译 */
function jobExecutorFormat(row, column) {
return proxy.selectDictLabel(sys_job_executor.value, row.jobExecutor);
}
// 返回按钮
function handleClose() {
const obj = { path: "/monitor/job" };