任务管理研发

This commit is contained in:
守護
2024-04-27 21:58:49 +08:00
parent 8d0b99a717
commit 5ff6fbce12
4 changed files with 77 additions and 36 deletions

View File

@@ -360,7 +360,7 @@ export default {
}, },
handleDelete: function (index, row) { handleDelete: function (index, row) {
this.$confirm( this.$confirm(
"此操作将此任务ID=" + row.id + "删除么, 是否继续?", "是否确定删除任务【"+row.name+"?",
"提示", "提示",
{ {
confirmButtonText: "确定", confirmButtonText: "确定",

View File

@@ -87,7 +87,7 @@
placeholder="请选择"> placeholder="请选择">
<el-option v-for="(item,index) in connectionNameList" <el-option v-for="(item,index) in connectionNameList"
:key="index" :key="index"
:label="`[${item.id}]${item.name}`" :label="`[${item.id}] ${item.name}`"
:value="item.id"></el-option> :value="item.id"></el-option>
</el-select> </el-select>
</el-form-item> </el-form-item>
@@ -1150,7 +1150,7 @@ export default {
} }
.tips-style { .tips-style {
font-size: 10px; font-size: 12px;
color: #a0a6b8; color: #a0a6b8;
} }

View File

@@ -9,17 +9,17 @@
border> border>
<el-descriptions-item label="任务名称">{{updateform.name}}</el-descriptions-item> <el-descriptions-item label="任务名称">{{updateform.name}}</el-descriptions-item>
<el-descriptions-item label="任务描述">{{updateform.description}}</el-descriptions-item> <el-descriptions-item label="任务描述">{{updateform.description}}</el-descriptions-item>
<el-descriptions-item label="调度方式"> <el-descriptions-item label="集成模式">
<span v-if="updateform.scheduleMode == 'MANUAL'"> <span v-if="updateform.scheduleMode == 'MANUAL'">
手动执行 手动
</span> </span>
<span v-if="updateform.scheduleMode == 'SYSTEM_SCHEDULED'"> <span v-if="updateform.scheduleMode == 'SYSTEM_SCHEDULED'">
系统调度 定时
</span> </span>
</el-descriptions-item> </el-descriptions-item>
<el-descriptions-item v-if="updateform.scheduleMode == 'SYSTEM_SCHEDULED'" <el-descriptions-item v-if="updateform.scheduleMode == 'SYSTEM_SCHEDULED'"
label="CRON表达式">{{updateform.cronExpression}}</el-descriptions-item> label="CRON表达式">{{updateform.cronExpression}}</el-descriptions-item>
<el-descriptions-item label="源端数据源">[{{updateform.sourceConnectionId}}]{{updateform.sourceConnectionName}}</el-descriptions-item> <el-descriptions-item label="源端数据源">[{{updateform.sourceConnectionId}}] {{updateform.sourceConnectionName}}</el-descriptions-item>
<el-descriptions-item label="源端schema">{{updateform.sourceSchema}}</el-descriptions-item> <el-descriptions-item label="源端schema">{{updateform.sourceSchema}}</el-descriptions-item>
<el-descriptions-item label="源端表类型">{{updateform.tableType}}</el-descriptions-item> <el-descriptions-item label="源端表类型">{{updateform.tableType}}</el-descriptions-item>
<el-descriptions-item label="源端表选择方式"> <el-descriptions-item label="源端表选择方式">
@@ -35,7 +35,7 @@
<p v-for="item in updateform.sourceTables" <p v-for="item in updateform.sourceTables"
v-bind:key="item">{{item}}</p> v-bind:key="item">{{item}}</p>
</el-descriptions-item> </el-descriptions-item>
<el-descriptions-item label="目地端数据源">[{{updateform.targetConnectionId}}]{{updateform.targetConnectionName}}</el-descriptions-item> <el-descriptions-item label="目地端数据源">[{{updateform.targetConnectionId}}] {{updateform.targetConnectionName}}</el-descriptions-item>
<el-descriptions-item label="目地端schema">{{updateform.targetSchema}}</el-descriptions-item> <el-descriptions-item label="目地端schema">{{updateform.targetSchema}}</el-descriptions-item>
<el-descriptions-item label="自动同步模式"> <el-descriptions-item label="自动同步模式">
<span v-if="updateform.autoSyncMode == 2"> <span v-if="updateform.autoSyncMode == 2">
@@ -126,7 +126,8 @@
<el-button type="primary" <el-button type="primary"
size="mini" size="mini"
icon="el-icon-arrow-left" icon="el-icon-arrow-left"
@click="handleGoBack"> @click="handleGoBack"
style="margin: 12px 0px 20px;float: right">
返回 返回
</el-button> </el-button>
</el-card> </el-card>

View File

@@ -14,46 +14,52 @@
:rules="rules" :rules="rules"
ref="updateform"> ref="updateform">
<div v-show="active == 1"> <div v-show="active == 1" class="common-top">
<el-form-item label="名称" <el-form-item label="任务名称"
label-width="240px" label-width="100px"
:required=true :required=true
prop="name" prop="name"
style="width:65%"> style="width:65%">
<el-input v-model="updateform.name" <el-input v-model="updateform.name"
auto-complete="off"></el-input> auto-complete="off"
style="width:50%"></el-input>
<label
class="tips-style block">请输入任务名称只能以字母数字为开头包含字母数字和._-3-100个字符</label>
</el-form-item> </el-form-item>
<el-form-item label="描述" <el-form-item label="描述"
label-width="240px" label-width="100px"
prop="description" prop="description"
style="width:65%"> style="width:65%">
<el-input v-model="updateform.description" <el-input v-model="updateform.description"
type="textarea" type="textarea"
:rows="3" :rows="3"
auto-complete="off"></el-input> auto-complete="off"
placeholder="请输入任务描述"
style="width:50%"></el-input>
</el-form-item> </el-form-item>
<el-form-item label="调度方式" <el-form-item label="集成模式"
label-width="240px" label-width="100px"
:required=true :required=true
prop="scheduleMode" prop="scheduleMode"
style="width:65%"> style="width:65%">
<el-select v-model="updateform.scheduleMode"> <!-- <el-select v-model="updateform.scheduleMode">-->
<el-option label="手动调度" <!-- <el-option label="手动调度"-->
value="MANUAL"></el-option> <!-- value="MANUAL"></el-option>-->
<el-option label="系统调度" <!-- <el-option label="系统调度"-->
value="SYSTEM_SCHEDULED"></el-option> <!-- value="SYSTEM_SCHEDULED"></el-option>-->
</el-select> <!-- </el-select>-->
<el-input v-model="updateform.scheduleMode" v-if="false"></el-input>
<el-radio-group v-model="updateform.scheduleModeTemp" size="mini" @change="scheduleModeUpdate">
<el-radio-button value="MANUAL" label="手动调度"></el-radio-button>
<el-radio-button value="SYSTEM_SCHEDULED" label="系统调度"></el-radio-button>
</el-radio-group>
</el-form-item> </el-form-item>
<el-form-item label="Cron表达式" <el-form-item label="执行周期"
label-width="240px" label-width="100px"
style="width:65%" style="width:65%"
v-if="updateform.scheduleMode=='SYSTEM_SCHEDULED'"> v-if="updateform.scheduleMode=='SYSTEM_SCHEDULED'">
<el-tooltip placement="top">
<div slot="content">
执行周期为CRON表达式即可以选择以下内置的周期也可以自行输入或粘贴合法的CRON表达式(最小间隔时间为2分钟)
</div>
<i class="el-icon-question"></i>
</el-tooltip>
<el-select v-model="updateform.cronExpression" <el-select v-model="updateform.cronExpression"
filterable filterable
allow-create> allow-create>
@@ -72,9 +78,11 @@
<el-option label="每日0时执行1次" <el-option label="每日0时执行1次"
value="0 0 0 1/1 * ? *"></el-option> value="0 0 0 1/1 * ? *"></el-option>
</el-select> </el-select>
<label
class="tips-style block">执行周期为CRON表达式即可以选择以下内置的周期也可以自行输入或粘贴合法的CRON表达式(最小间隔时间为2分钟)</label>
</el-form-item> </el-form-item>
</div> </div>
<div v-show="active == 2"> <div v-show="active == 2" class="common-top">
<el-form-item label="源端数据源" <el-form-item label="源端数据源"
label-width="240px" label-width="240px"
:required=true :required=true
@@ -153,7 +161,7 @@
</el-select> </el-select>
</el-form-item> </el-form-item>
</div> </div>
<div v-show="active == 3"> <div v-show="active == 3" class="common-top">
<el-form-item label="目的端数据源" <el-form-item label="目的端数据源"
label-width="240px" label-width="240px"
:required=true :required=true
@@ -385,7 +393,7 @@
auto-complete="off"></el-input> auto-complete="off"></el-input>
</el-form-item> </el-form-item>
</div> </div>
<div v-show="active == 4"> <div v-show="active == 4" class="common-top">
<el-alert title="说明信息" <el-alert title="说明信息"
type="success"> type="success">
<p>(1) 当表名映射规则记录为空时代表目标表名与源表名的名称相同;</p> <p>(1) 当表名映射规则记录为空时代表目标表名与源表名的名称相同;</p>
@@ -467,7 +475,7 @@
</el-table-column> </el-table-column>
</el-table> </el-table>
</div> </div>
<div v-show="active == 5"> <div v-show="active == 5" class="common-top">
<el-descriptions size="small" <el-descriptions size="small"
:column="1" :column="1"
label-class-name="el-descriptions-item-label-class" label-class-name="el-descriptions-item-label-class"
@@ -676,6 +684,7 @@ export default {
name: "", name: "",
description: "", description: "",
scheduleMode: "MANUAL", scheduleMode: "MANUAL",
scheduleModeTemp: "手动调度",
cronExpression: "", cronExpression: "",
sourceConnectionId: '请选择', sourceConnectionId: '请选择',
sourceSchema: "", sourceSchema: "",
@@ -796,7 +805,7 @@ export default {
] ]
}, },
can_go_back: true, can_go_back: true,
active: 5, active: 1,
sourceConnection: {}, sourceConnection: {},
targetConnection: {}, targetConnection: {},
sourceConnectionSchemas: [], sourceConnectionSchemas: [],
@@ -811,6 +820,22 @@ export default {
} }
}, },
methods: { methods: {
initScheduleModeTemp(val){
if (val === 'SYSTEM_SCHEDULED'){
return "系统调度"
}
if (val === 'MANUAL'){
return "手动调度"
}
},
scheduleModeUpdate(val){
if (val === '系统调度'){
this.updateform.scheduleMode = "SYSTEM_SCHEDULED"
}
if (val === '手动调度'){
this.updateform.scheduleMode = "MANUAL"
}
},
handleClose (done) { handleClose (done) {
}, },
next () { next () {
@@ -866,6 +891,7 @@ export default {
name: detail.name, name: detail.name,
description: detail.description, description: detail.description,
scheduleMode: detail.scheduleMode, scheduleMode: detail.scheduleMode,
scheduleModeTemp: this.initScheduleModeTemp(detail.scheduleMode),
cronExpression: detail.cronExpression, cronExpression: detail.cronExpression,
sourceConnectionId: detail.configuration.sourceConnectionId, sourceConnectionId: detail.configuration.sourceConnectionId,
sourceConnectionName: detail.configuration.sourceConnectionName, sourceConnectionName: detail.configuration.sourceConnectionName,
@@ -1220,4 +1246,18 @@ export default {
min-width: 20px; min-width: 20px;
max-width: 60px; max-width: 60px;
} }
.tips-style {
font-size: 12px;
color: #a0a6b8;
}
.block{
padding-top: 6px;
display: block;
}
.common-top{
margin-top: 40px;
}
</style> </style>