优化任务设计流程

master
面包骑士 2024-09-03 20:53:19 +08:00
parent f53f9db031
commit aed1fec159
6 changed files with 61 additions and 59 deletions

View File

@ -7,13 +7,36 @@
<el-button <el-button
style="width: 75%;margin-left: 0;margin-bottom: 5px;" style="width: 75%;margin-left: 0;margin-bottom: 5px;"
@click="returnBack">返回</el-button> @click="returnBack">返回</el-button>
<hr> <div>
<div v-for="item in nodeTypeList" :key="item.type" class="node" draggable="true" @dragstart="drag($event, item)"> <el-divider content-position="left">基础</el-divider>
<div v-for="item in nodeTypeList.filter(node => node.partition === 'basis')" :key="item.type" class="node" draggable="true" @dragstart="drag($event, item)">
<div class="log"> <div class="log">
<img :src="item.logImg" alt=""> <img :src="item.logImg" alt="">
</div> </div>
<div class="name">{{item.typeName}}</div> <div class="name">{{item.typeName}}</div>
</div> </div>
<el-divider content-position="left">数据输入</el-divider>
<div v-for="item in nodeTypeList.filter(node => node.partition === 'req')" :key="item.type" class="node" draggable="true" @dragstart="drag($event, item)">
<div class="log">
<img :src="item.logImg" alt="">
</div>
<div class="name">{{item.typeName}}</div>
</div>
<el-divider content-position="left">数据处理</el-divider>
<div v-for="item in nodeTypeList.filter(node => node.partition === 'operation')" :key="item.type" class="node" draggable="true" @dragstart="drag($event, item)">
<div class="log">
<img :src="item.logImg" alt="">
</div>
<div class="name">{{item.typeName}}</div>
</div>
<el-divider content-position="left">数据输出</el-divider>
<div v-for="item in nodeTypeList.filter(node => node.partition === 'resp')" :key="item.type" class="node" draggable="true" @dragstart="drag($event, item)">
<div class="log">
<img :src="item.logImg" alt="">
</div>
<div class="name">{{item.typeName}}</div>
</div>
</div>
</div> </div>
<div id="flowWrap" ref="flowWrap" class="flow-wrap" @drop="drop($event)" @dragover="allowDrop($event)" <div id="flowWrap" ref="flowWrap" class="flow-wrap" @drop="drop($event)" @dragover="allowDrop($event)"
style="width: 98%;height: 790px;margin-left: 10px;margin-right: 10px;"> style="width: 98%;height: 790px;margin-left: 10px;margin-right: 10px;">

View File

@ -165,6 +165,11 @@ export default {
}, },
// - // -
findDisposition() { findDisposition() {
let type = this.node.type
if (type === 'start' || type === 'end'){
this.toUpdName()
return
}
// //
this.disp.nodeCode = this.node.id this.disp.nodeCode = this.node.id
this.disp.findFlag = true this.disp.findFlag = true

View File

@ -1,7 +1,7 @@
<template> <template>
<!-- 节点配置--> <!-- 节点配置-->
<div align="center"> <div align="center">
<el-drawer :visible.sync="disp.findFlag" direction="rtl" title="配置信息" append-to-body size="60%"> <el-dialog :visible.sync="disp.findFlag" direction="rtl" title="配置信息" append-to-body width="60%">
<div style="padding-left: 20px;padding-right: 20px;"> <div style="padding-left: 20px;padding-right: 20px;">
<span v-if="node.type === 'table'"> <span v-if="node.type === 'table'">
@ -13,10 +13,8 @@
<span v-else-if="node.type === 'unite'"> <span v-else-if="node.type === 'unite'">
<UniteFind :disp="disp" :data="data" :node="node" /> <UniteFind :disp="disp" :data="data" :node="node" />
</span> </span>
</div> </div>
</el-drawer> </el-dialog>
</div> </div>
</template> </template>

View File

@ -1,24 +1,18 @@
<template> <template>
<div> <div>
<div> <el-form label-position="right" label-width="60px">
<span v-if="formDb"> <el-form-item label="输入表">
输入表信息: <br><br>
<span v-for="db in formDb"> <span v-for="db in formDb">
<el-tag type="primary" v-if="db.dbTable">{{ db.dbTable }}</el-tag><br><br> <el-input v-model="db.dbTable" placeholder="无输入表" style="width: 60%;" disabled />
</span> </span>
</span> </el-form-item>
<span v-else></span> <el-form-item label="输出表">
<br><br> <el-input v-model="toDb.dbTable" placeholder="无输出表" style="width: 60%;" disabled />
<span v-if="toDb && toDb.dbTable"> </el-form-item>
输出表信息: <br><br> </el-form>
<el-tag type="primary" v-if="toDb.dbTable">{{ toDb.dbTable }}</el-tag> <div>
<el-button type="text" @click="checkFields"></el-button> <el-button icon="el-icon-refresh-right" type="text" @click="init"></el-button>
</span> <el-button icon="el-icon-setting" type="text" @click="checkFields"></el-button>
<span v-else>
无输出表:
<el-button type="text" @click="checkFields"></el-button>
</span>
<br><br>
</div> </div>
<div align="center"> <div align="center">
<el-table ref="table" :data="formFields" height="450px"> <el-table ref="table" :data="formFields" height="450px">
@ -38,7 +32,7 @@
<el-button type="primary" @click="disp.findFlag = false">确认</el-button> <el-button type="primary" @click="disp.findFlag = false">确认</el-button>
</div> </div>
<el-dialog title="选择输出表" :visible.sync="checkFieldsFlag" width="60%"> <el-dialog title="选择输出表" :visible.sync="checkFieldsFlag" width="60%" :modal="false">
<div style="padding-left: 10px;padding-right: 10px;"> <div style="padding-left: 10px;padding-right: 10px;">
<el-form ref="queryForm" :inline="true" :model="queryParams" size="small"> <el-form ref="queryForm" :inline="true" :model="queryParams" size="small">
<el-form-item label="数据库名称" prop="dbName"> <el-form-item label="数据库名称" prop="dbName">
@ -88,7 +82,7 @@
</div> </div>
</div> </div>
</el-dialog> </el-dialog>
<el-dialog title="选择字段" :visible.sync="checkFieldsMapFlag" width="60%"> <el-dialog title="选择字段" :visible.sync="checkFieldsMapFlag" width="60%" :modal="false">
<div style="padding-left: 10px;padding-right: 10px;"> <div style="padding-left: 10px;padding-right: 10px;">
<el-table ref="table" :data="formFields" height="500px"> <el-table ref="table" :data="formFields" height="500px">
<el-table-column :show-overflow-tooltip="true" label="字段名称" prop="fieldName" /> <el-table-column :show-overflow-tooltip="true" label="字段名称" prop="fieldName" />
@ -166,6 +160,9 @@ export default {
methods: { methods: {
// //
init() { init() {
this.formDb = []
this.toDb = {}
this.formFields = []
// //
/** 1.查询该节点的上一级节点*/ /** 1.查询该节点的上一级节点*/
this.data.lineList.forEach(line => { this.data.lineList.forEach(line => {

View File

@ -23,11 +23,11 @@
<el-button @click="disp.findFlag = false">确认</el-button> <el-button @click="disp.findFlag = false">确认</el-button>
<el-button type="primary" @click="toTableUpdFlag"></el-button> <el-button type="primary" @click="toTableUpdFlag"></el-button>
</div> </div>
<el-dialog title="修改配置" :visible.sync="tableUpdFlag" width="80%"> <el-dialog title="修改配置" :visible.sync="tableUpdFlag" width="80%" :modal="false">
<div> <div>
<el-form v-model="checkTable"> <el-form v-model="checkTable">
<el-form-item label="数据源" prop="dbTable"> <el-form-item label="数据源" prop="dbTable">
<el-cascader :options="treeList" :props="props" @change="checkDbTable"> <el-cascader :options="treeList" :props="props" @change="checkDbTable" style="width: 60%;">
<template slot-scope="{ node, data }"> <template slot-scope="{ node, data }">
<span v-if="data.tableRemark">{{ data.tableName + '[' + data.tableRemark + ']' }}</span> <span v-if="data.tableRemark">{{ data.tableName + '[' + data.tableRemark + ']' }}</span>
<span v-else>{{ data.tableName }}</span> <span v-else>{{ data.tableName }}</span>
@ -35,7 +35,7 @@
</template> </template>
</el-cascader> </el-cascader>
</el-form-item> </el-form-item>
<el-form-item label="字段" prop="fields"> <el-form-item prop="fields">
<el-table ref="table" :data="fieldsOptions" height="300px" <el-table ref="table" :data="fieldsOptions" height="300px"
@row-click="clickRow" @selection-change="handleSelectionChange"> @row-click="clickRow" @selection-change="handleSelectionChange">
<el-table-column type="selection" width="55" /> <el-table-column type="selection" width="55" />
@ -88,8 +88,6 @@ export default {
tableUpdFlag: false, tableUpdFlag: false,
// + // +
treeList: [], treeList: [],
//
sourceList: [],
// //
props: { props: {
value: 'tableName', value: 'tableName',

View File

@ -3,43 +3,22 @@ const nodeTypeList = [
type: 'start', type: 'start',
typeName: '开始', typeName: '开始',
nodeName: '开始', nodeName: '开始',
partition: 'basis',
logImg: require('@/assets/svg/1开始.svg'), logImg: require('@/assets/svg/1开始.svg'),
log_bg_color: 'rgba(0, 128, 0, 0.2)' log_bg_color: 'rgba(0, 128, 0, 0.2)'
},{ },{
type: 'end', type: 'end',
typeName: '结束', typeName: '结束',
nodeName: '结束', nodeName: '结束',
partition: 'basis',
logImg: require('@/assets/svg/2结束.svg'), logImg: require('@/assets/svg/2结束.svg'),
log_bg_color: 'rgba(255, 0, 0, 0.2)' log_bg_color: 'rgba(255, 0, 0, 0.2)'
},{
type: 'dataSet',
typeName: '文件',
nodeName: '文件',
logImg: require('@/assets/svg/5文件数据.svg'),
log_bg_color: 'rgba(0, 128, 0, 0.2)'
},{
type: 'encode',
typeName: '加密',
nodeName: '加密',
logImg: require('@/assets/svg/6数据校验.svg'),
log_bg_color: 'rgba(163, 117, 233, 0.2)'
},{
type: 'personService',
typeName: '个人服务',
nodeName: '个人服务',
logImg: require('@/assets/svg/8个人服务.svg'),
log_bg_color: 'rgba(132, 166, 251, 0.2)'
},{
type: 'arrange',
typeName: '清洗',
nodeName: '清洗',
logImg: require('@/assets/svg/15清洗.svg'),
log_bg_color: 'rgba(250, 205, 81, 0.2)'
}, },
{ {
type: 'table', type: 'table',
typeName: '表结构', typeName: '表结构',
nodeName: '表结构', nodeName: '表结构',
partition: 'req',
logImg: require('@/assets/svg/5文件数据.svg'), logImg: require('@/assets/svg/5文件数据.svg'),
log_bg_color: 'rgba(0, 128, 0, 0.2)' log_bg_color: 'rgba(0, 128, 0, 0.2)'
}, },
@ -47,6 +26,7 @@ const nodeTypeList = [
type: 'unite', type: 'unite',
typeName: '联合查询', typeName: '联合查询',
nodeName: '联合查询', nodeName: '联合查询',
partition: 'operation',
logImg: require('@/assets/svg/侧边栏测试任务.svg'), logImg: require('@/assets/svg/侧边栏测试任务.svg'),
log_bg_color: 'rgba(0, 128, 0, 0.2)' log_bg_color: 'rgba(0, 128, 0, 0.2)'
}, },
@ -54,6 +34,7 @@ const nodeTypeList = [
type: 'exportation', type: 'exportation',
typeName: '数据输出', typeName: '数据输出',
nodeName: '数据输出', nodeName: '数据输出',
partition: 'resp',
logImg: require('@/assets/svg/19导出.svg'), logImg: require('@/assets/svg/19导出.svg'),
log_bg_color: 'rgba(0, 128, 0, 0.2)' log_bg_color: 'rgba(0, 128, 0, 0.2)'
} }