| | |
| | | <template> |
| | | <div class="app-container"> |
| | | <el-form :model="queryParams" ref="queryForm" :inline="true" v-show="showSearch" label-width="68px"> |
| | | <el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="68px"> |
| | | <el-form-item label="任务名称" prop="jobName"> |
| | | <el-input |
| | | v-model="queryParams.jobName" |
| | | placeholder="请输入任务名称" |
| | | clearable |
| | | size="small" |
| | | @keyup.enter.native="handleQuery" |
| | | /> |
| | | </el-form-item> |
| | | <el-form-item label="任务组名" prop="jobGroup"> |
| | | <el-select v-model="queryParams.jobGroup" placeholder="请选择任务组名" clearable size="small"> |
| | | <el-select v-model="queryParams.jobGroup" placeholder="请选择任务组名" clearable> |
| | | <el-option |
| | | v-for="dict in dict.type.sys_job_group" |
| | | :key="dict.value" |
| | |
| | | </el-select> |
| | | </el-form-item> |
| | | <el-form-item label="任务状态" prop="status"> |
| | | <el-select v-model="queryParams.status" placeholder="请选择任务状态" clearable size="small"> |
| | | <el-select v-model="queryParams.status" placeholder="请选择任务状态" clearable> |
| | | <el-option |
| | | v-for="dict in dict.type.sys_job_status" |
| | | :key="dict.value" |
| | |
| | | plain |
| | | icon="el-icon-download" |
| | | size="mini" |
| | | :loading="exportLoading" |
| | | @click="handleExport" |
| | | v-hasPermi="['monitor:job:export']" |
| | | >导出</el-button> |
| | |
| | | v-hasPermi="['monitor:job:remove']" |
| | | >删除</el-button> |
| | | <el-dropdown size="mini" @command="(command) => handleCommand(command, scope.row)" v-hasPermi="['monitor:job:changeStatus', 'monitor:job:query']"> |
| | | <span class="el-dropdown-link"> |
| | | <i class="el-icon-d-arrow-right el-icon--right"></i>更多 |
| | | </span> |
| | | <el-button size="mini" type="text" icon="el-icon-d-arrow-right">更多</el-button> |
| | | <el-dropdown-menu slot="dropdown"> |
| | | <el-dropdown-item command="handleRun" icon="el-icon-caret-right" |
| | | v-hasPermi="['monitor:job:changeStatus']">执行一次</el-dropdown-item> |
| | |
| | | </el-col> |
| | | <el-col :span="12"> |
| | | <el-form-item label="任务分组" prop="jobGroup"> |
| | | <el-select v-model="form.jobGroup" placeholder="请选择"> |
| | | <el-select v-model="form.jobGroup" placeholder="请选择任务分组"> |
| | | <el-option |
| | | v-for="dict in dict.type.sys_job_group" |
| | | :key="dict.value" |
| | |
| | | </el-input> |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :span="24"> |
| | | <el-form-item label="错误策略" prop="misfirePolicy"> |
| | | <el-col :span="24" v-if="form.jobId !== undefined"> |
| | | <el-form-item label="状态"> |
| | | <el-radio-group v-model="form.status"> |
| | | <el-radio |
| | | v-for="dict in dict.type.sys_job_status" |
| | | :key="dict.value" |
| | | :label="dict.value" |
| | | >{{dict.label}}</el-radio> |
| | | </el-radio-group> |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :span="12"> |
| | | <el-form-item label="执行策略" prop="misfirePolicy"> |
| | | <el-radio-group v-model="form.misfirePolicy" size="small"> |
| | | <el-radio-button label="1">立即执行</el-radio-button> |
| | | <el-radio-button label="2">执行一次</el-radio-button> |
| | |
| | | <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 |
| | | v-for="dict in dict.type.sys_job_status" |
| | | :key="dict.value" |
| | | :label="dict.value" |
| | | >{{dict.label}}</el-radio> |
| | | </el-radio-group> |
| | | </el-form-item> |
| | | </el-col> |
| | |
| | | <el-col :span="12"> |
| | | <el-form-item label="任务状态:"> |
| | | <div v-if="form.status == 0">正常</div> |
| | | <div v-else-if="form.status == 1">失败</div> |
| | | <div v-else-if="form.status == 1">暂停</div> |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :span="12"> |
| | |
| | | </template> |
| | | |
| | | <script> |
| | | import { listJob, getJob, delJob, addJob, updateJob, exportJob, runJob, changeJobStatus } from "@/api/monitor/job"; |
| | | import { listJob, getJob, delJob, addJob, updateJob, runJob, changeJobStatus } from "@/api/monitor/job"; |
| | | import Crontab from '@/components/Crontab' |
| | | |
| | | export default { |
| | |
| | | return { |
| | | // 遮罩层 |
| | | loading: true, |
| | | // 导出遮罩层 |
| | | exportLoading: false, |
| | | // 选中数组 |
| | | ids: [], |
| | | // 非单个禁用 |
| | |
| | | /** 任务日志列表查询 */ |
| | | handleJobLog(row) { |
| | | const jobId = row.jobId || 0; |
| | | this.$router.push({ path: '/monitor/job-log/index', query: { jobId: jobId } }) |
| | | this.$router.push('/monitor/job-log/index/' + jobId) |
| | | }, |
| | | /** 新增按钮操作 */ |
| | | handleAdd() { |
| | |
| | | }, |
| | | /** 导出按钮操作 */ |
| | | handleExport() { |
| | | const queryParams = this.queryParams; |
| | | this.$modal.confirm('是否确认导出所有定时任务数据项?').then(() => { |
| | | this.exportLoading = true; |
| | | return exportJob(queryParams); |
| | | }).then(response => { |
| | | this.download(response.msg); |
| | | this.exportLoading = false; |
| | | }).catch(() => {}); |
| | | this.download('monitor/job/export', { |
| | | ...this.queryParams |
| | | }, `job_${new Date().getTime()}.xlsx`) |
| | | } |
| | | } |
| | | }; |