|
@@ -1,93 +1,244 @@
|
|
|
<template>
|
|
|
<div class="page-container list-container">
|
|
|
<div :gutter="10" class="list-btns-container">
|
|
|
- <el-button type="primary" size="small" icon="Plus" @click="handleAdd"
|
|
|
- v-hasPermi="['monitor:job:add']">新增</el-button>
|
|
|
+ <el-button
|
|
|
+ type="primary"
|
|
|
+ size="small"
|
|
|
+ icon="Plus"
|
|
|
+ @click="handleAdd"
|
|
|
+ v-hasPermi="['monitor:job:add']"
|
|
|
+ >新增</el-button
|
|
|
+ >
|
|
|
|
|
|
- <el-button type="warning" size="small" icon="Edit" :disabled="single" @click="handleUpdate"
|
|
|
- v-hasPermi="['monitor:job:edit']">修改</el-button>
|
|
|
+ <el-button
|
|
|
+ type="warning"
|
|
|
+ size="small"
|
|
|
+ icon="Edit"
|
|
|
+ :disabled="single"
|
|
|
+ @click="handleUpdate"
|
|
|
+ v-hasPermi="['monitor:job:edit']"
|
|
|
+ >修改</el-button
|
|
|
+ >
|
|
|
|
|
|
- <el-button type="danger" size="small" icon="Delete" :disabled="multiple" @click="handleDelete"
|
|
|
- v-hasPermi="['monitor:job:remove']">删除</el-button>
|
|
|
+ <el-button
|
|
|
+ type="danger"
|
|
|
+ size="small"
|
|
|
+ icon="Delete"
|
|
|
+ :disabled="multiple"
|
|
|
+ @click="handleDelete"
|
|
|
+ v-hasPermi="['monitor:job:remove']"
|
|
|
+ >删除</el-button
|
|
|
+ >
|
|
|
|
|
|
- <el-button type="info" size="small" icon="Download" @click="handleExport"
|
|
|
- v-hasPermi="['monitor:job:export']">导出</el-button>
|
|
|
+ <el-button
|
|
|
+ type="info"
|
|
|
+ size="small"
|
|
|
+ icon="Download"
|
|
|
+ @click="handleExport"
|
|
|
+ v-hasPermi="['monitor:job:export']"
|
|
|
+ >导出</el-button
|
|
|
+ >
|
|
|
|
|
|
- <el-button size="small" icon="Operation" @click="handleJobLog" v-hasPermi="['monitor:job:query']">日志</el-button>
|
|
|
+ <el-button
|
|
|
+ size="small"
|
|
|
+ icon="Operation"
|
|
|
+ @click="handleJobLog"
|
|
|
+ v-hasPermi="['monitor:job:query']"
|
|
|
+ >日志</el-button
|
|
|
+ >
|
|
|
|
|
|
<!-- <right-toolbar v-model:showSearch="showSearch" @queryTable="getList"></right-toolbar> -->
|
|
|
</div>
|
|
|
|
|
|
- <el-form class="list-search-container" :model="queryParams" ref="queryRef" :inline="true" v-show="showSearch">
|
|
|
+ <el-form
|
|
|
+ class="list-search-container"
|
|
|
+ :model="queryParams"
|
|
|
+ ref="queryRef"
|
|
|
+ :inline="true"
|
|
|
+ v-show="showSearch"
|
|
|
+ >
|
|
|
<el-form-item label="任务名称:" prop="jobName">
|
|
|
- <el-input size="small" v-model="queryParams.jobName" placeholder="请输入任务名称" clearable style="width: 200px"
|
|
|
- @keyup.enter="handleQuery" />
|
|
|
+ <el-input
|
|
|
+ size="small"
|
|
|
+ v-model="queryParams.jobName"
|
|
|
+ placeholder="请输入任务名称"
|
|
|
+ clearable
|
|
|
+ style="width: 200px"
|
|
|
+ @keyup.enter="handleQuery"
|
|
|
+ />
|
|
|
</el-form-item>
|
|
|
<el-form-item label="任务组名:" prop="jobGroup">
|
|
|
- <el-select size="small" v-model="queryParams.jobGroup" placeholder="请选择任务组名" clearable style="width: 200px">
|
|
|
- <el-option v-for="dict in sys_job_group" :key="dict.value" :label="dict.label" :value="dict.value" />
|
|
|
+ <el-select
|
|
|
+ size="small"
|
|
|
+ v-model="queryParams.jobGroup"
|
|
|
+ placeholder="请选择任务组名"
|
|
|
+ clearable
|
|
|
+ style="width: 200px"
|
|
|
+ >
|
|
|
+ <el-option
|
|
|
+ v-for="dict in sys_job_group"
|
|
|
+ :key="dict.value"
|
|
|
+ :label="dict.label"
|
|
|
+ :value="dict.value"
|
|
|
+ />
|
|
|
</el-select>
|
|
|
</el-form-item>
|
|
|
<el-form-item label="任务状态:" prop="status">
|
|
|
- <el-select size="small" v-model="queryParams.status" placeholder="请选择任务状态" clearable style="width: 200px">
|
|
|
- <el-option v-for="dict in sys_job_status" :key="dict.value" :label="dict.label" :value="dict.value" />
|
|
|
+ <el-select
|
|
|
+ size="small"
|
|
|
+ v-model="queryParams.status"
|
|
|
+ placeholder="请选择任务状态"
|
|
|
+ clearable
|
|
|
+ style="width: 200px"
|
|
|
+ >
|
|
|
+ <el-option
|
|
|
+ v-for="dict in sys_job_status"
|
|
|
+ :key="dict.value"
|
|
|
+ :label="dict.label"
|
|
|
+ :value="dict.value"
|
|
|
+ />
|
|
|
</el-select>
|
|
|
</el-form-item>
|
|
|
<el-form-item>
|
|
|
- <el-button size="small" type="primary" icon="Search" @click="handleQuery">搜索</el-button>
|
|
|
- <el-button size="small" icon="Refresh" @click="resetQuery">重置</el-button>
|
|
|
+ <el-button
|
|
|
+ size="small"
|
|
|
+ type="primary"
|
|
|
+ icon="Search"
|
|
|
+ @click="handleQuery"
|
|
|
+ >搜索</el-button
|
|
|
+ >
|
|
|
+ <el-button size="small" icon="Refresh" @click="resetQuery"
|
|
|
+ >重置</el-button
|
|
|
+ >
|
|
|
</el-form-item>
|
|
|
</el-form>
|
|
|
|
|
|
- <el-table size="small" v-loading="loading" border height="100%" :data="jobList"
|
|
|
- @selection-change="handleSelectionChange">
|
|
|
+ <el-table
|
|
|
+ size="small"
|
|
|
+ v-loading="loading"
|
|
|
+ border
|
|
|
+ height="100%"
|
|
|
+ :data="jobList"
|
|
|
+ @selection-change="handleSelectionChange"
|
|
|
+ >
|
|
|
<el-table-column type="selection" width="55" align="center" />
|
|
|
- <el-table-column label="任务编号" width="100" align="center" prop="jobId" />
|
|
|
- <el-table-column label="任务名称" align="center" prop="jobName" :show-overflow-tooltip="true" />
|
|
|
+ <el-table-column
|
|
|
+ label="任务编号"
|
|
|
+ width="100"
|
|
|
+ align="center"
|
|
|
+ prop="jobId"
|
|
|
+ />
|
|
|
+ <el-table-column
|
|
|
+ label="任务名称"
|
|
|
+ align="center"
|
|
|
+ prop="jobName"
|
|
|
+ :show-overflow-tooltip="true"
|
|
|
+ />
|
|
|
<el-table-column label="任务组名" align="center" prop="jobGroup">
|
|
|
<template #default="scope">
|
|
|
<dict-tag :options="sys_job_group" :value="scope.row.jobGroup" />
|
|
|
</template>
|
|
|
</el-table-column>
|
|
|
- <el-table-column label="调用目标字符串" align="center" prop="invokeTarget" :show-overflow-tooltip="true" />
|
|
|
- <el-table-column label="cron执行表达式" align="center" prop="cronExpression" :show-overflow-tooltip="true" />
|
|
|
+ <el-table-column
|
|
|
+ label="调用目标字符串"
|
|
|
+ align="center"
|
|
|
+ prop="invokeTarget"
|
|
|
+ :show-overflow-tooltip="true"
|
|
|
+ />
|
|
|
+ <el-table-column
|
|
|
+ label="cron执行表达式"
|
|
|
+ align="center"
|
|
|
+ prop="cronExpression"
|
|
|
+ :show-overflow-tooltip="true"
|
|
|
+ />
|
|
|
<el-table-column label="状态" align="center">
|
|
|
<template #default="scope">
|
|
|
- <el-switch v-model="scope.row.status" active-value="0" inactive-value="1"
|
|
|
- @change="handleStatusChange(scope.row)"></el-switch>
|
|
|
+ <el-switch
|
|
|
+ v-model="scope.row.status"
|
|
|
+ active-value="0"
|
|
|
+ inactive-value="1"
|
|
|
+ @change="handleStatusChange(scope.row)"
|
|
|
+ ></el-switch>
|
|
|
</template>
|
|
|
</el-table-column>
|
|
|
- <el-table-column label="操作" align="center" width="200" class-name="small-padding fixed-width">
|
|
|
+ <el-table-column
|
|
|
+ label="操作"
|
|
|
+ align="center"
|
|
|
+ width="200"
|
|
|
+ class-name="small-padding fixed-width"
|
|
|
+ >
|
|
|
<template #default="scope">
|
|
|
- <el-tooltip content="修改" placement="top">
|
|
|
- <el-button link type="warning" icon="Edit" @click="handleUpdate(scope.row)"
|
|
|
- v-hasPermi="['monitor:job:edit']"></el-button>
|
|
|
- </el-tooltip>
|
|
|
- <el-tooltip content="删除" placement="top">
|
|
|
- <el-button link type="danger" icon="Delete" @click="handleDelete(scope.row)"
|
|
|
- v-hasPermi="['monitor:job:remove']"></el-button>
|
|
|
- </el-tooltip>
|
|
|
- <el-tooltip content="执行一次" placement="top">
|
|
|
- <el-button link type="success" icon="CaretRight" @click="handleRun(scope.row)"
|
|
|
- v-hasPermi="['monitor:job:changeStatus']"></el-button>
|
|
|
- </el-tooltip>
|
|
|
- <el-tooltip content="任务详细" placement="top">
|
|
|
- <el-button link type="primary" icon="View" @click="handleView(scope.row)"
|
|
|
- v-hasPermi="['monitor:job:query']"></el-button>
|
|
|
- </el-tooltip>
|
|
|
- <el-tooltip content="调度日志" placement="top">
|
|
|
- <el-button link type="info" icon="Operation" @click="handleJobLog(scope.row)"
|
|
|
- v-hasPermi="['monitor:job:query']"></el-button>
|
|
|
- </el-tooltip>
|
|
|
+ <!-- content="修改" -->
|
|
|
+ <!-- <el-tooltip placement="top"> -->
|
|
|
+ <el-button
|
|
|
+ link
|
|
|
+ type="warning"
|
|
|
+ size="small"
|
|
|
+ @click="handleUpdate(scope.row)"
|
|
|
+ v-hasPermi="['monitor:job:edit']"
|
|
|
+ >修改</el-button
|
|
|
+ >
|
|
|
+ <!-- </el-tooltip> -->
|
|
|
+ <!-- <el-tooltip placement="top"> -->
|
|
|
+ <el-button
|
|
|
+ link
|
|
|
+ type="danger"
|
|
|
+ size="small"
|
|
|
+ @click="handleDelete(scope.row)"
|
|
|
+ v-hasPermi="['monitor:job:remove']"
|
|
|
+ >删除</el-button
|
|
|
+ >
|
|
|
+ <!-- </el-tooltip> -->
|
|
|
+ <!-- <el-tooltip placement="top"> -->
|
|
|
+ <el-button
|
|
|
+ link
|
|
|
+ size="small"
|
|
|
+ type="success"
|
|
|
+ @click="handleRun(scope.row)"
|
|
|
+ v-hasPermi="['monitor:job:changeStatus']"
|
|
|
+ >执行</el-button
|
|
|
+ >
|
|
|
+ <!-- </el-tooltip> -->
|
|
|
+ <!-- <el-tooltip placement="top"> -->
|
|
|
+ <el-button
|
|
|
+ link
|
|
|
+ size="small"
|
|
|
+ type="primary"
|
|
|
+ @click="handleView(scope.row)"
|
|
|
+ v-hasPermi="['monitor:job:query']"
|
|
|
+ >详细</el-button
|
|
|
+ >
|
|
|
+ <!-- </el-tooltip> -->
|
|
|
+ <!-- <el-tooltip placement="top"> -->
|
|
|
+ <el-button
|
|
|
+ link
|
|
|
+ size="small"
|
|
|
+ type="info"
|
|
|
+ @click="handleJobLog(scope.row)"
|
|
|
+ v-hasPermi="['monitor:job:query']"
|
|
|
+ >日志</el-button
|
|
|
+ >
|
|
|
+ <!-- </el-tooltip> -->
|
|
|
</template>
|
|
|
</el-table-column>
|
|
|
</el-table>
|
|
|
|
|
|
- <pagination v-show="total > 0" :total="total" v-model:page="queryParams.pageNum" v-model:limit="queryParams.pageSize"
|
|
|
- @pagination="getList" />
|
|
|
+ <pagination
|
|
|
+ v-show="total > 0"
|
|
|
+ :total="total"
|
|
|
+ v-model:page="queryParams.pageNum"
|
|
|
+ v-model:limit="queryParams.pageSize"
|
|
|
+ @pagination="getList"
|
|
|
+ />
|
|
|
|
|
|
<!-- 添加或修改定时任务对话框 -->
|
|
|
- <el-dialog :title="title" v-model="open" width="800px" append-to-body draggable>
|
|
|
+ <el-dialog
|
|
|
+ :title="title"
|
|
|
+ v-model="open"
|
|
|
+ width="800px"
|
|
|
+ append-to-body
|
|
|
+ draggable
|
|
|
+ >
|
|
|
<el-form ref="jobRef" :model="form" :rules="rules" label-width="120px">
|
|
|
<el-row>
|
|
|
<el-col :span="12">
|
|
@@ -98,8 +249,12 @@
|
|
|
<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-option
|
|
|
+ v-for="dict in sys_job_group"
|
|
|
+ :key="dict.value"
|
|
|
+ :label="dict.label"
|
|
|
+ :value="dict.value"
|
|
|
+ ></el-option>
|
|
|
</el-select>
|
|
|
</el-form-item>
|
|
|
</el-col>
|
|
@@ -120,12 +275,18 @@
|
|
|
</el-tooltip>
|
|
|
</span>
|
|
|
</template>
|
|
|
- <el-input v-model="form.invokeTarget" placeholder="请输入调用目标字符串" />
|
|
|
+ <el-input
|
|
|
+ v-model="form.invokeTarget"
|
|
|
+ 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-input
|
|
|
+ v-model="form.cronExpression"
|
|
|
+ placeholder="请输入cron执行表达式"
|
|
|
+ >
|
|
|
<template #append>
|
|
|
<el-button type="primary" @click="handleShowCron">
|
|
|
生成表达式
|
|
@@ -155,7 +316,12 @@
|
|
|
<el-col :span="12">
|
|
|
<el-form-item label="状态">
|
|
|
<el-radio-group v-model="form.status">
|
|
|
- <el-radio v-for="dict in sys_job_status" :key="dict.value" :label="dict.value">{{ dict.label }}</el-radio>
|
|
|
+ <el-radio
|
|
|
+ v-for="dict in sys_job_status"
|
|
|
+ :key="dict.value"
|
|
|
+ :label="dict.value"
|
|
|
+ >{{ dict.label }}</el-radio
|
|
|
+ >
|
|
|
</el-radio-group>
|
|
|
</el-form-item>
|
|
|
</el-col>
|
|
@@ -169,8 +335,19 @@
|
|
|
</template>
|
|
|
</el-dialog>
|
|
|
|
|
|
- <el-dialog title="Cron表达式生成器" v-model="openCron" append-to-body destroy-on-close draggable>
|
|
|
- <crontab ref="crontabRef" @hide="openCron = false" @fill="crontabFill" :expression="expression"></crontab>
|
|
|
+ <el-dialog
|
|
|
+ title="Cron表达式生成器"
|
|
|
+ v-model="openCron"
|
|
|
+ append-to-body
|
|
|
+ destroy-on-close
|
|
|
+ draggable
|
|
|
+ >
|
|
|
+ <crontab
|
|
|
+ ref="crontabRef"
|
|
|
+ @hide="openCron = false"
|
|
|
+ @fill="crontabFill"
|
|
|
+ :expression="expression"
|
|
|
+ ></crontab>
|
|
|
</el-dialog>
|
|
|
|
|
|
<!-- 任务日志详细 -->
|
|
@@ -377,7 +554,7 @@ function handleRun(row) {
|
|
|
.then(() => {
|
|
|
proxy.$modal.msgSuccess("执行成功");
|
|
|
})
|
|
|
- .catch(() => { });
|
|
|
+ .catch(() => {});
|
|
|
}
|
|
|
/** 任务详细信息 */
|
|
|
function handleView(row) {
|
|
@@ -448,7 +625,7 @@ function handleDelete(row) {
|
|
|
getList();
|
|
|
proxy.$modal.msgSuccess("删除成功");
|
|
|
})
|
|
|
- .catch(() => { });
|
|
|
+ .catch(() => {});
|
|
|
}
|
|
|
/** 导出按钮操作 */
|
|
|
function handleExport() {
|