Merge remote-tracking branch 'origin/master'

master
chaiyapeng 2024-09-05 10:36:22 +08:00
commit 5930d34c6b
6 changed files with 196 additions and 72 deletions

View File

@ -36,12 +36,12 @@ export function deleteByTaskId(id) {
} }
//获得所有数据结构信息 //获得所有数据结构信息
export function tableInfoList() { // export function tableInfoList() {
return request({ // return request({
url: "/task/tableInfo/list", // url: "/task/tableInfo/list",
method: "GET", // method: "GET",
}) // })
} // }
//获得所有数据结构信息 //获得所有数据结构信息
export function findByTableId(id) { export function findByTableId(id) {
@ -80,12 +80,31 @@ export function findByNodeId(nodeId) {
//联查记录添加 //联查记录添加
export function addTaskJoin(data) { export function addTaskJoin(data) {
return request({ return request({
url: "/task/taskJoin/addTaskJoin/", url: "/task/taskJoin/addTaskJoin",
method: "POST", method: "POST",
data:data data:data
}) })
} }
//添加数据输出节点
export function addTaskOutPut(data) {
return request({
url: "/task/taskOutPut/addTaskOutPut",
method: "POST",
data:data
})
}
//执行任务
export function executeTask(id) {
return request({
url: "/task/executeTask/"+id,
method: "POST"
})
}

View File

@ -30,6 +30,7 @@
<div slot="footer" class="dialog-footer"> <div slot="footer" class="dialog-footer">
<el-button @click="taskInputAdd = false"> </el-button> <el-button @click="taskInputAdd = false"> </el-button>
<el-button type="primary" @click="addTaskInput()"></el-button> <el-button type="primary" @click="addTaskInput()"></el-button>
<el-button @click="nb()"></el-button>
</div> </div>
</span> </span>
@ -123,6 +124,7 @@
<div slot="footer" class="dialog-footer"> <div slot="footer" class="dialog-footer">
<el-button @click="cancelColumn()"></el-button> <el-button @click="cancelColumn()"></el-button>
<el-button type="primary" @click="columnAddGood()"> </el-button> <el-button type="primary" @click="columnAddGood()"> </el-button>
<el-button @click="nb()"></el-button>
</div> </div>
</span> </span>
</div> </div>
@ -137,7 +139,7 @@ import { selectEngineList } from '@/api/engine/engine'
export default { export default {
//import使" //import使"
components: {}, components: {},
props:['graph','nodeId','taskInputForm','tableInfo','nodeName'], props:['graph','nodeId','taskInputForm','tableInfo','nodeName','columnList'],
data() { data() {
//" //"
@ -156,6 +158,7 @@ export default {
joinSelect:{}, joinSelect:{},
taskAddReq:{}, taskAddReq:{},
taskInputReq:{}, taskInputReq:{},
nbList:[],
engineReq:{ engineReq:{
pageNum: 1, pageNum: 1,
pageSize: 100 pageSize: 100
@ -165,6 +168,7 @@ export default {
value:[], value:[],
engineList:[], engineList:[],
columnList:[],
// //
data:[], data:[],
@ -174,8 +178,6 @@ export default {
}, },
tableList:[], tableList:[],
columnList:[],
structureList:[],
itemId:0, itemId:0,
}; };
@ -217,9 +219,9 @@ export default {
"tableAsField":this.tableInfo.tableAsField.substring(1), "tableAsField":this.tableInfo.tableAsField.substring(1),
"fieldAsEngineId":this.tableInfo.fieldAsEngineId "fieldAsEngineId":this.tableInfo.fieldAsEngineId
}).then(res=>{ }).then(res=>{
alert(res.msg); alert(res.msg);
}) })
//
}, },
// //
@ -235,8 +237,10 @@ export default {
val = this.tableInfo.columnList; val = this.tableInfo.columnList;
return; return;
} }
this.columnList = val;
this.tableInfo.tableField = ""; this.tableInfo.tableField = "";
this.tableInfo.tableAsField = ""; this.tableInfo.tableAsField = "";
val.forEach(item=>{ val.forEach(item=>{
this.tableInfo.tableField +=','+ item.columnName; this.tableInfo.tableField +=','+ item.columnName;
this.tableInfo.tableAsField +=','+ item.tableAsField; this.tableInfo.tableAsField +=','+ item.tableAsField;
@ -248,12 +252,16 @@ export default {
// //
handleNodeClick(data) { handleNodeClick(data) {
this.tableInfo = data; this.tableInfo = data;
findStructureByTableId(data.id).then((res)=>{ console.log(data)
this.tableInfo.structureList = [];
findStructureByTableId(data.id).then(res=>{
this.tableInfo.structureList=res.data; this.tableInfo.structureList=res.data;
}) })
this.tableInfo.taskId = this.$route.params.id; this.tableInfo.taskId = this.$route.params.id;
const cellById = this.graph.getCellById(this.nodeId) },
cellById.setData(this.tableInfo);
nb(){
console.log(this.tableInfo.structureList)
}, },
// //

View File

@ -2,13 +2,60 @@
<div> <div>
<!-- 数据输出表单--> <!-- 数据输出表单-->
<span v-if="taskDataOutPut"> <span v-if="taskDataOutPut">
<el-select v-model="tableInfo.tableName" placeholder="请选择数据库"> <el-button @click="nb"></el-button><br>
<el-option style="height: 100%" :value="tableInfo.tableName">
<span v-for="(outPut,index) in dataOutPut.tableField.split(',')">
<el-checkbox :label=outPut :value=outPut v-model="twoInputList"> {{ outPut }} {{dataOutPut.tableField.split(',')[index]}}</el-checkbox><br>
</span>
<el-select v-model="dataOutPut.tableName" placeholder="请选择数据库">
<el-aside width="100%"> <el-aside width="100%">
<el-option style="height: 100%" :value="dataOutPut.tableName">
<el-tree :data="data" :props="defaultProps" @node-click="handleNodeClick"></el-tree> <el-tree :data="data" :props="defaultProps" @node-click="handleNodeClick"></el-tree>
</el-aside>
</el-option> </el-option>
</el-aside>
</el-select> </el-select>
<div slot="footer" class="dialog-footer">
<el-button @click="taskDataOutPut = false">取消</el-button>
<el-button type="primary" @click="toSelectField()"> </el-button>
</div>
</span>
<!-- 选择目标字段-->
<span v-if="selectField">
<span v-for="(two,index) in twoInputList">
{{two}}
<el-select v-model="target[index]" placeholder="请选择">
<el-option v-for="item in columnList" :label="item.columnName" :value="item.columnName"></el-option>
</el-select>
<br>
</span>
<!-- <el-table-->
<!-- :data="twoInputList" style="width: 100%" max-height="250">-->
<!-- <el-table-column label="输入字段" width="100">-->
<!-- <template slot-scope="scope">-->
<!-- <span style="margin-left: 10px">{{ scope.row}}</span>-->
<!-- </template>-->
<!-- </el-table-column>-->
<!-- <el-table-column label="目标字段" width="100">-->
<!-- </el-table-column>-->
<!-- </el-table>-->
<div slot="footer" class="dialog-footer">
<el-button @click="back()"></el-button>
<el-button type="primary" @click="addOutput()"> </el-button>
</div>
</span> </span>
</div> </div>
</template> </template>
@ -16,10 +63,15 @@
<script> <script>
//jsjsjson, //jsjsjson,
//import from ', //import from ',
import { findStructureByTableId, findTableInfoList } from '@/api/etl/switch'
import { addTaskOutPut, findByNodeId } from '@/api/task/task'
import item from '@/layout/components/Sidebar/Item.vue'
import fa from 'element-ui/src/locale/lang/fa'
export default { export default {
//import使" //import使"
components: {}, components: {},
props:['graph','nodeId','nodeName','taskId','taskDataOutPut'], props:['graph','nodeId','nodeName','taskId','taskDataOutPut','columnList','neighbors'],
data() { data() {
//" //"
@ -27,28 +79,103 @@ export default {
// //
data:[], data:[],
selectField:false,
defaultProps:{ defaultProps:{
children:"children", children:"children",
label:'tableName' label:'tableName'
}, },
dataOutPut:{},
oneInputList:{},
tableAsField:'',
tableField:'',
basicId:'',
tableId:'',
twoInputList:[],
target:[],
columnList:[],
oneNode:{},
twoNode:{},
}; };
}, },
// data", // data",
computed: {}, computed: {
fa() {
return fa
}
},
//data", //data",
watch: {}, watch: {},
//", //",
methods: { methods: {
// //
handleSelectionChange(val) { addOutput(){
addTaskOutPut({
"taskId":this.taskId,
"newFileName":this.target.toString(),
"lastFileName":this.twoInputList.toString(),
"tableId":this.tableId,
"basicId":this.basicId,
}).then(res=>{
alert(res.msg)
});
},
//
toSelectField(){
this.taskDataOutPut = false;
this.selectField = true;
},
nb(){
this.findTAbleInfoList();
},
//
findTAbleInfoList(){
findTableInfoList().then(res=>{
this.data=res.data;
})
this.tableAsField="";
findByNodeId(this.neighbors[0]).then(res=>{
this.oneNode = res.data;
console.log(this.oneNode)
})
findByNodeId(this.neighbors[1]).then(res=>{
this.twoNode = res.data;
console.log(this.twoNode)
})
this.dataOutPut.tableField = this.oneNode.tableField + ',' + this.twoNode.tableField
this.dataOutPut.tableAsField = this.oneNode.tableAsField + ',' + this.twoNode.tableAsField
},
//
back(){
this.taskDataOutPut = true;
this.selectField = false;
},
//
handleNodeClick(data) {
this.tableId = data.id
this.basicId = data.basicId
findStructureByTableId(data.id).then((res)=>{
this.columnList=res.data;
})
}, },
}, },
// - 访this", // - 访this",
created() { created() {
this.findAllTable(); this.findTAbleInfoList();
}, },
// - 访DOM", // - 访DOM",
mounted() { mounted() {

View File

@ -5,9 +5,9 @@
<el-form label-width="80px" :model="formJoin" ref="queryForm" :inline="true" class="demo-form-inline" size="small"> <el-form label-width="80px" :model="formJoin" ref="queryForm" :inline="true" class="demo-form-inline" size="small">
<el-form-item label="联查方式"> <el-form-item label="联查方式">
<el-select v-model="formJoin.joinType" placeholder="请选择"> <el-select v-model="formJoin.joinType" placeholder="请选择">
<el-option style="height: 100%" label="左联查" value="1"/> <el-option style="height: 100%" label="左联查" value="left join"/>
<el-option style="height: 100%" label="右联查" value="2"/> <el-option style="height: 100%" label="右联查" value="right join"/>
<el-option style="height: 100%" label="内联查" value="3"/> <el-option style="height: 100%" label="内联查" value="inner join"/>
</el-select> </el-select>
</el-form-item> </el-form-item>
<br> <br>
@ -63,6 +63,8 @@ export default {
return { return {
taskInputJoin: true, taskInputJoin: true,
formJoin: {}, formJoin: {},
leftId:null,
rightId:null,
oneFieldList:'', oneFieldList:'',
twoFieldList:'', twoFieldList:'',
}; };
@ -82,24 +84,27 @@ export default {
"nodeId":this.nodeId, "nodeId":this.nodeId,
"nodeName":this.nodeName, "nodeName":this.nodeName,
"taskId":this.taskId, "taskId":this.taskId,
"leftId":this.leftId,
"joinType":this.formJoin.joinType, "joinType":this.formJoin.joinType,
"rightId":this.rightId,
"leftJoinField":this.formJoin.leftJoinField, "leftJoinField":this.formJoin.leftJoinField,
"rightJoinField":this.formJoin.rightJoinField "rightJoinField":this.formJoin.rightJoinField
} }
).then(res=>{ ).then(res=>{
alert(res.msg);
}) })
}, },
//线 //线
findAllTable(){ findAllTable(){
alert(this.neighbors)
findByNodeId(this.neighbors[0]).then(res=>{ findByNodeId(this.neighbors[0]).then(res=>{
this.oneFieldList = res.data.tableAsField; this.oneFieldList = res.data.tableAsField;
this.leftId = res.data.id;
console.log(this.oneFieldList) console.log(this.oneFieldList)
}) })
findByNodeId(this.neighbors[1]).then(res=>{ findByNodeId(this.neighbors[1]).then(res=>{
this.twoFieldList = res.data.tableAsField; this.twoFieldList = res.data.tableAsField;
this.rightId = res.data.id;
console.log(this.twoFieldList) console.log(this.twoFieldList)
}) })
}, },

View File

@ -33,7 +33,8 @@
<!-- 数据输出弹窗--> <!-- 数据输出弹窗-->
<el-dialog title="数据输出" :visible.sync="taskDataOutPut" width="70%"> <el-dialog title="数据输出" :visible.sync="taskDataOutPut" width="70%">
<dataOutInput v-if="formOut" taskDataOutPut:taskDataOutPut></dataOutInput> <dataOutInput v-if="formOut" :taskDataOutPut="taskDataOutPut" :neighbors="neighbors"
:taskId="taskId"></dataOutInput>
</el-dialog> </el-dialog>
@ -67,6 +68,7 @@ export default {
taskInputFieldAdd:false, taskInputFieldAdd:false,
//id //id
neighbors:[], neighbors:[],
columnList:[],
// //
tableInfo:{}, tableInfo:{},
// //

View File

@ -41,39 +41,12 @@
</el-button> </el-button>
</el-col> </el-col>
<!-- <el-dialog title="添加数据源接入" :visible.sync="dialogFormVisible">-->
<!-- <el-form :model="sourceAddReq">-->
<!-- <el-form-item label="id">-->
<!-- <el-input v-model="sourceAddReq.id"></el-input>-->
<!-- </el-form-item>-->
<!-- <el-form-item label="任务名称">-->
<!-- <el-input v-model="sourceAddReq.name"></el-input>-->
<!-- </el-form-item>-->
<!-- <el-form-item label="任务执行状态">-->
<!-- <el-input v-model="sourceAddReq.weigh"></el-input>-->
<!-- </el-form-item>-->
<!-- <el-form-item label="任务完成度">-->
<!-- <el-input v-model="sourceAddReq.status"></el-input>-->
<!-- </el-form-item>-->
<!-- </el-form>-->
<!-- </el-dialog>-->
<el-table <el-table
:data="taskList" :data="taskList"
style="width: 100%" style="width: 100%"
@selection-change="handleSelectionChange"> @selection-change="handleSelectionChange">
<el-table-column <el-table-column
type="selection" type="selection"
width="55"> width="55">
@ -356,15 +329,10 @@
<script> <script>
//jsjsjson, //jsjsjson,
//import from ', //import from ',
import {selectSourceList} from "@/api/etl/switch";
import {selectSourceExport} from "@/api/etl/switch";
import {connectionTest} from "@/api/etl/switch";
import {insertAdd} from "@/api/etl/switch";
import {getInfo} from "@/api/etl/switch";
import { import {
addTask, addTask,
deleteByTaskId, findByTableId, findStructureList, deleteByTaskId, executeTask, findByTableId, findStructureList,
selectTaskList, tableInfoList selectTaskList
} from '@/api/task/task' } from '@/api/task/task'
export default { export default {
@ -417,17 +385,12 @@ export default {
}, },
//
tableInfoList(){
tableInfoList().then(res=>{
this.tableList = res.data;
});
},
executeTask(row){
executeTask(){
this.taskInputAdd = true; this.taskInputAdd = true;
this.tableInfoList(); executeTask(row.id).then(res=>{
});
}, },