Commit 45efa79b by 李耀琨

行转列 增加序列 设置字段值 增加常量

parent d327393f
<template>
<div class="getSystemInformation">
<el-dialog
title="增加常量"
:visible.sync="addConstantsDialog"
width="800px"
:before-close="handleCloseFun"
>
<el-form ref="form" :model="form" label-width="120px">
<el-form-item label="步骤名称:">
<el-input v-model="form.label"></el-input>
</el-form-item>
</el-form>
<el-form ref="form" :model="form" label-width="0px">
<el-button type="text" @click="addSheet(true)" style="margin: 10px"
>添加字段</el-button
>
<el-form-item>
<el-table :data="fields" style="width: 100%">
<el-table-column prop="name" label="名称"> </el-table-column>
<el-table-column prop="type" label="类型"> </el-table-column>
<el-table-column prop="format" label="格式"> </el-table-column>
<el-table-column prop="length" label="长度"> </el-table-column>
<el-table-column prop="precision" label="精确"> </el-table-column>
<el-table-column prop="currency" label="当前的"> </el-table-column>
<el-table-column prop="decimal" label="10进制的"> </el-table-column>
<el-table-column prop="group" label="组"> </el-table-column>
<el-table-column prop="nullif" label="值"> </el-table-column>
<el-table-column prop="set_empty_string" label="设为空串?">
<template slot-scope="scope">
{{ scope.row.set_empty_string == "Y" ? "是" : "否" }}
</template>
</el-table-column>
<el-table-column label="操作">
<template slot-scope="scope">
<el-button
@click="addSheet(false, scope.row)"
type="text"
size="small"
>编辑</el-button
>
<el-button
type="text"
size="small"
@click="deleteRow(scope.$index, fields)"
>删除</el-button
>
</template>
</el-table-column>
</el-table>
</el-form-item>
</el-form>
<span slot="footer" class="dialog-footer">
<el-button @click="handleCloseFun">取 消</el-button>
<el-button type="primary" @click="SystemInfoDialogFun">确 定</el-button>
</span>
</el-dialog>
<el-dialog
:title="dataStatus ? '新增' : '修改'"
:visible.sync="addField"
width="500px"
:before-close="handleClose"
:modal="false"
>
<el-form ref="form" :model="fiel" label-width="160px">
<el-form-item label="名称:">
<el-input v-model="fiel.name"></el-input>
</el-form-item>
<el-form-item label="类型:">
<el-select v-model="fiel.type" style="width: 100%" clearable>
<el-option
v-for="item in fieldType"
:key="item.id"
:label="item.name"
:value="item.name"
/>
</el-select>
</el-form-item>
<el-form-item label="格式:">
<el-select v-model="fiel.format" style="width: 100%" clearable>
<el-option
v-for="item in fieldFormat"
:key="item.index"
:label="item.name"
:value="item.name"
/>
</el-select>
</el-form-item>
<el-form-item label="长度:">
<el-input v-model="fiel.length"></el-input>
</el-form-item>
<el-form-item label="精确:">
<el-input v-model="fiel.precision"></el-input>
</el-form-item>
<el-form-item label="当前的:">
<el-input v-model="fiel.currency"></el-input>
</el-form-item>
<el-form-item label="10进制的:">
<el-input v-model="fiel.decimal"></el-input>
</el-form-item>
<el-form-item label="组:">
<el-input v-model="fiel.group"></el-input>
</el-form-item>
<el-form-item label="值:">
<el-input v-model="fiel.nullif"></el-input>
</el-form-item>
<el-form-item label="设为空串?">
<el-select
v-model="fiel.set_empty_string"
style="width: 100%"
clearable
>
<el-option label="是" value="Y"></el-option>
<el-option label="否" value="N"></el-option>
</el-select>
</el-form-item>
</el-form>
<span slot="footer" class="dialog-footer">
<el-button @click="addField = false">取 消</el-button>
<el-button type="primary" @click="addFieldDetermine">确 定</el-button>
</span>
</el-dialog>
</div>
</template>
<script>
import mxgraph from "@/utils/mxgraph";
const {
mxGraph,
mxUtils,
mxEvent,
mxKeyHandler,
mxRubberband,
mxConstants,
mxStencilRegistry,
mxStencil,
mxCodec,
mxGraphModel,
mxGeometry,
} = mxgraph;
import { systemDataTypes, valueFormat, valueMeta } from "@/api/kettle/link";
export default {
props: ["form", "addConstantsDialog", "saveOutputDialog", "nodeData"],
data() {
return {
addField: false,
fields: [],
type: {},
dataStatus: false,
fiel: {},
fieldFormat: [],
fieldType: [],
};
},
created() {
this.systemDataTypesFun();
},
methods: {
clickFun(graph, val) {
console.log(graph, "双击获取值");
this.newGraph = graph;
console.log(val, "拿到form");
this.fields = JSON.parse(val.fields);
},
handleCloseFun() {
this.$emit("update:addConstantsDialog", false);
},
SystemInfoDialogFun() {
this.handleCloseFun();
this.form.fields = JSON.stringify(this.fields);
this.saveOutputDialog(this.form);
},
addFieldDetermine() {
this.addField = !this.addField;
if (this.dataStatus) {
this.fields.push(this.fiel);
} else {
}
},
// 关闭弹框
handleClose(done) {
this.$confirm("确认关闭?")
.then((_) => {
done();
})
.catch((_) => {});
},
deleteRow(index, rows) {
rows.splice(index, 1);
},
addSheet(state, val) {
this.valueFormatFun();
this.valueMetaFun();
this.addField = !this.addField;
this.dataStatus = state;
if (state) {
this.fiel = {};
} else {
this.fiel = val;
}
},
systemDataTypesFun() {
systemDataTypes().then((res) => {
this.type = res;
});
},
valueMetaFun() {
valueMeta().then((res) => {
this.fieldType = res;
});
},
valueFormatFun() {
let pamer2 = new FormData(); // 创建form对象
pamer2.append("valueType", "all");
valueFormat(pamer2).then((res) => {
this.fieldFormat = res;
});
},
},
};
</script>
<style lang="scss" scoped>
* {
outline: none;
}
</style>
<template>
<div class="getSystemInformation">
<el-dialog
title="增加序列"
:visible.sync="addSequenceDialog"
width="800px"
:before-close="handleCloseFun"
>
<el-form ref="form" :model="form" label-width="120px">
<el-form-item label="步骤名称:">
<el-input v-model="form.label"></el-input>
</el-form-item>
<el-form-item label="值的名称:">
<el-input v-model="form.valuename"></el-input>
</el-form-item>
</el-form>
<el-card class="box-card">
<el-form ref="form" :model="form" label-width="200px">
<el-form-item label="使用数据库来生成序列" />
<el-form-item label="使用DB来获取sequence?">
<el-checkbox
v-model="form.use_database"
true-label="Y"
false-label="N"
@change="useDatabase"
></el-checkbox>
</el-form-item>
<el-form-item label="数据库连接">
<el-row :gutter="20">
<el-col :span="13">
<el-select
v-model="form.connection"
style="width: 100%"
@change="getField"
@focus="getGraphDataBases"
:disabled="form.use_database == 'N'"
clearable
>
<el-option
v-for="(item, index) in namesList"
:key="index"
:label="item.name"
:value="item.name"
/>
</el-select>
</el-col>
<el-col :span="3">
<el-button @click.native="dialogVisibleFourthFun"
:disabled="form.use_database == 'N'"
>编辑</el-button
></el-col
>
<el-col :span="3">
<el-button @click.native="dialogVisibleFourthNew"
:disabled="form.use_database == 'N'"
>新建</el-button
></el-col
>
<el-col :span="3"> <el-button :disabled="form.use_database == 'N'">wizard...</el-button></el-col>
</el-row>
</el-form-item>
<el-form-item label="模式名称">
<el-row :gutter="20">
<el-col :span="18">
<el-input v-model="form.schema" :disabled="form.use_database == 'N'"></el-input>
</el-col>
<el-col :span="3"> <el-button :disabled="form.use_database == 'N'">Schemas...</el-button></el-col>
</el-row>
</el-form-item>
<el-form-item label="Sequence名称">
<el-row :gutter="20">
<el-col :span="18">
<el-input v-model="form.seqname" :disabled="form.use_database == 'N'"></el-input>
</el-col>
<el-col :span="3"> <el-button disabled>Sequences...</el-button></el-col>
</el-row>
</el-form-item>
</el-form>
</el-card>
<br>
<el-card class="box-card">
<el-form ref="form" :model="form" label-width="210px">
<el-form-item label="使用转换计算器来生成序列" />
<el-form-item label="使用计算器来计算sequence?">
<el-checkbox
v-model="form.use_counter"
true-label="Y"
false-label="N"
@change="useCounter"
></el-checkbox>
</el-form-item>
<el-form-item label="计算器名称(可选)">
<el-input v-model="form.counter_name" :disabled="form.use_counter == 'N'"></el-input>
</el-form-item>
<el-form-item label="初始值">
<el-input v-model="form.start_at" :disabled="form.use_counter == 'N'"></el-input>
</el-form-item>
<el-form-item label="增长根据">
<el-input v-model="form.increment_by" :disabled="form.use_counter == 'N'"></el-input>
</el-form-item>
<el-form-item label="最大值">
<el-input v-model="form.max_value" :disabled="form.use_counter == 'N'"></el-input>
</el-form-item>
</el-form>
</el-card>
<span slot="footer" class="dialog-footer">
<el-button @click="handleCloseFun">取 消</el-button>
<el-button type="primary" @click="SystemInfoDialogFun">确 定</el-button>
</span>
</el-dialog>
<estab-dialog
ref="establishDia"
:dialogVisibleFourth.sync="dialogVisibleFourth"
@getSonValue="getSonValue"
:listNames="listNames"
:scanDialogVisible.sync="scanDialogVisible"
:chooseType="chooseType"
:chooseFlag.sync="chooseFlag"
:form.sync="form"
:getXmlVal="getXmlVal"
:noneRespository="noneRespository"
:graph.sync="newGraph"
></estab-dialog>
</div>
</template>
<script>
import mxgraph from "@/utils/mxgraph";
const {
mxGraph,
mxUtils,
mxEvent,
mxKeyHandler,
mxRubberband,
mxConstants,
mxStencilRegistry,
mxStencil,
mxCodec,
mxGraphModel,
mxGeometry,
} = mxgraph;
import { listNames } from "@/api/kettle/link";
export default {
props: ["form", "addSequenceDialog", "saveOutputDialog", "nodeData","getXmlVal"],
data() {
return {
dialogVisibleFourth: false,
scanDialogVisible: false,
chooseType: "表",
chooseFlag: false,
noneRespository: 1, //判断是保存画布还是传后台
namesList: [],
library: [],
addField: false,
fields: [],
type: {},
dataStatus: false,
fiel: {},
fieldFormat: [],
fieldType: [],
newGraph: {},
};
},
created() {
this.systemDataTypesFun();
},
methods: {
clickFun(graph, val) {
console.log(graph, "双击获取值");
this.newGraph = graph;
console.log(val, "拿到form");
},
handleCloseFun() {
this.$emit("update:addSequenceDialog", false);
},
SystemInfoDialogFun() {
this.handleCloseFun();
this.saveOutputDialog(this.form);
},
addFieldDetermine() {
this.addField = !this.addField;
if (this.dataStatus) {
this.fields.push(this.fiel);
} else {
}
},
// 关闭弹框
handleClose(done) {
this.$confirm("确认关闭?")
.then((_) => {
done();
})
.catch((_) => {});
},
deleteRow(index, rows) {
rows.splice(index, 1);
},
dialogVisibleFourthNew() {
this.dialogVisibleFourth = true;
// this.$refs.establishDia.database();
// this.$refs.establishDia.accessMethod(); //获取连接方式
this.$refs.establishDia.clickFun(this.newGraph); //先把画布传过去
this.$refs.establishDia.getTransDatabase();
this.$refs.establishDia.accessMethod(); //获取连接方式
},
useCounter(){
if (this.form.use_counter == "Y") {
this.form.use_database = "N"
}
},
useDatabase(){
if (this.form.use_database == "Y") {
this.form.use_counter = "N"
}
},
dialogVisibleFourthFun() {
this.dialogVisibleFourth = true;
// this.$refs.establishDia.database(this.connectionName);
this.$refs.establishDia.clickFun(this.newGraph); //先把画布传过去
if (this.form.connection) {
this.dialogVisibleFourth = true;
this.$refs.establishDia.getTransDatabase(this.form.connection);
this.$refs.establishDia.accessMethod(); //获取连接方式
}
// this.$refs.establishDia.database(this.selectName);
},
getSonValue(res) {
if (typeof res == "string") {
this.formDataBaseName = res;
console.log("接收子组件的值1111111----", this.formDataBaseName);
} else if (typeof res == "object") {
console.log("接收子组件的值55555----", res);
this.curNode = res; // DOM 更新后 // this.$nextTick(() => { //   this.form.text=this.curNode.data.text; //   // this.$refs.goal.values=this.curNode.data.text; //   // this.$refs.goal.refreshData(this.from) // }) // this.form.text=this.curNode.data.text;
//         this.$set(this.newForm,'text',this.curNode.data.text)
//         this.$forceUpdate()
console.log("chuanhuo=====", this.newForm);
} else if (typeof res == "boolean") {
this.dialogVisibleFourth = res;
console.log("接收子组件的值2222222----", this.dialogVisibleFourth);
}
},
listNames() {
listNames().then((res) => {
if (res) {
console.log("获取所有已经创建的数据库列表:", res);
this.namesList = res;
} else {
this.$message.error(res.errMsg);
}
});
},
getGraphDataBases() {
// var graph = this.getGraph();
var root = this.newGraph.getDefaultParent(),
data = [];
if (root.getAttribute("databases") != null)
data = JSON.parse(root.getAttribute("databases"));
console.log("获取到画布上的databases====", data);
this.namesList = data;
},
getField(val) {
this.library = this.namesList.find((e) => {
return e.name == val;
});
console.log(this.library, "////////////////////////");
this.connectionName = val;
},
},
};
</script>
<style lang="scss" scoped>
* {
outline: none;
}
</style>
...@@ -17,7 +17,7 @@ ...@@ -17,7 +17,7 @@
<el-button type="text" @click="getTheField">获取字段</el-button> <el-button type="text" @click="getTheField">获取字段</el-button>
<el-table :data="fields" style="width: 100%"> <el-table :data="fields" style="width: 100%">
<el-table-column prop="field_name" label="字段名称"> </el-table-column>g <el-table-column prop="field_name" label="字段名称"> </el-table-column>
<el-table-column prop="variable_name" label="变量名"> </el-table-column> <el-table-column prop="variable_name" label="变量名"> </el-table-column>
......
<template>
<div class="getSystemInformation">
<el-dialog
title="增加常量"
:visible.sync="setFieldValueDialog"
width="800px"
:before-close="handleCloseFun"
>
<el-form ref="form" :model="form" label-width="120px">
<el-form-item label="步骤名称:">
<el-input v-model="form.label"></el-input>
</el-form-item>
</el-form>
<el-form ref="form" :model="form" label-width="0px">
<el-button type="text" @click="addSheet(true)" style="margin: 10px"
>添加字段</el-button
>
<el-button type="text" @click="getTheGroup">获取字段</el-button>
<el-form-item>
<el-table :data="fields" style="width: 100%">
<el-table-column prop="name" label="Field name"> </el-table-column>
<el-table-column prop="replaceby" label="Replace by value from field"> </el-table-column>
<el-table-column label="操作">
<template slot-scope="scope">
<el-button
@click="addSheet(false, scope.row)"
type="text"
size="small"
>编辑</el-button
>
<el-button
type="text"
size="small"
@click="deleteRow(scope.$index, fields)"
>删除</el-button
>
</template>
</el-table-column>
</el-table>
</el-form-item>
</el-form>
<span slot="footer" class="dialog-footer">
<el-button @click="handleCloseFun">取 消</el-button>
<el-button type="primary" @click="SystemInfoDialogFun">确 定</el-button>
</span>
</el-dialog>
<el-dialog
:title="dataStatus ? '新增' : '修改'"
:visible.sync="addField"
width="500px"
:before-close="handleClose"
:modal="false"
>
<el-form ref="form" :model="fiel" label-width="250px">
<el-form-item label="Field name">
<el-select v-model="fiel.name" style="width: 100%" clearable>
<el-option
v-for="item in fieldFormat"
:key="item.id"
:label="item.name"
:value="item.name"
/>
</el-select>
</el-form-item>
<el-form-item label="Replace by value from field">
<el-select v-model="fiel.replaceby" style="width: 100%" clearable>
<el-option
v-for="item in fieldFormat"
:key="item.index"
:label="item.name"
:value="item.name"
/>
</el-select>
</el-form-item>
</el-form>
<span slot="footer" class="dialog-footer">
<el-button @click="addField = false">取 消</el-button>
<el-button type="primary" @click="addFieldDetermine">确 定</el-button>
</span>
</el-dialog>
</div>
</template>
<script>
import mxgraph from "@/utils/mxgraph";
const {
mxGraph,
mxUtils,
mxEvent,
mxKeyHandler,
mxRubberband,
mxConstants,
mxStencilRegistry,
mxStencil,
mxCodec,
mxGraphModel,
mxGeometry,
} = mxgraph;
import { inputOutputFields } from "@/api/kettle/link";
export default {
props: ["form", "setFieldValueDialog", "saveOutputDialog", "nodeData"],
data() {
return {
addField: false,
fields: [],
type: {},
dataStatus: false,
fiel: {},
fieldFormat: [],
fieldType: [],
};
},
created() {
this.systemDataTypesFun();
},
methods: {
clickFun(graph, val) {
console.log(graph, "双击获取值");
this.newGraph = graph;
console.log(val, "拿到form");
this.fields = JSON.parse(val.fields);
},
getTheGroup() {
var enc = new mxCodec(mxUtils.createXmlDocument());
var node = enc.encode(this.newGraph.getModel());
this.graphXml = mxUtils.getPrettyXml(node);
let pamerFields = new FormData(); // 创建form对象
pamerFields.append(
"stepName",
this.nodeData.value.attributes.label.value
);
pamerFields.append("graphXml", this.graphXml);
pamerFields.append("before", true);
inputOutputFields(pamerFields).then((res) => {
this.fields = res;
console.log(res);
});
},
handleCloseFun() {
this.$emit("update:setFieldValueDialog", false);
},
SystemInfoDialogFun() {
this.handleCloseFun();
this.form.fields = JSON.stringify(this.fields);
this.saveOutputDialog(this.form);
},
addFieldDetermine() {
this.addField = !this.addField;
if (this.dataStatus) {
this.fields.push(this.fiel);
} else {
}
},
// 关闭弹框
handleClose(done) {
this.$confirm("确认关闭?")
.then((_) => {
done();
})
.catch((_) => {});
},
deleteRow(index, rows) {
rows.splice(index, 1);
},
addSheet(state, val) {
this.getFun();
this.addField = !this.addField;
this.dataStatus = state;
if (state) {
this.fiel = {};
} else {
this.fiel = val;
}
},
getFun() {
var enc = new mxCodec(mxUtils.createXmlDocument());
var node = enc.encode(this.newGraph.getModel());
this.graphXml = mxUtils.getPrettyXml(node);
let pamerFields = new FormData(); // 创建form对象
pamerFields.append(
"stepName",
this.nodeData.value.attributes.label.value
);
pamerFields.append("graphXml", this.graphXml);
pamerFields.append("before", true);
inputOutputFields(pamerFields).then((res) => {
this.fieldFormat = res;
console.log(res);
});
},
systemDataTypesFun() {
systemDataTypes().then((res) => {
this.type = res;
});
},
valueMetaFun() {
valueMeta().then((res) => {
this.fieldType = res;
});
},
valueFormatFun() {
let pamer2 = new FormData(); // 创建form对象
pamer2.append("valueType", "all");
valueFormat(pamer2).then((res) => {
this.fieldFormat = res;
});
},
},
};
</script>
<style lang="scss" scoped>
* {
outline: none;
}
</style>
...@@ -24,14 +24,7 @@ ...@@ -24,14 +24,7 @@
:value="item.name" :value="item.name"
/> />
</el-select> </el-select>
<!-- <el-select v-model="form.connection" style="width: 100%" @change="getField()">
<el-option
v-for="item in ComboBox"
:key="item.id"
:label="item.name"
:value="item"
/>
</el-select> -->
</el-col> </el-col>
<el-col class="line" :span="2"> <el-col class="line" :span="2">
<el-button size="mini" @click.native="dialogVisibleFourthFun" <el-button size="mini" @click.native="dialogVisibleFourthFun"
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment