feat;完成接口对接

This commit is contained in:
陈淳
2023-04-25 10:38:51 +08:00
parent 6a881e4613
commit 770e8d7310
6 changed files with 263 additions and 66 deletions

View File

@@ -10,14 +10,12 @@
/>
</el-form-item>
<el-form-item label="任务组名" prop="jobGroup">
<el-select v-model="queryParams.jobGroup" placeholder="请选择任务组名" clearable>
<el-option
v-for="dict in sys_job_group"
:key="dict.value"
:label="dict.label"
:value="dict.value"
/>
</el-select>
<el-input
v-model="queryParams.jobGroup"
placeholder="请输入任务组名"
clearable
@keyup.enter="handleQuery"
/>
</el-form-item>
<el-form-item label="任务状态" prop="status">
<el-select v-model="queryParams.status" placeholder="请选择任务状态" clearable>
@@ -178,45 +176,81 @@
<el-form ref="jobRef" :model="form" :rules="rules" label-width="120px">
<el-row>
<el-col :span="12">
<el-form-item label="任务名称" prop="jobName">
<el-input v-model="form.jobName" placeholder="请输入任务名称" />
<el-form-item label="任务名称" prop="jobId">
<el-input v-model="form.jobId" placeholder="请输入任务名称" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="任务分组" prop="jobGroup">
<el-select v-model="form.jobGroup" placeholder="请选择">
<el-option
v-for="dict in sys_job_group"
:key="dict.value"
:label="dict.label"
:value="dict.value"
></el-option>
</el-select>
<el-form-item label="任务分组" prop="groupName">
<el-input v-model="form.groupName" placeholder="请输入任务分组" />
</el-form-item>
</el-col>
</el-col>
<el-col :span="24">
<el-form-item prop="invokeTarget">
<el-form-item prop="assemblyName">
<template #label>
<span>
调用方法
调用程序集
<el-tooltip placement="top">
<template #content>
<div>
Bean调用示例ryTask.ryParams('ry')
<br />Class类调用示例com.ruoyi.quartz.task.RyTask.ryParams('ry')
<br />参数说明支持字符串布尔类型长整型浮点型整型
Bean调用示例Yi.Furion.Application
<!-- <br />Class类调用示例com.ruoyi.quartz.task.RyTask.ryParams('ry')
<br />参数说明支持字符串布尔类型长整型浮点型整型 -->
</div>
</template>
<el-icon><question-filled /></el-icon>
</el-tooltip>
</span>
</template>
<el-input v-model="form.invokeTarget" placeholder="请输入调用目标字符串" />
<el-input v-model="form.assemblyName" placeholder="请输入调用程序集" />
</el-form-item>
<el-form-item prop="jobTypeFullName">
<template #label>
<span>
job类名
<el-tooltip placement="top">
<template #content>
<div>
Bean调用示例Yi.Furion.Application.Rbac.Job.TestJob
<br />Class类调用示例Yi.Furion.Application.Rbac.Job.TestJob
<!-- <br />参数说明支持字符串布尔类型长整型浮点型整型 -->
</div>
</template>
<el-icon><question-filled /></el-icon>
</el-tooltip>
</span>
</template>
<el-input v-model="form.jobTypeFullName" placeholder="请输入调用程序集下的job完整类名" />
</el-form-item>
<el-form-item prop="properties">
<template #label>
<span>
job任务参数
<el-tooltip placement="top">
<template #content>
<div>
参数示例{"string":"obj","string","obj"}
<br />调用示例类型为字典key:string,value:obj
<!-- <br />参数说明支持字符串布尔类型长整型浮点型整型 -->
</div>
</template>
<el-icon><question-filled /></el-icon>
</el-tooltip>
</span>
</template>
<el-input v-model="form.properties" 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执行表达式">
<el-col v-show="form.type==0" :span="24">
<el-form-item label="cron表达式" prop="cron">
<el-input v-model="form.cron" placeholder="请输入cron执行表达式">
<template #append>
<el-button type="primary" @click="handleShowCron">
生成表达式
@@ -225,25 +259,30 @@
</template>
</el-input>
</el-form-item>
</el-col>
<el-col v-show="form.type==1" :span="24">
<el-form-item label="定时毫秒间隔" prop="millisecond">
<el-input v-model="form.millisecond" placeholder="请输入毫秒间隔">
</el-input>
</el-form-item>
</el-col>
<el-col :span="24">
<el-form-item label="执行策略" prop="misfirePolicy">
<el-radio-group v-model="form.misfirePolicy">
<el-radio-button label="1">立即执行</el-radio-button>
<el-radio-button label="2">执行一次</el-radio-button>
<el-radio-button label="3">放弃执行</el-radio-button>
<el-form-item label="执行策略" prop="type">
<el-radio-group v-model="form.type">
<el-radio-button :label=0>Cron表达式</el-radio-button>
<el-radio-button :label=1>简单毫秒间隔</el-radio-button>
</el-radio-group>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="是否并发" prop="concurrent">
<el-radio-group v-model="form.concurrent">
<el-radio-button label="0">允许</el-radio-button>
<el-radio-button label="1">禁止</el-radio-button>
<el-radio-button :label=true>允许</el-radio-button>
<el-radio-button :label=false>禁止</el-radio-button>
</el-radio-group>
</el-form-item>
</el-col>
<el-col :span="12">
<!-- <el-col :span="12">
<el-form-item label="状态">
<el-radio-group v-model="form.status">
<el-radio
@@ -253,7 +292,14 @@
>{{ dict.label }}</el-radio>
</el-radio-group>
</el-form-item>
</el-col>
</el-col> -->
<el-col :span="24">
<el-form-item label="描述" prop="description">
<el-input v-model="form.description" placeholder="请输入任务描述" />
</el-form-item>
</el-col>
</el-row>
</el-form>
<template #footer>
@@ -318,6 +364,7 @@
<script setup name="Job">
import { listJob, getJob, delJob, addJob, updateJob, runJob, changeJobStatus } from "@/api/monitor/job";
import { ref } from "vue";
const router = useRouter();
const { proxy } = getCurrentInstance();
@@ -336,19 +383,21 @@ const openView = ref(false);
const openCron = ref(false);
const expression = ref("");
const IsAdd=ref(true);
const data = reactive({
form: {},
queryParams: {
pageNum: 1,
pageSize: 10,
jobName: undefined,
JobId: undefined,
jobGroup: undefined,
status: undefined
},
rules: {
jobName: [{ required: true, message: "任务名称不能为空", trigger: "blur" }],
invokeTarget: [{ required: true, message: "调用目标字符串不能为空", trigger: "blur" }],
cronExpression: [{ required: true, message: "cron执行表达式不能为空", trigger: "blur" }]
JobId: [{ required: true, message: "任务Id不能为空", trigger: "blur" }],
assemblyName: [{ required: true, message: "Job程序集不能为空", trigger: "blur" }],
jobTypeFullName: [{ required: true, message: "Job全类名不能为空", trigger: "blur" }]
}
});
@@ -376,14 +425,17 @@ function cancel() {
function reset() {
form.value = {
jobId: undefined,
jobName: undefined,
jobGroup: undefined,
invokeTarget: undefined,
cronExpression: undefined,
misfirePolicy: 1,
concurrent: 1,
status: "0"
groupName: undefined,
type: undefined,
cron: undefined,
millisecond: undefined,
assemblyName: undefined,
jobTypeFullName: undefined,
concurrent: false,
description:undefined,
properties:undefined
};
IsAdd.value=true;
proxy.resetForm("jobRef");
}
/** 搜索按钮操作 */
@@ -431,7 +483,7 @@ function handleStatusChange(row) {
}
/* 立即执行一次 */
function handleRun(row) {
proxy.$modal.confirm('确认要立即执行一次"' + row.jobName + '"任务吗?').then(function () {
proxy.$modal.confirm('确认要立即执行一次"' + row.jobId + '"任务吗?').then(function () {
return runJob(row.jobId, row.jobGroup);
}).then(() => {
proxy.$modal.msgSuccess("执行成功");})
@@ -466,6 +518,7 @@ function handleAdd() {
}
/** 修改按钮操作 */
function handleUpdate(row) {
IsAdd.value=false;
reset();
const jobId = row.jobId || ids.value;
getJob(jobId).then(response => {
@@ -478,18 +531,21 @@ function handleUpdate(row) {
function submitForm() {
proxy.$refs["jobRef"].validate(valid => {
if (valid) {
if (form.value.jobId != undefined) {
updateJob(form.value).then(response => {
proxy.$modal.msgSuccess("修改成功");
open.value = false;
getList();
});
} else {
if (IsAdd.value) {
addJob(form.value).then(response => {
proxy.$modal.msgSuccess("新增成功");
open.value = false;
getList();
});
} else {
updateJob(form.value).then(response => {
proxy.$modal.msgSuccess("修改成功");
open.value = false;
getList();
});
}
}
});
@@ -504,12 +560,12 @@ function handleDelete(row) {
proxy.$modal.msgSuccess("删除成功");
}).catch(() => {});
}
/** 导出按钮操作 */
function handleExport() {
proxy.download("monitor/job/export", {
...queryParams.value,
}, `job_${new Date().getTime()}.xlsx`);
}
// /** 导出按钮操作 */
// function handleExport() {
// proxy.download("monitor/job/export", {
// ...queryParams.value,
// }, `job_${new Date().getTime()}.xlsx`);
// }
getList();
</script>