|
|
@@ -6,6 +6,194 @@
|
|
|
加载任务模板
|
|
|
</a-button>
|
|
|
<a-drawer
|
|
|
+ v-model:open="visible" class="custom-class" :title="taskDefineDto.id == null ? '创建任务' : '编辑任务'"
|
|
|
+ placement="right" width="650"
|
|
|
+ >
|
|
|
+ <div>
|
|
|
+ <div v-if="step == 1">
|
|
|
+ <a-card title="1.基本配置" :bordered="false">
|
|
|
+ <a-form layout="horizontal" :label-col="{ span: 6 }" :wrapper-col="{ span: 18 }">
|
|
|
+ <a-form-item label="名称" required>
|
|
|
+ <a-input v-model:value="taskDefineDto.taskName" autocomplete="off" placeholder="请输入任务名称" />
|
|
|
+ </a-form-item>
|
|
|
+
|
|
|
+ <a-form-item label="描述" required>
|
|
|
+ <a-input v-model:value="taskDefineDto.taskDescription" autocomplete="off" placeholder="请填写任务描述" />
|
|
|
+ </a-form-item>
|
|
|
+
|
|
|
+ <a-form-item label="任务类型" required>
|
|
|
+ <v-select
|
|
|
+ v-model="taskDefineDto.selectedTaskType" :options="taskTypes" :label="'value'"
|
|
|
+ placeholder="请选择任务类型"
|
|
|
+ />
|
|
|
+ </a-form-item>
|
|
|
+
|
|
|
+ <template v-if="taskDefineDto.selectedTaskType && taskDefineDto.selectedTaskType.value == '流程'">
|
|
|
+ <a-form-item label="流程编号" required>
|
|
|
+ <a-select
|
|
|
+ v-model:value="taskDefineDto.processNo" show-search style="width: 100%"
|
|
|
+ :options="processNos" :filter-option="filterOption" @change="processNoChang"
|
|
|
+ />
|
|
|
+ </a-form-item>
|
|
|
+
|
|
|
+ <a-form-item label="流程参数" required>
|
|
|
+ <a-button type="link" @click="processNoChang(taskDefineDto.processNo)">重新加载参数</a-button>
|
|
|
+
|
|
|
+ <a-table :columns="processColumns" :data-source="processDatas" :pagination="false" size="small">
|
|
|
+ <template #bodyCell="{ column, record }">
|
|
|
+ <template v-if="column.dataIndex === 'value'">
|
|
|
+ <EditTableCell
|
|
|
+ :record="record" :param-name="'value'" :control-type="'input'"
|
|
|
+ @change-all="tableDataChange"
|
|
|
+ />
|
|
|
+ </template>
|
|
|
+ </template>
|
|
|
+ </a-table>
|
|
|
+ </a-form-item>
|
|
|
+ </template>
|
|
|
+
|
|
|
+ <template v-if="taskDefineDto.selectedTaskType != null && taskDefineDto.selectedTaskType.value == '流程报表'">
|
|
|
+ <a-form-item label="流程报表文件编码" required>
|
|
|
+ <a-input v-model:value="taskDefineDto.processReportNo" autocomplete="off" placeholder="请填写流程报表文件编码" />
|
|
|
+ </a-form-item>
|
|
|
+
|
|
|
+ <a-form-item label="流程报表名称" required>
|
|
|
+ <a-input v-model:value="taskDefineDto.processReportName" autocomplete="off" placeholder="请填写流程报表名称" />
|
|
|
+ </a-form-item>
|
|
|
+ </template>
|
|
|
+
|
|
|
+ <template
|
|
|
+ v-if="taskDefineDto.selectedTaskType != null && taskDefineDto.selectedTaskType.value == 'HTTP任务'"
|
|
|
+ >
|
|
|
+ <a-form-item label="HTTP请求类型" required>
|
|
|
+ <v-select
|
|
|
+ v-model="taskDefineDto.selectedRequestType" :options="requestTypes" :label="'value'"
|
|
|
+ placeholder="请选择HTTP请求类型"
|
|
|
+ />
|
|
|
+ </a-form-item>
|
|
|
+
|
|
|
+ <a-form-item label="HTTP请求地址" required>
|
|
|
+ <a-input v-model:value="taskDefineDto.httpRequestUrl" autocomplete="off" placeholder="请填写HTTP请求地址" />
|
|
|
+ </a-form-item>
|
|
|
+
|
|
|
+ <a-form-item label="HTTP参数(json)">
|
|
|
+ <a-input v-model:value="taskDefineDto.httpRequestParam" autocomplete="off" placeholder="请填写HTTP参数" />
|
|
|
+ </a-form-item>
|
|
|
+ </template>
|
|
|
+
|
|
|
+ <template v-if="taskDefineDto.selectedTaskType && taskDefineDto.selectedTaskType.value !== '流程'">
|
|
|
+ <a-form-item label="接收人">
|
|
|
+ <v-select
|
|
|
+ v-model="taskDefineDto.selectedUser" :options="users" multiple :label="'value'"
|
|
|
+ placeholder="请选择接收人"
|
|
|
+ />
|
|
|
+ </a-form-item>
|
|
|
+
|
|
|
+ <a-form-item label="接收用户组">
|
|
|
+ <v-select
|
|
|
+ v-model="taskDefineDto.selectedGroup" :options="groups" multiple :label="'value'"
|
|
|
+ placeholder="请选择接收用户组"
|
|
|
+ />
|
|
|
+ </a-form-item>
|
|
|
+ </template>
|
|
|
+ </a-form>
|
|
|
+
|
|
|
+ <div style="text-align: right; margin-top: 16px;">
|
|
|
+ <a-button type="primary" @click="saveCheck">下一步</a-button>
|
|
|
+ </div>
|
|
|
+ </a-card>
|
|
|
+ </div>
|
|
|
+
|
|
|
+ <div v-if="step == 2">
|
|
|
+ <a-card title="2.定时配置" :bordered="false">
|
|
|
+ <a-form layout="horizontal" :label-col="{ span: 6 }" :wrapper-col="{ span: 18 }">
|
|
|
+ <a-form-item label="时间类型" required>
|
|
|
+ <v-select
|
|
|
+ v-model="taskDefineDto.selectedTimeType" :options="timeTypes" :label="'value'"
|
|
|
+ placeholder="请选择时间类型"
|
|
|
+ />
|
|
|
+ </a-form-item>
|
|
|
+
|
|
|
+ <template v-if="taskDefineDto.selectedTimeType != null && taskDefineDto.selectedTimeType.value == 'cron'">
|
|
|
+ <a-form-item label="cron表达式" required>
|
|
|
+ <a-input v-model:value="taskDefineDto.cron" autocomplete="off" placeholder="请填写cron表达式" />
|
|
|
+ </a-form-item>
|
|
|
+
|
|
|
+ <a-form-item :wrapper-col="{ offset: 6 }">
|
|
|
+ <a-button size="small" type="link" @click="isShowCorn = true">
|
|
|
+ cron表达式示例
|
|
|
+ </a-button>
|
|
|
+ </a-form-item>
|
|
|
+ </template>
|
|
|
+ </a-form>
|
|
|
+
|
|
|
+ <div style="display: flex; justify-content: space-between; margin-top: 16px;">
|
|
|
+ <a-button @click="step = step - 1">上一步</a-button>
|
|
|
+ <a-button type="primary" @click="saveCheck">下一步</a-button>
|
|
|
+ </div>
|
|
|
+ </a-card>
|
|
|
+ </div>
|
|
|
+
|
|
|
+ <div v-if="step == 3">
|
|
|
+ <a-card title="3.报警配置" :bordered="false">
|
|
|
+ <a-form layout="horizontal" :label-col="{ span: 6 }" :wrapper-col="{ span: 18 }">
|
|
|
+ <a-form-item label="超时报警" required>
|
|
|
+ <a-switch v-model:checked="taskDefineDto.timeoutAlarm" :checked="taskDefineDto.timeoutAlarm" />
|
|
|
+ </a-form-item>
|
|
|
+
|
|
|
+ <a-form-item label="超时时间">
|
|
|
+ <a-input-number
|
|
|
+ v-model:value="taskDefineDto.timeout" autocomplete="off" placeholder="超时时间(s),默认2小时"
|
|
|
+ style="width: 100%"
|
|
|
+ />
|
|
|
+ </a-form-item>
|
|
|
+
|
|
|
+ <a-form-item label="超时终止" required>
|
|
|
+ <a-switch
|
|
|
+ v-model:checked="taskDefineDto.timeoutTermination"
|
|
|
+ :checked="taskDefineDto.timeoutTermination"
|
|
|
+ />
|
|
|
+ </a-form-item>
|
|
|
+
|
|
|
+ <a-form-item label="失败报警" required>
|
|
|
+ <a-switch v-model:checked="taskDefineDto.failureAlarm" :checked="taskDefineDto.failureAlarm" />
|
|
|
+ </a-form-item>
|
|
|
+
|
|
|
+ <a-form-item label="报警联系人">
|
|
|
+ <v-select
|
|
|
+ v-model="taskDefineDto.selectedAlarmUser" :options="users" multiple :label="'value'"
|
|
|
+ placeholder="请选择报警联系人"
|
|
|
+ />
|
|
|
+ </a-form-item>
|
|
|
+ </a-form>
|
|
|
+
|
|
|
+ <div style="display: flex; justify-content: space-between; margin-top: 16px;">
|
|
|
+ <a-button @click="step = step - 1">上一步</a-button>
|
|
|
+ <a-button type="primary" @click="saveCheck">下一步</a-button>
|
|
|
+ </div>
|
|
|
+ </a-card>
|
|
|
+ </div>
|
|
|
+
|
|
|
+ <div v-if="step == 4">
|
|
|
+ <a-card title="4.其他配置" :bordered="false">
|
|
|
+ <a-form layout="horizontal" :label-col="{ span: 6 }" :wrapper-col="{ span: 18 }">
|
|
|
+ <a-form-item label="状态">
|
|
|
+ <v-select
|
|
|
+ v-model="taskDefineDto.selectedStatus" :options="status" :label="'value'"
|
|
|
+ placeholder="请设置任务状态"
|
|
|
+ />
|
|
|
+ </a-form-item>
|
|
|
+ </a-form>
|
|
|
+
|
|
|
+ <div style="display: flex; justify-content: space-between; margin-top: 16px;">
|
|
|
+ <a-button @click="step = step - 1">上一步</a-button>
|
|
|
+ <a-button type="primary" @click="saveCheck">保存</a-button>
|
|
|
+ </div>
|
|
|
+ </a-card>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ </a-drawer>
|
|
|
+ <!-- <a-drawer
|
|
|
v-model:open="visible"
|
|
|
class="custom-class"
|
|
|
:title="taskDefineDto.id == null ? '创建任务' : '编辑任务'"
|
|
|
@@ -471,13 +659,8 @@
|
|
|
</div>
|
|
|
</div>
|
|
|
</div>
|
|
|
- </a-drawer>
|
|
|
- <CommonTable
|
|
|
- :total="pagination.total"
|
|
|
- :columns="columns"
|
|
|
- :data-source="taskDefineDtos"
|
|
|
- @get-pager="getPageParams"
|
|
|
- >
|
|
|
+ </a-drawer> -->
|
|
|
+ <CommonTable :total="pagination.total" :columns="columns" :data-source="taskDefineDtos" @get-pager="getPageParams">
|
|
|
<template #bodyCell="{ column, record }">
|
|
|
<template v-if="column.key == 'taskType'">
|
|
|
{{
|
|
|
@@ -510,34 +693,20 @@
|
|
|
{{ record.taskStatus == "ENABLE" ? "启用" : "禁用" }}
|
|
|
</template>
|
|
|
<template v-if="column.key == 'operation'">
|
|
|
- <a-button
|
|
|
- v-if="record.taskStatus == 'DISABLE'"
|
|
|
- :size="size"
|
|
|
- @click="updateStatus(record, 'ENABLE')"
|
|
|
- >
|
|
|
+ <a-button v-if="record.taskStatus == 'DISABLE'" :size="size" @click="updateStatus(record, 'ENABLE')">
|
|
|
启用
|
|
|
</a-button>
|
|
|
- <a-button
|
|
|
- v-if="record.taskStatus == 'ENABLE'"
|
|
|
- :size="size"
|
|
|
- @click="updateStatus(record, 'DISABLE')"
|
|
|
- >
|
|
|
+ <a-button v-if="record.taskStatus == 'ENABLE'" :size="size" @click="updateStatus(record, 'DISABLE')">
|
|
|
禁用
|
|
|
</a-button>
|
|
|
<a-button type="primary" :size="size" @click="edit(record)">
|
|
|
编辑
|
|
|
</a-button>
|
|
|
- <a-button
|
|
|
- danger
|
|
|
- :size="size"
|
|
|
- @click="deleteTaskBefore(record)"
|
|
|
- >
|
|
|
+ <a-button danger :size="size" @click="deleteTaskBefore(record)">
|
|
|
删除
|
|
|
</a-button>
|
|
|
<a-button
|
|
|
- v-if="record.taskType != 'HTTP'"
|
|
|
- type="dashed"
|
|
|
- :size="size"
|
|
|
+ v-if="record.taskType != 'HTTP'" type="dashed" :size="size"
|
|
|
@click="manualExecutionProcess(record.id)"
|
|
|
>
|
|
|
执行
|
|
|
@@ -554,12 +723,7 @@
|
|
|
<Loading v-if="loading" />
|
|
|
</div>
|
|
|
|
|
|
- <a-drawer
|
|
|
- v-model:open="isShowCorn"
|
|
|
- title="常用corn表达式"
|
|
|
- width="460px"
|
|
|
- placement="right"
|
|
|
- >
|
|
|
+ <a-drawer v-model:open="isShowCorn" title="常用corn表达式" width="460px" placement="right">
|
|
|
<p>常用corn表达式:</p>
|
|
|
<p>每隔 5 秒执行一次:*/5 * * * * ? </p>
|
|
|
<p>每隔 1 分钟执行一次:0 */1 * * * ? </p>
|
|
|
@@ -833,7 +997,7 @@ export default {
|
|
|
|
|
|
// 流程编号改变获取流程参数
|
|
|
processNoChang: function (value) {
|
|
|
- if(value == null){
|
|
|
+ if (value == null) {
|
|
|
return;
|
|
|
}
|
|
|
const _self = this;
|
|
|
@@ -852,11 +1016,11 @@ export default {
|
|
|
if (data.data && data.data.globalProperty) {
|
|
|
let jsonStr = JSON.stringify(data.data);
|
|
|
let datas = JSON.parse(jsonStr);
|
|
|
- let globalProperty = JSON.parse(datas.globalProperty);
|
|
|
+ let globalProperty = JSON.parse(datas.globalProperty);
|
|
|
_self.processDatas = [];
|
|
|
- if(globalProperty.variables && globalProperty.variables.length>0){
|
|
|
- for(let i = 0, size = globalProperty.variables.length; i < size; i ++){
|
|
|
- if(globalProperty.variables[i].inOutType === 'param'){
|
|
|
+ if (globalProperty.variables && globalProperty.variables.length > 0) {
|
|
|
+ for (let i = 0, size = globalProperty.variables.length; i < size; i++) {
|
|
|
+ if (globalProperty.variables[i].inOutType === 'param') {
|
|
|
_self.processDatas.push(globalProperty.variables[i]);
|
|
|
}
|
|
|
}
|
|
|
@@ -1330,8 +1494,8 @@ export default {
|
|
|
response.errorMessage = '请填写流程报表名称';
|
|
|
return response;
|
|
|
}
|
|
|
- } else if (_self.taskDefineDto.selectedTaskType.value == '流程'){
|
|
|
- if (!_self.taskDefineDto.processNo){
|
|
|
+ } else if (_self.taskDefineDto.selectedTaskType.value == '流程') {
|
|
|
+ if (!_self.taskDefineDto.processNo) {
|
|
|
response.errorCode = 8;
|
|
|
response.errorMessage = '请选择流程编号';
|
|
|
return response;
|
|
|
@@ -1484,7 +1648,7 @@ export default {
|
|
|
},
|
|
|
);
|
|
|
},
|
|
|
- filterOption:function (input, option) {
|
|
|
+ filterOption: function (input, option) {
|
|
|
return option.label.toLowerCase().indexOf(input.toLowerCase()) >= 0;
|
|
|
},
|
|
|
// 深拷贝
|
|
|
@@ -1511,7 +1675,22 @@ export default {
|
|
|
width: 1150px !important;
|
|
|
min-width: 1150px !important;
|
|
|
}
|
|
|
+
|
|
|
#create {
|
|
|
width: 65%;
|
|
|
}
|
|
|
+:deep(.ant-drawer-body) {
|
|
|
+ padding: 0px !important;
|
|
|
+}
|
|
|
+:deep(.ant-card-body) {
|
|
|
+ padding: 10px 20px 10px 10px !important;
|
|
|
+}
|
|
|
+:deep(.ant-form-item) {
|
|
|
+ margin-bottom: 10px !important;
|
|
|
+}
|
|
|
+
|
|
|
+:deep(.ant-form-item-label > label) {
|
|
|
+ font-size: 14px !important;
|
|
|
+ font-weight: 500 !important;
|
|
|
+}
|
|
|
</style>
|