Commit d1677b65 by 李耀琨

画好映射 (子转换),Get data from XML 页面

完成去除重复记录模块
parent 1de08991
......@@ -70,9 +70,9 @@
<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="default_value" label="默认值"> </el-table-column>
<el-table-column prop="length" label="描述"> </el-table-column>
<el-table-column prop="description" label="描述"> </el-table-column>
<el-table-column label="操作" width="100px">
<template slot-scope="scope">
......@@ -104,38 +104,38 @@
<div class="topRight">
<el-form :model="logEntry" label-width="200px">
<el-form-item label="日志数据库连接:">
<el-input v-model="logEntry.name"></el-input>
<el-input v-model="logEntry.connection"></el-input>
</el-form-item>
<el-form-item label="日志表模式:">
<el-input v-model="logEntry.name"></el-input>
<el-input v-model="logEntry.schema"></el-input>
</el-form-item>
<el-form-item label="日志表:">
<el-input v-model="logEntry.name"></el-input>
<el-input v-model="logEntry.table"></el-input>
</el-form-item>
<el-form-item label="日志记录间隔时间(秒):">
<el-input v-model="logEntry.name"></el-input>
<el-form-item label="日志记录间隔时间(秒):" v-if="this.switchState == 1 || this.switchState == 3">
<el-input v-model="logEntry.size_limit_lines"></el-input>
</el-form-item>
<el-form-item label="日志记录过时时间(天):">
<el-input v-model="logEntry.name"></el-input>
<el-input v-model="logEntry.interval"></el-input>
</el-form-item>
<el-form-item label="在内存中保存的日志行数限制:">
<el-input v-model="logEntry.name"></el-input>
<el-form-item label="在内存中保存的日志行数限制:" v-if="this.switchState == 1">
<el-input v-model="logEntry.timeout_days"></el-input>
</el-form-item>
</el-form>
</div>
<div class="lowerRight">
<el-table
:data="tableData"
height="250"
height=" 250 "
border
style="width: 100%"
:row-style="{ height: '10px' }"
:cell-style="{ height: '10px' }"
>
<el-table-column prop="date" label="启用"> </el-table-column>
<el-table-column prop="enabled" label="启用"> </el-table-column>
<el-table-column prop="name" label="字段名称"> </el-table-column>
<el-table-column prop="address" label="步骤名称"></el-table-column>
<el-table-column prop="address" label="字段描述"></el-table-column>
<el-table-column prop="subject" label="步骤名称" v-if="this.switchState == 1"></el-table-column>
<el-table-column prop="description" label="字段描述"></el-table-column>
<el-table-column label="操作" width="60">
<template slot-scope="scope">
<el-button
......@@ -154,19 +154,19 @@
<el-tab-pane label="日期">
<el-form :model="conversionForm" label-width="160px">
<el-form-item label="最大日期数据库连接:">
<el-input v-model="conversionForm.name"></el-input>
<el-input v-model="conversionForm.table"></el-input>
</el-form-item>
<el-form-item label="最大日期表:">
<el-input v-model="conversionForm.name"></el-input>
<el-input v-model="conversionForm.field"></el-input>
</el-form-item>
<el-form-item label="最大日期字段:">
<el-input v-model="conversionForm.name"></el-input>
<el-input v-model="conversionForm.offset"></el-input>
</el-form-item>
<el-form-item label="最大日期偏移(秒):">
<el-input v-model="conversionForm.name"></el-input>
<el-input v-model="conversionForm.maxdiff"></el-input>
</el-form-item>
<el-form-item label="最大日期区别(秒):">
<el-input v-model="conversionForm.name"></el-input>
<el-input v-model="conversionForm.maxdate"></el-input>
</el-form-item>
</el-form>
</el-tab-pane>
......@@ -176,9 +176,9 @@
<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="default_value" label="表"> </el-table-column>
<el-table-column prop="length" label="字段"> </el-table-column>
<el-table-column prop="description" label="字段"> </el-table-column>
<el-table-column label="操作" width="100px">
<template slot-scope="scope">
......@@ -201,40 +201,40 @@
<el-tab-pane label="杂项">
<el-form :model="conversionForm" label-width="230px">
<el-form-item label="记录集合里的记录数:">
<el-input v-model="conversionForm.name"></el-input>
<el-input v-model="conversionForm.size_rowset"></el-input>
</el-form-item>
<el-form-item label="转换时是否在日志中记录反馈行?:">
<el-checkbox
v-model="conversionForm.errorIgnored"
v-model="conversionForm.feedback_shown"
true-label="Y"
false-label="N"
></el-checkbox>
</el-form-item>
<el-form-item label="每个反馈行的处理记录数:">
<el-input v-model="conversionForm.name"></el-input>
<el-input v-model="conversionForm.feedback_size"></el-input>
</el-form-item>
<el-form-item label="使用唯一连接:">
<el-checkbox
v-model="conversionForm.errorIgnored"
v-model="conversionForm.unique_connections"
true-label="Y"
false-label="N"
></el-checkbox>
</el-form-item>
<el-form-item label="共享对象文件:">
<el-input v-model="conversionForm.name"></el-input>
<el-input v-model="conversionForm.shared_objects_file"></el-input>
</el-form-item>
<el-form-item label="管理线程优先级:">
<el-checkbox
v-model="conversionForm.errorIgnored"
v-model="conversionForm.using_thread_priorities"
true-label="Y"
false-label="N"
></el-checkbox>
</el-form-item>
<el-form-item label="转换引擎类型:">
<el-input v-model="conversionForm.name"></el-input>
<el-input v-model="conversionForm.trans_type"></el-input>
</el-form-item>
</el-form>
</el-tab-pane>
......@@ -242,17 +242,17 @@
<el-form :model="conversionForm" label-width="180px">
<el-form-item label="开启步骤性能监控?:">
<el-checkbox
v-model="conversionForm.errorIgnored"
v-model="conversionForm.capture_step_performance"
true-label="Y"
false-label="N"
></el-checkbox>
</el-form-item>
<el-form-item label="步骤性能监测间隔(毫秒):">
<el-input v-model="conversionForm.name"></el-input>
<el-input v-model="conversionForm.step_performance_capturing_delay"></el-input>
</el-form-item>
<el-form-item label="内存中最大的快照数量:">
<el-input v-model="conversionForm.name"></el-input>
<el-input v-model="conversionForm.step_performance_capturing_size_limit"></el-input>
</el-form-item>
</el-form>
</el-tab-pane>
......@@ -357,7 +357,7 @@ export default {
};
</script>
<style>
<style lang="scss" scoped>
.leftDiv {
width: 150px;
height: 500px;
......
<template>
<div class="customConstant">
<el-dialog
title="映射(子转换)"
:visible.sync="mappingDialog"
width="800px"
:before-close="handleCloseFun"
>
<el-form ref="from" :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-row :gutter="10">
<el-col :span="21">
<el-input v-model="form.directory"></el-input>
</el-col>
<el-col class="line" :span="2">
<el-button size="mini">浏览</el-button>
</el-col>
</el-row>
</el-form-item>
</el-form>
<el-tabs type="border-card">
<el-tab-pane label="命名参数">
<el-button type="text" @click="selectModify(true)"
>添加字段</el-button
>
<!-- <el-button type="text" @click="selectModifyGetTheField">获取字段</el-button> -->
<el-table :data="fields" style="width: 100%">
<el-table-column prop="name" label="变量名"> </el-table-column>
<el-table-column prop="rename" label="字符串值(里面里可以使用变量)">
</el-table-column>
<el-table-column label="操作" width="100px">
<template slot-scope="scope">
<el-button
@click="selectModify(false, scope.row)"
type="text"
size="small"
>编辑</el-button
>
<el-button
type="text"
size="small"
@click="deleteField(scope.$index, fields)"
>删除</el-button
>
</template>
</el-table-column>
</el-table>
</el-tab-pane>
<el-tab-pane label="输入">
<div>
<div class="leftDiv">
<el-row :gutter="10">
<el-col :span="10">
<el-button type="text" @click="metadata(true)">添加</el-button>
</el-col>
<el-col class="line" :span="10">
<el-button type="text" @click="metadata(true)">删除</el-button>
</el-col>
</el-row>
<ul class="ulHeight">
<li
class="list"
v-for="item in liList"
:key="item.id"
@click="switchJournal(item)"
style="cursor: pointer"
:class="{
hover: switchState == item.id,
checked: switchState == item.id,
}"
>
{{ item.name }}
</li>
</ul>
</div>
<div class="rightDiv">
<div class="topRight">
<el-form :model="form">
<el-form-item label="是否是主要数据路径?">
<el-checkbox
v-model="form.feedback_shown"
true-label="Y"
false-label="N"
></el-checkbox>
</el-form-item>
<el-form-item label="输入原步骤名(如果只有一个步骤该项可以为空)">
<el-row :gutter="10">
<el-col :span="20">
<el-input v-model="form.directory"></el-input>
</el-col>
<el-col class="line" :span="2">
<el-button size="mini">选择</el-button>
</el-col>
</el-row>
</el-form-item>
<el-form-item label="子转换里的“映射输入接口”步骤名">
<el-row :gutter="10">
<el-col :span="20">
<el-input v-model="form.directory"></el-input>
</el-col>
<el-col class="line" :span="2">
<el-button size="mini">选择</el-button>
</el-col>
</el-row>
</el-form-item>
<el-form-item
label="步骤映射描述:"
>
<el-input v-model="form.timeout_days"></el-input>
</el-form-item>
</el-form>
</div>
<div class="lowerRight">
<el-button type="text" @click="metadata(true)"
>添加字段</el-button
>
<el-table
:data="tableData"
height=" 250 "
border
style="width: 100%"
:row-style="{ height: '10px' }"
:cell-style="{ height: '10px' }"
>
<el-table-column prop="enabled" label="原字段名">
</el-table-column>
<el-table-column prop="name" label="要映射成的字段名">
</el-table-column>
<el-table-column label="操作" width="60">
<template slot-scope="scope">
<el-button
@click="liListClick(false, scope.row)"
type="text"
size="small"
>编辑</el-button
>
<el-button
@click="liListClick(false, scope.row)"
type="text"
size="small"
>删除</el-button
>
</template>
</el-table-column>
</el-table>
</div>
</div>
</div>
</el-tab-pane>
<el-tab-pane label="输出">
<div>
<div class="leftDiv">
<el-row :gutter="10">
<el-col :span="10">
<el-button type="text" @click="metadata(true)">添加</el-button>
</el-col>
<el-col class="line" :span="10">
<el-button type="text" @click="metadata(true)">删除</el-button>
</el-col>
</el-row>
<ul class="ulHeight">
<li
class="list"
v-for="item in liListru"
:key="item.id"
@click="switchJournal(item)"
style="cursor: pointer"
:class="{
hover: switchState == item.id,
checked: switchState == item.id,
}"
>
{{ item.name }}
</li>
</ul>
</div>
<div class="rightDiv">
<div class="topRight">
<el-form :model="form">
<el-form-item label="是否是主要数据路径?">
<el-checkbox
v-model="form.feedback_shown"
true-label="Y"
false-label="N"
></el-checkbox>
</el-form-item>
<el-form-item label="子转换里的“映射输入接口”步骤名">
<el-row :gutter="10">
<el-col :span="20">
<el-input v-model="form.directory"></el-input>
</el-col>
<el-col class="line" :span="2">
<el-button size="mini">选择</el-button>
</el-col>
</el-row>
</el-form-item>
<el-form-item label="输入原步骤名(如果只有一个步骤该项可以为空)">
<el-row :gutter="10">
<el-col :span="20">
<el-input v-model="form.directory"></el-input>
</el-col>
<el-col class="line" :span="2">
<el-button size="mini">选择</el-button>
</el-col>
</el-row>
</el-form-item>
<el-form-item
label="步骤映射描述:"
>
<el-input v-model="form.timeout_days"></el-input>
</el-form-item>
</el-form>
</div>
<div class="lowerRight">
<el-button type="text" @click="metadata(true)"
>添加字段</el-button
>
<el-table
:data="tableData"
height=" 250 "
border
style="width: 100%"
:row-style="{ height: '10px' }"
:cell-style="{ height: '10px' }"
>
<el-table-column prop="enabled" label="原字段名">
</el-table-column>
<el-table-column prop="name" label="要映射成的字段名">
</el-table-column>
<el-table-column label="操作" width="60">
<template slot-scope="scope">
<el-button
@click="liListClick(false, scope.row)"
type="text"
size="small"
>编辑</el-button
>
<el-button
@click="liListClick(false, scope.row)"
type="text"
size="small"
>删除</el-button
>
</template>
</el-table-column>
</el-table>
</div>
</div>
</div>
</el-tab-pane>
</el-tabs>
<span slot="footer" class="dialog-footer">
<el-button @click="handleCloseFun">取 消</el-button>
<el-button type="primary" @click="mappingDialogFun">确 定</el-button>
</span>
</el-dialog>
</div>
</template>
<script>
import browseFiles from "../appBulletFrame/browseFiles";
import mxgraph from "@/utils/mxgraph";
const {
mxGraph,
mxUtils,
mxEvent,
mxKeyHandler,
mxRubberband,
mxConstants,
mxStencilRegistry,
mxStencil,
mxCodec,
mxGraphModel,
mxGeometry,
} = mxgraph;
import {
valueFormat,
valueMeta,
formatMapperLineTerminator,
availableCharsets,
compressionProviderNames,
inputOutputFields,
} from "@/api/kettle/link";
export default {
props: [
"form",
"nodeData",
"saveOutputDialog",
"mappingDialog",
], //从父组件传过来的值
components: {
browseFiles,
},
data() {
return {
tableData:[],
newGraph: [],
fileBox: false,
filterBox: false,
metadataBox: false,
selectModifyBox: false,
removeFieldBox: false,
fields: [],
remove: [],
meta: [],
metadataForm: {},
selectModifyForm: {},
removeFieldForm: {},
filterForm: {},
fieldFormat: {},
fieldCompress: {},
fieldType: {},
dataState: false,
fileType: [],
codingType: [],
routeState: 0,
filePathSelection: false,
localPath: {},
fileSelection: {},
fielForm: {},
liList:[{id:1,name:"输入"}],
liListru:[{id:1,name:"输出"}],
switchState:1,
};
},
created() {
this.valueFormatFun();
this.valueMetaFun();
this.formatMapperLineTerminatorFun();
this.availableCharsetsFun();
this.compressionProviderNamesFun();
},
methods: {
clickFun(graph, val) {
console.log(graph);
this.newGraph = graph;
this.fields = JSON.parse(val.fields);
this.remove = JSON.parse(val.remove);
this.meta = JSON.parse(val.meta);
},
switchJournal(val){
this.switchState = val.id
console.log(val);
},
handleCloseFun() {
this.$emit("update:mappingDialog", false);
},
mappingDialogFun() {
this.form.fields = JSON.stringify(this.fields);
this.form.remove = JSON.stringify(this.remove);
this.form.meta = JSON.stringify(this.meta);
this.saveOutputDialog(this.form);
this.handleCloseFun();
},
selectModifyGetTheField() {
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;
});
},
getTheField() {
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.remove = res;
});
},
metadataGetTheField() {
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.meta = res;
});
},
compressionProviderNamesFun() {
compressionProviderNames().then((res) => {
this.fieldCompress = res;
});
},
// 关闭弹框
handleClose(done) {
this.$confirm("确认关闭?")
.then((_) => {
done();
})
.catch((_) => {});
},
formatMapperLineTerminatorFun() {
let pamer = new FormData(); // 创建form对象
pamer.append("query", "");
formatMapperLineTerminator(pamer).then((res) => {
this.fileType = res;
});
},
availableCharsetsFun() {
let pamer = new FormData(); // 创建form对象
pamer.append("query", "");
availableCharsets(pamer).then((res) => {
this.codingType = res;
});
},
deleteField(index, rows) {
rows.splice(index, 1);
},
fieldClick(state, val) {
this.removeFieldBox = !this.removeFieldBox;
this.dataState = state;
if (state) {
this.removeFieldForm = {};
} else {
this.removeFieldForm = val;
}
},
selectModify(state, val) {
this.selectModifyBox = !this.selectModifyBox;
this.dataState = state;
if (state) {
this.selectModifyForm = {};
} else {
this.selectModifyForm = val;
}
},
metadata(state, val) {
this.metadataBox = !this.metadataBox;
this.dataState = state;
if (state) {
this.metadataForm = {};
} else {
this.metadataForm = val;
}
},
selectModifyBoxFun() {
this.selectModifyBox = !this.selectModifyBox;
if (this.dataState) {
this.fields.push(this.selectModifyForm);
this.$emit("fields", this.fields);
} else {
}
},
removeFieldBoxFun() {
this.removeFieldBox = !this.removeFieldBox;
if (this.dataState) {
this.remove.push(this.removeFieldForm);
this.$emit("fields", this.remove);
} else {
}
},
metadataBoxFun() {
this.metadataBox = !this.metadataBox;
if (this.dataState) {
this.meta.push(this.metadataForm);
this.$emit("meta", this.meta);
} else {
}
},
valueFormatFun() {
let pamer2 = new FormData(); // 创建form对象
pamer2.append("valueType", "all");
valueFormat(pamer2).then((res) => {
this.fieldFormat = res;
});
},
valueMetaFun() {
valueMeta().then((res) => {
this.fieldType = res;
});
},
},
};
</script>
<style lang="scss" scoped>
* {
outline: none;
}
.leftDiv {
width: 150px;
height: 500px;
/* background-color: antiquewhite; */
// border: 1px solid #d2e0f1;
float: left;
padding: 10px;
}
.ulHeight{
border: 1px solid #d2e0f1;
width: 120px;
height: 400px;
}
.list.hover {
cursor: pointer;
background-color: #eeeeee;
}
.list.checked {
background-color: #4e9df8;
color: #fff;
}
.rightDiv {
width: 550px;
height: 400px;
float: left;
}
.topRight {
width: 550px;
height: 270px;
// border: 1px solid #d2e0f1;
padding: 10px;
/* background-color: aqua; */
}
.lowerRight {
width: 550px;
height: 230px;
// border: 1px solid #d2e0f1;
padding: 10px;
overflow: hidden;
/* background-color: aqua; */
}
</style>
......@@ -361,7 +361,6 @@ export default {
metadataBox: false,
selectModifyBox:false,
removeFieldBox:false,
fields:[],
remove:[],
meta:[],
......
<template>
<div class="customConstant">
<el-dialog
title="去除重复记录"
:visible.sync="toRepeatDialog"
width="800px"
:before-close="handleCloseFun"
>
<el-form ref="from" :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="from" :model="form" label-width="160px">
<el-form-item label="增加计数器到输出:">
<el-checkbox
v-model="form.count_rows"
true-label="Y"
false-label="N"
></el-checkbox>
</el-form-item>
<el-form-item label="计数器字段:">
<el-input v-model="form.count_field"></el-input>
</el-form-item>
<el-form-item label="重定向重复记录:">
<el-checkbox
v-model="form.reject_duplicate_row"
true-label="Y"
false-label="N"
></el-checkbox>
</el-form-item>
<el-form-item label="错误描述:">
<el-input v-model="form.error_description"></el-input>
</el-form-item>
</el-form>
<el-card class="box-card">
<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="getTheField">获取字段</el-button>
<el-form-item>
<el-table :data="fields" style="width: 100%">
<el-table-column label="字段">
<el-table-column type="index" width="50"> </el-table-column>
<el-table-column prop="name" label="字段名称"></el-table-column>
<el-table-column prop="case_insensitive" label="忽略大小写">
<template slot-scope="scope">
{{ scope.row.case_insensitive == "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-column>
</el-table>
</el-form-item>
</el-form>
</el-card>
<span slot="footer" class="dialog-footer">
<el-button @click="handleCloseFun">取 消</el-button>
<el-button type="primary" @click="toRepeatDialogFun">确 定</el-button>
</span>
</el-dialog>
<el-dialog
title="添加字段"
: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.case_insensitive"
style="width: 100%"
clearable
>
<el-option label="是" value="Y" />
<el-option label="否" value="N" />
</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="addFieldState">确 定</el-button>
</span>
</el-dialog>
</div>
</template>
<script>
import browseFiles from "../appBulletFrame/browseFiles";
import mxgraph from "@/utils/mxgraph";
const {
mxGraph,
mxUtils,
mxEvent,
mxKeyHandler,
mxRubberband,
mxConstants,
mxStencilRegistry,
mxStencil,
mxCodec,
mxGraphModel,
mxGeometry,
} = mxgraph;
import {
valueFormat,
valueMeta,
formatMapperLineTerminator,
availableCharsets,
compressionProviderNames,
inputOutputFields,
} from "@/api/kettle/link";
export default {
props: ["form", "saveOutputDialog", "toRepeatDialog", "nodeData"], //从父组件传过来的值
components: {
browseFiles,
},
data() {
return {
fields: [],
fiel: {},
random: {},
dataState: false,
addField: false,
newGraph: [],
};
},
created() {
},
methods: {
clickFun(graph, val) {
console.log(graph, "双击获取值");
this.newGraph = graph;
this.fields = JSON.parse(val.fields);
},
getTheField() {
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;
});
},
handleCloseFun() {
this.$emit("update:toRepeatDialog", false);
},
toRepeatDialogFun() {
this.handleCloseFun();
this.form.fields = JSON.stringify(this.fields);
this.saveOutputDialog(this.form);
},
addSheet(state, val) {
this.addField = !this.addField;
this.dataState = state;
if (state) {
this.fiel = {};
} else {
this.fiel = val;
}
},
addFieldState() {
this.addField = !this.addField;
if (this.dataState) {
this.fields.push(this.fiel);
}
},
// randomValueFuncFun() {
// randomValueFunc().then((res) => {
// this.random = res;
// });
// },
deleteRow(index, rows) {
rows.splice(index, 1);
},
// 关闭弹框
handleClose(done) {
this.$confirm("确认关闭?")
.then((_) => {
done();
})
.catch((_) => {});
},
},
};
</script>
<style lang="scss" scoped>
* {
outline: none;
}
</style>
<template>
<div>
<el-dialog
title="Get data from XML"
:visible.sync="xmlFileInputDialog"
width="800px"
:before-close="handleCloseFun"
>
<el-form ref="from" :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-row :gutter="10">
<el-col :span="21">
<el-input v-model="form.directory"></el-input>
</el-col>
<el-col class="line" :span="2">
<el-button size="mini">浏览</el-button>
</el-col>
</el-row>
</el-form-item> -->
</el-form>
<el-tabs type="border-card">
<el-tab-pane label="文件">
<el-card class="box-card">
<el-form ref="from" :model="form" label-width="200px">
从字段获取XML源
<el-form-item label="XML源定义在第一个字段里?">
<el-checkbox
v-model="form.feedback_shown"
true-label="Y"
false-label="N"
></el-checkbox>
</el-form-item>
<el-form-item label="XML源是文件名?">
<el-checkbox
v-model="form.feedback_shown"
true-label="Y"
false-label="N"
></el-checkbox>
</el-form-item>
<el-form-item label="以URL的方式读取XML源?">
<el-checkbox
v-model="form.feedback_shown"
true-label="Y"
false-label="N"
></el-checkbox>
</el-form-item>
<el-form-item label="XML 源字段名:">
<el-input v-model="form.label"></el-input>
</el-form-item>
</el-form>
</el-card>
<br />
<el-form ref="form" :model="fileSelection" label-width="150px">
<el-form-item label="文件名称:">
<el-row :gutter="10">
<el-col :span="17">
<el-input
v-model="fileSelection.fileName"
:disabled="form.acceptingFilenames == 'Y'"
></el-input>
</el-col>
<el-col class="line" :span="3">
<el-button
size="mini"
@click="addFile"
:disabled="form.acceptingFilenames == 'Y'"
>增加</el-button
></el-col
>
<el-col class="line" :span="3">
<el-button
size="mini"
@click="selectFilePath(1)"
:disabled="form.acceptingFilenames == 'Y'"
>浏览</el-button
></el-col
>
</el-row>
</el-form-item>
<el-form-item label="规则表达式:">
<el-input
v-model="fileSelection.fileMask"
:disabled="form.acceptingFilenames == 'Y'"
></el-input>
</el-form-item>
<el-form-item label="正则表达式(排除):">
<el-input
v-model="fileSelection.excludeFileMask"
:disabled="form.acceptingFilenames == 'Y'"
></el-input>
</el-form-item>
<el-form-item label="选中的文件:">
<el-card class="box-card">
<el-table :data="fileNameStore" style="width: 100%">
<el-table-column
prop="fileName"
label="文件/目录"
width="120"
>
</el-table-column>
<el-table-column prop="filemask" label="通配符">
</el-table-column>
<el-table-column
prop="excludeFileMask"
label="通配符号(排除)"
>
</el-table-column>
<el-table-column prop="fileRequired" label="要求">
</el-table-column>
<el-table-column prop="includeSubFolders" label="包含子目录">
</el-table-column>
<el-table-column label="操作" width="120px">
<template slot-scope="scope">
<el-button
@click="handleClick(scope.row)"
type="text"
size="small"
:disabled="form.acceptingFilenames == 'Y'"
>编辑</el-button
>
<el-button
type="text"
size="small"
@click="deleteRow(scope.$index, fileNameStore)"
:disabled="form.acceptingFilenames == 'Y'"
>删除</el-button
>
</template>
</el-table-column>
</el-table>
</el-card>
</el-form-item>
</el-form>
</el-tab-pane>
<el-tab-pane label="内容">
<el-card class="box-card">
设置
<el-form ref="from" :model="form" label-width="240px">
<el-form-item label="转换:">
<el-row :gutter="10">
<el-col :span="15">
<el-input v-model="form.directory"></el-input>
</el-col>
<el-col class="line" :span="8">
<el-button size="mini">获取XML文档的所有路径</el-button>
</el-col>
</el-row>
</el-form-item>
<el-form-item label="编码">
<el-select v-model="form.region" placeholder="请选择活动区域">
<el-option label="区域一" value="shanghai"></el-option>
<el-option label="区域二" value="beijing"></el-option>
</el-select>
</el-form-item>
<el-form-item label="考虑命名空间">
<el-checkbox
v-model="form.feedback_shown"
true-label="Y"
false-label="N"
></el-checkbox>
</el-form-item>
<el-form-item label="忽略注释?">
<el-checkbox
v-model="form.feedback_shown"
true-label="Y"
false-label="N"
></el-checkbox>
</el-form-item>
<el-form-item label="验证XML?">
<el-checkbox
v-model="form.feedback_shown"
true-label="Y"
false-label="N"
></el-checkbox>
</el-form-item>
<el-form-item label="使用标记">
<el-checkbox
v-model="form.feedback_shown"
true-label="Y"
false-label="N"
></el-checkbox>
</el-form-item>
<el-form-item label="忽略空文件">
<el-checkbox
v-model="form.feedback_shown"
true-label="Y"
false-label="N"
></el-checkbox>
</el-form-item>
<el-form-item label="如果没有文件不要报告错误">
<el-checkbox
v-model="form.feedback_shown"
true-label="Y"
false-label="N"
></el-checkbox>
</el-form-item>
<el-form-item label="限制">
<el-input
v-model="fileSelection.fileMask"
></el-input>
</el-form-item>
<el-form-item label="用于截取数据的XML路径(大文件)">
<el-input
v-model="fileSelection.fileMask"
></el-input>
</el-form-item>
</el-form>
</el-card>
<br>
<el-card class="box-card">
附件字段
<el-form ref="from" :model="form" label-width="140px">
<el-form-item label="输出中包括文件名?">
<el-checkbox
v-model="form.feedback_shown"
true-label="Y"
false-label="N"
></el-checkbox>
</el-form-item>
<el-form-item label="文件名字段">
<el-input
v-model="fileSelection.fileMask"
></el-input>
</el-form-item>
<el-form-item label="输出包括行号?">
<el-checkbox
v-model="form.feedback_shown"
true-label="Y"
false-label="N"
></el-checkbox>
</el-form-item>
<el-form-item label="行数组段">
<el-input
v-model="fileSelection.fileMask"
></el-input>
</el-form-item>
</el-form>
</el-card>
<br>
<el-card class="box-card">
添加到结果文件中
<el-form ref="from" :model="form" label-width="180px">
<el-form-item label="将文件增加到结果文件中">
<el-checkbox
v-model="form.feedback_shown"
true-label="Y"
false-label="N"
></el-checkbox>
</el-form-item>
</el-form>
</el-card>
</el-tab-pane>
<el-tab-pane label="字段">
<el-button type="text" @click="fieldClick(true)">添加字段</el-button>
<el-button type="text" @click="getTheField">获取字段</el-button>
<el-table :data="inputFields" style="width: 100%">
<el-table-column prop="name" label="名称"> </el-table-column>g
<el-table-column prop="type" label="类型"> </el-table-column>
<el-table-column prop="format" label="格式"> </el-table-column>
<el-table-column prop="position" 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="小数"> </el-table-column>
<el-table-column prop="group" label="分组"> </el-table-column>
<el-table-column prop="nullif" label="Null if"> </el-table-column>
<el-table-column prop="ifnull" label="默认"> </el-table-column>
<el-table-column prop="trim_type" label="去除空字符串...">
</el-table-column>
<el-table-column prop="repeat" label="重复"> </el-table-column>
<el-table-column label="操作" width="100px">
<template slot-scope="scope">
<el-button @click="fieldClick(false,scope.row)" type="text" size="small"
>编辑</el-button
>
<el-button
type="text"
size="small"
@click="deleteField(scope.$index, inputFields)"
>删除</el-button
>
</template>
</el-table-column>
</el-table>
</el-tab-pane>
<el-tab-pane label="其他输出字段">
<el-form ref="from" :model="form" label-width="160px">
<el-form-item label="文件名字段:">
<el-input v-model="form.shortFilenameField"></el-input>
</el-form-item>
<el-form-item label="扩展名字段:">
<el-input v-model="form.extensionField"></el-input>
</el-form-item>
<el-form-item label="路径字段:">
<el-input v-model="form.pathField"></el-input>
</el-form-item>
<el-form-item label="文件大小字段:">
<el-input v-model="form.sizeField"></el-input>
</el-form-item>
<el-form-item label="是否为隐藏文件字段:">
<el-input v-model="form.hiddenField"></el-input>
</el-form-item>
<el-form-item label="最后修改时间字段:">
<el-input v-model="form.lastModificationField"></el-input>
</el-form-item>
<el-form-item label="Uri字段:">
<el-input v-model="form.uriField"></el-input>
</el-form-item>
<el-form-item label="Root uri字段:">
<el-input v-model="form.rootUriField"></el-input>
</el-form-item>
</el-form>
</el-tab-pane>
</el-tabs>
<span slot="footer" class="dialog-footer">
<el-button @click="handleCloseFun">取 消</el-button>
<el-button type="primary" @click="xmlFileInputDialog">确 定</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;
export default {
props: ["form", "nodeData", "saveOutputDialog", "xmlFileInputDialog"],
data() {
return {
fileNameStore: [],
fileSelection: {},
};
},
created() {},
methods: {
clickFun(graph, val) {
console.log(graph);
this.newGraph = graph;
},
handleCloseFun() {
this.$emit("update:xmlFileInputDialog", false);
},
},
};
</script>
<style lang="less" scoped>
</style>
\ No newline at end of file
......@@ -888,8 +888,39 @@
:saveOutputDialog="saveOutputDialog"
></selectField>
<!-- 去除重复 -->
<toRepeat
ref="toRepeat"
:disabed="true"
:form="form"
:nodeData="nodeData"
:toRepeatDialog.sync="toRepeatDialog"
:saveOutputDialog="saveOutputDialog"
></toRepeat>
<!-- 映射(子转换) -->
<mapping
ref="mapping"
:disabed="true"
:form="form"
:nodeData="nodeData"
:mappingDialog.sync="mappingDialog"
:saveOutputDialog="saveOutputDialog"
></mapping>
<xmlFileInput
ref="xmlFileInput"
:disabed="true"
:form="form"
:nodeData="nodeData"
:xmlFileInputDialog.sync="xmlFileInputDialog"
:saveOutputDialog="saveOutputDialog"
></xmlFileInput>
......@@ -1076,6 +1107,7 @@
<conversionSettings
ref="conversionSettings"
:conversionSettingsDialog.sync="conversionSettingsDialog"
></conversionSettings>
......@@ -1144,6 +1176,9 @@ import setVariable from "../appBulletFrame/setVariable"; //设置变量
import getVariable from "../appBulletFrame/getVariable"; //获取变量
import mergeRecords from "../appBulletFrame/mergeRecords"; //合并记录
import selectField from "../appBulletFrame/selectField"; //选择字段
import toRepeat from "../appBulletFrame/toRepeat" //去除重复
import mapping from "../appBulletFrame/mapping" //映射(子转换)
import xmlFileInput from "../appBulletFrame/xmlFileInput" //xml文件输入
import conversionSettings from "../appBulletFrame/conversionSettings" //转换设置
......@@ -1262,6 +1297,9 @@ export default {
mergeRecordsDialog: false, //合并记录
selectFieldDialog:false,//选择字段
conversionSettingsDialog:false,//转换设置
toRepeatDialog:false,//去除重复
mappingDialog:false,//映射(子转换)
xmlFileInputDialog:false,//xml文件输入
// 流程弹窗组件start----------
// 流程弹窗组件end------------
......@@ -1361,6 +1399,9 @@ export default {
mergeRecords, //合并记录
selectField,//选择字段
conversionSettings,//转换设置
toRepeat,//去除重复
mapping,//映射 (子转换)
xmlFileInput,//xml 文件输入
// 作业弹簧组件end----------------------
// 流程弹窗组件start---------
switchDialog,
......@@ -2060,7 +2101,15 @@ export default {
valueFormat(pamer2).then((res) => {
this.fieldFormat = res;
});
if ( cell.dis == "step27" ||
if (cell.dis == "step22" ||
cell.value.attributes.ctype.value == "Unique") {
this.toRepeatDialog = !this.toRepeatDialog
this.form = this.showDataFunc()
setTimeout(() => {
this.$refs.toRepeat.clickFun(this.graph,this.form);
}, 500);
}else if ( cell.dis == "step27" ||
cell.value.attributes.ctype.value == "SelectValues") {
this.selectFieldDialog = !this.selectFieldDialog
this.form = this.showDataFunc()
......@@ -2380,6 +2429,18 @@ export default {
console.log(cell, "当前节点");
this.conversionSettingsDialog = !this.conversionSettingsDialog
});
menu.addItem("映射(子转换)", null, () => {
console.log(cell, "当前节点");
this.mappingDialog = !this.mappingDialog
});
menu.addItem("Get data from XML", null, () => {
console.log(cell, "当前节点");
this.xmlFileInputDialog = !this.xmlFileInputDialog
});
menu.addSeparator();
} else {
......
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