From 6361e4efdc94935fa95ecf04e99b114f0aefbe32 Mon Sep 17 00:00:00 2001 From: RuoYi <yzz_ivy@163.com> Date: 星期五, 03 九月 2021 09:54:07 +0800 Subject: [PATCH] 定时任务支持在线生成cron表达式 --- ruoyi-ui/src/views/monitor/job/index.vue | 50 ++++++++++++++++++++++++++++++++++++++------------ 1 files changed, 38 insertions(+), 12 deletions(-) diff --git a/ruoyi-ui/src/views/monitor/job/index.vue b/ruoyi-ui/src/views/monitor/job/index.vue index 6146633..8924226 100644 --- a/ruoyi-ui/src/views/monitor/job/index.vue +++ b/ruoyi-ui/src/views/monitor/job/index.vue @@ -156,7 +156,7 @@ /> <!-- 添加或修改定时任务对话框 --> - <el-dialog :title="title" :visible.sync="open" width="700px" append-to-body> + <el-dialog :title="title" :visible.sync="open" width="800px" append-to-body> <el-form ref="form" :model="form" :rules="rules" label-width="120px"> <el-row> <el-col :span="12"> @@ -192,17 +192,16 @@ <el-input v-model="form.invokeTarget" placeholder="请输入调用目标字符串" /> </el-form-item> </el-col> - <el-col :span="12"> + <el-col :span="24"> <el-form-item label="cron表达式" prop="cronExpression"> - <el-input v-model="form.cronExpression" placeholder="请输入cron执行表达式" /> - </el-form-item> - </el-col> - <el-col :span="12"> - <el-form-item label="是否并发" prop="concurrent"> - <el-radio-group v-model="form.concurrent" size="small"> - <el-radio-button label="0">允许</el-radio-button> - <el-radio-button label="1">禁止</el-radio-button> - </el-radio-group> + <el-input v-model="form.cronExpression" placeholder="请输入cron执行表达式"> + <template slot="append"> + <el-button type="primary" @click="handleShowCron"> + 生成表达式 + <i class="el-icon-time el-icon--right"></i> + </el-button> + </template> + </el-input> </el-form-item> </el-col> <el-col :span="24"> @@ -214,7 +213,15 @@ </el-radio-group> </el-form-item> </el-col> - <el-col :span="24"> + <el-col :span="12"> + <el-form-item label="是否并发" prop="concurrent"> + <el-radio-group v-model="form.concurrent" size="small"> + <el-radio-button label="0">允许</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="状态"> <el-radio-group v-model="form.status"> <el-radio @@ -231,6 +238,10 @@ <el-button type="primary" @click="submitForm">确 定</el-button> <el-button @click="cancel">取 消</el-button> </div> + </el-dialog> + + <el-dialog title="Cron表达式生成器" :visible.sync="openCron"> + <crontab @hide="openCron=false" @fill="crontabFill" :expression="expression"></crontab> </el-dialog> <!-- 任务日志详细 --> @@ -285,8 +296,10 @@ <script> import { listJob, getJob, delJob, addJob, updateJob, exportJob, runJob, changeJobStatus } from "@/api/monitor/job"; +import Crontab from '@/components/Crontab' export default { + components: { Crontab }, name: "Job", data() { return { @@ -312,6 +325,10 @@ open: false, // 是否显示详细弹出层 openView: false, + // 是否显示Cron表达式弹出层 + openCron: false, + // 传入的表达式 + expression: "", // 任务组名字典 jobGroupOptions: [], // 状态字典 @@ -448,6 +465,15 @@ this.openView = true; }); }, + /** cron表达式按钮操作 */ + handleShowCron() { + this.expression = this.form.cronExpression; + this.openCron = true; + }, + /** 确定后回传值 */ + crontabFill(value) { + this.form.cronExpression = value; + }, /** 任务日志列表查询 */ handleJobLog(row) { const jobId = row.jobId || 0; -- Gitblit v1.9.2