Commit e9433fa1 by 李耀琨

分组

parent 5a38e4c2
......@@ -14,9 +14,9 @@ ENV = 'development'
# 接口地址
VUE_APP_BASE_API = 'http://192.168.0.21:9889'
VUE_APP_WS_API = 'ws://192.168.0.21:9889'
VUE_APP_FILE_API = 'http://192.168.0.21:9889'
VUE_APP_BASE_API = 'http://192.168.0.71:9888'
VUE_APP_WS_API = 'ws://192.168.0.71:9888'
VUE_APP_FILE_API = 'http://192.168.0.71:9888'
......
......@@ -583,7 +583,7 @@ aside {
//
// $svgUrl:'http://147.1.3.180:9888/ETLWEB-SERVER/etlweb';
// $svgUrl:'http://192.168.0.24:9888/ETLWEB-SERVER/etlweb';
$svgUrl:'http://192.168.0.25:9889/ETLWEB-SERVER/etlweb';
$svgUrl:'http://192.168.0.71:9888/ETLWEB-SERVER/etlweb';
// $svgUrl:'http://192.168.0.44:9882/ETLWEB-SERVER/etlweb';
// .schema { background-image: url($svgUrl/ui/images/schema.svg?scale=16) !important;}
......
......@@ -80,7 +80,7 @@ Vue.config.productionTip = false
const baseUrl = process.env.VUE_APP_BASE_API === '/' ? '' : process.env.VUE_APP_BASE_API
// Vue.prototype.etlWeb = "http://147.1.3.180:9888/ETLWEB-SERVER/etlweb/"
// Vue.prototype.etlWeb = "http://192.168.0.24:9888/ETLWEB-SERVER/etlweb/"
Vue.prototype.etlWeb = "http://192.168.0.21:9889/ETLWEB-SERVER/etlweb/"
Vue.prototype.etlWeb = "http://192.168.0.71:9888/ETLWEB-SERVER/etlweb/"
new Vue({
......
......@@ -16,52 +16,63 @@
v-model="form.main_path"
true-label="Y"
false-label="N"
@change="mainPathChange"
></el-checkbox>
</el-form-item>
<el-form-item label="排列目录:">
<el-row :gutter="10">
<el-col :span="21">
<el-input v-model="form.directory"></el-input>
<el-input
v-model="form.directory"
:disabled="form.main_path == 'N' || !form.main_path"
></el-input>
</el-col>
<el-col class="line" :span="2">
<el-button size="mini">浏览</el-button>
<el-button
size="mini"
:disabled="form.main_path == 'N' || !form.main_path"
>浏览</el-button
>
</el-col>
</el-row>
</el-form-item>
<el-form-item label="临时文件前缀:">
<el-input v-model="form.label"></el-input>
<el-input
v-model="form.prefix"
:disabled="form.main_path == 'N' || !form.main_path"
></el-input>
</el-form-item>
<el-form-item label="增加行号,每组重新开始">
<el-checkbox
v-model="form.main_path"
v-model="form.add_linenr"
true-label="Y"
false-label="N"
@change="mainPathChange"
:disabled="form.main_path == 'N' || !form.main_path"
></el-checkbox>
</el-form-item>
<el-form-item label="行号列名:">
<el-input v-model="form.label"></el-input>
<el-input
v-model="form.linenr_fieldname"
:disabled="
form.main_path == 'N' || !form.main_path || form.add_linenr == 'N'
"
></el-input>
</el-form-item>
<el-form-item label="总返回一个结果行">
<el-checkbox
v-model="form.main_path"
v-model="form.give_back_row"
true-label="Y"
false-label="N"
@change="mainPathChange"
></el-checkbox>
</el-form-item>
</el-form>
结构分组的字段:
<br />
<el-button type="text" @click="selectModify(true)">添加字段</el-button>
<el-button type="text" @click="selectModifyGetTheField"
>获取字段</el-button
>
<el-table :data="tableData" border style="width: 100%">
<el-table-column prop="date" label="分组字段"> </el-table-column>
<el-button type="text" @click="getTheGroup">获取字段</el-button>
<el-table :data="groupFile" border style="width: 100%">
<el-table-column prop="name" label="分组字段"> </el-table-column>
<el-table-column label="操作">
<template slot-scope="scope">
......@@ -74,25 +85,23 @@
<el-button
type="text"
size="small"
@click="deleteField(scope.$index, parameters)"
@click="deleteField(scope.$index, groupFile)"
>删除</el-button
>
</template>
</el-table-column>
</el-table>
<br>
<br>
<br />
<br />
聚合:
<br />
<el-button type="text" @click="selectModify(true)">添加字段</el-button>
<el-button type="text" @click="selectModifyGetTheField"
>获取字段</el-button
>
<el-table :data="tableData" border style="width: 100%">
<el-table-column prop="date" label="分组字段"> </el-table-column>
<el-table-column prop="date" label="Subject"> </el-table-column>
<el-table-column prop="date" label="类型"> </el-table-column>
<el-button type="text" @click="getTheField">获取字段</el-button>
<el-table :data="fields" border style="width: 100%">
<el-table-column prop="aggregate" label="分组字段"> </el-table-column>
<el-table-column prop="subject" label="Subject"> </el-table-column>
<el-table-column prop="type" label="类型"> </el-table-column>
<el-table-column label="操作">
<template slot-scope="scope">
......@@ -105,7 +114,7 @@
<el-button
type="text"
size="small"
@click="deleteField(scope.$index, parameters)"
@click="deleteField(scope.$index, fields)"
>删除</el-button
>
</template>
......@@ -118,7 +127,7 @@
</span>
</el-dialog>
<el-dialog
<!-- <el-dialog
title="添加字段"
:visible.sync="addField"
width="500px"
......@@ -146,17 +155,17 @@
<el-button @click="addField = false">取 消</el-button>
<el-button type="primary" @click="addFieldDetermine">确 定</el-button>
</span>
</el-dialog>
</el-dialog> -->
</div>
</template>
<script>
import { systemDataTypes } from "@/api/kettle/link";
import { systemDataTypes, inputOutputFields } from "@/api/kettle/link";
export default {
props: ["form", "groupingDialog", "saveOutputDialog"],
props: ["form", "groupingDialog", "saveOutputDialog", "nodeData"],
data() {
return {
tableData:[],
groupFile: [],
addField: false,
fields: [],
type: {},
......@@ -170,8 +179,54 @@ export default {
},
methods: {
mainPathChange(){},
selectModifyGetTheField(){},
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.parameters = res;
res.forEach((item, index) => {
console.log(item, index);
this.groupFile.push({
variable: item.name,
});
});
console.log(res);
});
},
getTheField() {
console.log(this.nodeData);
var enc = new mxCodec(mxUtils.createXmlDocument());
var node = enc.encode(this.newGraph.getModel());
this.graphXml = mxUtils.getPrettyXml(node);
// console.log( this.graphXml,"看着了");
let pamerFields = new FormData(); // 创建form对象
pamerFields.append(
"stepName",
this.nodeData.value.attributes.label.value
);
pamerFields.append("graphXml", this.graphXml);
pamerFields.append("before", true);
pamerFields.append("query", "");
inputOutputFields(pamerFields).then((res) => {
console.log(res, "yuiyuiyui");
for (let i of res) {
i.field_name = i.name;
}
this.fields = res;
// this.fields.field_name = res.name
});
},
clickFun(graph, val) {
console.log(graph, "双击获取值");
this.newGraph = graph;
......@@ -185,6 +240,7 @@ selectModifyGetTheField(){},
SystemInfoDialogFun() {
this.handleCloseFun();
this.form.groupFile = JSON.stringify(this.groupFile);
this.form.fields = JSON.stringify(this.fields);
this.saveOutputDialog(this.form);
},
......
<template>
<div class="customConstant">
<el-dialog
title=" 替换NULL值 "
:visible.sync="replaceNullDialog"
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-card class="box-card">
<el-form ref="form" :model="form" label-width="160px">
<el-form-item label="替换所有字段的null值" />
<el-form-item label="值替换为:">
<el-input v-model="form.label"></el-input>
</el-form-item>
<el-form-item label="设置空字符串">
<el-checkbox
v-model="form.main_path"
true-label="Y"
false-label="N"
></el-checkbox>
</el-form-item>
<el-form-item label="掩码(日期)">
<el-select v-model="form.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>
</el-card>
<el-form ref="form" :model="form" label-width="160px">
<el-form-item label="选择字段">
<el-checkbox
v-model="form.main_path"
true-label="Y"
false-label="N"
></el-checkbox>
</el-form-item>
<el-form-item label="选择值类型">
<el-checkbox
v-model="form.main_path"
true-label="Y"
false-label="N"
></el-checkbox>
</el-form-item>
</el-form>
<el-button type="text" @click="fieldClick(true)">添加字段</el-button>
<!-- <el-button type="text" @click="getTheField">获取字段</el-button> -->
<el-table :data="fields" style="width: 100%">
<el-table-column prop="field_name" label="字段名称"> </el-table-column>g
<el-table-column prop="variable_name" label="变量名"> </el-table-column>
<el-table-column prop="variable_type" label="变量活动类型">
</el-table-column>
<el-table-column prop="default_value" 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, fields)"
>删除</el-button
>
</template>
</el-table-column>
</el-table>
<span slot="footer" class="dialog-footer">
<el-button @click="handleCloseFun">取 消</el-button>
<el-button type="primary" @click="getVariableDialogFun"
>确 定</el-button
>
</span>
</el-dialog>
<el-dialog
title="添加字段"
:visible.sync="fieldBox"
width="500px"
:before-close="handleClose"
:modal="false"
>
<el-form ref="form" :model="metadataForm" label-width="160px">
<el-form-item label="字段名称:">
<el-select
v-model="metadataForm.field_name"
style="width: 100%"
clearable
>
<el-option
v-for="item in fieldsName"
:key="item.index"
:label="item.name"
:value="item.name"
/>
</el-select>
</el-form-item>
<el-form-item label="变量名:">
<el-input v-model="metadataForm.variable_name"></el-input>
</el-form-item>
<el-form-item label="变量活动类型:">
<el-select
v-model="metadataForm.variable_type"
style="width: 100%"
clearable
>
<el-option
v-for="item in activityType"
:key="item.id"
:label="item.desc"
:value="item.desc"
/>
</el-select>
</el-form-item>
<el-form-item label="默认值:">
<el-input v-model="metadataForm.default_value"></el-input>
</el-form-item>
</el-form>
<span slot="footer" class="dialog-footer">
<el-button @click="fieldBox = false">取 消</el-button>
<el-button type="primary" @click="addFieldBox">确 定</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,
variableType,
} from "@/api/kettle/link";
export default {
props: [
"connectionNode",
"form",
"nodeData",
"replaceNullDialog",
"saveOutputDialog",
], //从父组件传过来的值
components: {
browseFiles,
},
data() {
return {
newGraph: [],
fieldBox: false,
fields: [],
metadataForm: {},
fieldFormat: {},
fieldCompress: {},
fieldType: {},
dataState: false,
fileType: [],
codingType: [],
fileSelection: {},
activityType: [],
fieldsName: [],
};
},
created() {
this.valueFormatFun();
this.valueMetaFun();
this.formatMapperLineTerminatorFun();
this.availableCharsetsFun();
this.compressionProviderNamesFun();
},
methods: {
clickFun(graph, val) {
console.log(graph, 1);
this.newGraph = graph;
this.fields = JSON.parse(val.fields);
},
handleCloseFun() {
this.$emit("update:replaceNullDialog", false);
},
getVariableDialogFun() {
this.form.fields = JSON.stringify(this.fields);
this.saveOutputDialog(this.form);
this.handleCloseFun();
},
getTheField() {
console.log(this.nodeData);
var enc = new mxCodec(mxUtils.createXmlDocument());
var node = enc.encode(this.newGraph.getModel());
this.graphXml = mxUtils.getPrettyXml(node);
// console.log( this.graphXml,"看着了");
let pamerFields = new FormData(); // 创建form对象
pamerFields.append(
"stepName",
this.nodeData.value.attributes.label.value
);
pamerFields.append("graphXml", this.graphXml);
pamerFields.append("before", true);
pamerFields.append("query", "");
inputOutputFields(pamerFields).then((res) => {
console.log(res, "yuiyuiyui");
for (let i of res) {
i.field_name = i.name;
}
this.fields = res;
// this.fields.field_name = res.name
});
},
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.fieldBox = !this.fieldBox;
this.dataState = state;
let type = new FormData(); // 创建form对象
type.append("query", "");
variableType(type).then((res) => {
this.activityType = res;
});
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);
pamerFields.append("query", "");
inputOutputFields(pamerFields).then((res) => {
console.log(res, "kanzzhelia ");
this.fieldsName = res;
});
if (state) {
this.metadataForm = {};
} else {
this.metadataForm = val;
}
},
addFieldBox() {
this.fieldBox = !this.fieldBox;
if (this.dataState) {
this.fields.push(this.metadataForm);
this.$emit("fields", this.fields);
} 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;
}
</style>
......@@ -80,7 +80,7 @@
v-model="form.main_path"
true-label="Y"
false-label="N"
@change="mainPathChange"
></el-checkbox>
</el-form-item>
......@@ -97,7 +97,6 @@
v-model="form.main_path"
true-label="Y"
false-label="N"
@change="mainPathChange"
></el-checkbox>
</el-form-item>
......@@ -118,7 +117,7 @@
v-model="form.main_path"
true-label="Y"
false-label="N"
@change="mainPathChange"
></el-checkbox>
</el-form-item>
<el-form-item label="值发送邮件正文">
......@@ -126,7 +125,7 @@
v-model="form.main_path"
true-label="Y"
false-label="N"
@change="mainPathChange"
></el-checkbox>
</el-form-item>
<el-form-item label="邮件正文使用HTML格式">
......@@ -134,7 +133,6 @@
v-model="form.main_path"
true-label="Y"
false-label="N"
@change="mainPathChange"
></el-checkbox>
</el-form-item>
......@@ -147,7 +145,6 @@
v-model="form.main_path"
true-label="Y"
false-label="N"
@change="mainPathChange"
></el-checkbox>
</el-form-item>
......@@ -189,7 +186,7 @@
v-model="form.main_path"
true-label="Y"
false-label="N"
@change="mainPathChange"
></el-checkbox>
</el-form-item>
......@@ -212,7 +209,7 @@
v-model="form.main_path"
true-label="Y"
false-label="N"
@change="mainPathChange"
></el-checkbox>
</el-form-item>
......@@ -243,7 +240,7 @@
v-model="form.main_path"
true-label="Y"
false-label="N"
@change="mainPathChange"
></el-checkbox>
</el-form-item>
<el-form-item label="通配符">
......@@ -261,7 +258,7 @@
v-model="form.main_path"
true-label="Y"
false-label="N"
@change="mainPathChange"
></el-checkbox>
</el-form-item>
<el-form-item label="动态 Zip 文件名?">
......@@ -269,7 +266,7 @@
v-model="form.main_path"
true-label="Y"
false-label="N"
@change="mainPathChange"
></el-checkbox>
</el-form-item>
......
......@@ -89,7 +89,7 @@ export default {
// prefix:'http://192.168.0.2:9700/etlweb/',
// prefix:`http://147.1.3.180:9888/ETLWEB-SERVER/etlweb/`,
// prefix:`http://192.168.0.24:9888/ETLWEB-SERVER/etlweb/`,
prefix:`http://192.168.0.21:9889/ETLWEB-SERVER/etlweb/`,
prefix:`http://192.168.0.71:9888/ETLWEB-SERVER/etlweb/`,
// 测试数据开始=====
jobTreeList: [
......
......@@ -973,8 +973,10 @@
<grouping
ref="grouping"
:form="form"
:nodeData="nodeData"
:groupingDialog.sync="groupingDialog"
:doubleClickCell="doubleClickCell"
:saveOutputDialog="saveOutputDialog"
></grouping>
<!-- 流查询 -->
<streamQuery
......@@ -983,6 +985,13 @@
:streamQueryDialog.sync="streamQueryDialog"
:doubleClickCell="doubleClickCell"
></streamQuery>
<!-- 替换NULL值 -->
<replaceNull
ref="replaceNull"
:form="form"
:replaceNullDialog.sync="replaceNullDialog"
:doubleClickCell="doubleClickCell">
</replaceNull>
<!-- 发送邮件 -->
<sendMail
......@@ -1265,6 +1274,7 @@ import jobSettings from "../appBulletFrame/jobSettings"; //作业设置
import importXmlFile from "../appBulletFrame/importXmlFile"; //导出资源库到XML文件
import grouping from "../appBulletFrame/grouping"; //分组
import streamQuery from "../appBulletFrame/streamQuery"; //流查询
import replaceNull from "../appBulletFrame/replaceNull"; //替换null值
import sendMail from "../appBulletFrame/sendMail"; //发送邮件
// 作业弹窗组件开始---------------------------------------
......@@ -1400,6 +1410,7 @@ export default {
importXmlFileDialog: false, //导出资源库到XML文件
groupingDialog: false, //分组
streamQueryDialog: false, //流查询
replaceNullDialog:false, //替换Null值
sendMailDialog: false, //发送邮件
// 流程弹窗组件start----------
// 流程弹窗组件end------------
......@@ -1512,6 +1523,7 @@ export default {
importXmlFile, //导出资源库到XML文件
grouping, //分组
streamQuery, //流查询
replaceNull,//替换null值
sendMail, //发送邮件
// 作业弹簧组件end----------------------
// 流程弹窗组件start---------
......@@ -2203,8 +2215,14 @@ export default {
valueFormat(pamer2).then((res) => {
this.fieldFormat = res;
});
if ( (this.curFileType == "transformation" && cell.dis == "srep167") ||
if ((this.curFileType == "transformation" && cell.dis == "step84") ||
cell.value.attributes.ctype.value == "IfNull") {
this.replaceNullDialog = !this.replaceNullDialog
this.form = this.showDataFunc();
setTimeout(() => {
this.$refs.replaceNull.clickFun(this.graph,this.form);
}, 500);
}else if ( (this.curFileType == "transformation" && cell.dis == "srep167") ||
cell.value.attributes.ctype.value == "MappingInput") {
this.mappingInputDialog = !this.mappingInputDialog
this.form = this.showDataFunc();
......@@ -2646,9 +2664,9 @@ export default {
let root = this.graph.getDefaultParent();
// this.doubleClickCell = cell;
console.log("root-", root, "cell", cell);
let channelLogTable = JSON.parse(root.getAttribute("channelLogTable"));
// let channelLogTable = JSON.parse(root.getAttribute("channelLogTable"));
console.log("channelLogTable-", channelLogTable);
// console.log("channelLogTable-", channelLogTable);
let q = {};
let obj = root.value.attributes;
......
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