Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
E
ETL-admin
Overview
Overview
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
莫晓莉
ETL-admin
Commits
d1677b65
Commit
d1677b65
authored
May 20, 2021
by
李耀琨
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
画好映射 (子转换),Get data from XML 页面
完成去除重复记录模块
parent
1de08991
Show whitespace changes
Inline
Side-by-side
Showing
6 changed files
with
1377 additions
and
34 deletions
+1377
-34
src/views/dashboard-kettle/components/appBulletFrame/conversionSettings.vue
+32
-32
src/views/dashboard-kettle/components/appBulletFrame/mapping.vue
+601
-0
src/views/dashboard-kettle/components/appBulletFrame/selectField.vue
+0
-1
src/views/dashboard-kettle/components/appBulletFrame/toRepeat.vue
+247
-0
src/views/dashboard-kettle/components/appBulletFrame/xmlFileInput.vue
+435
-0
src/views/dashboard-kettle/components/designer/mxgraphDesigner.vue
+62
-1
No files found.
src/views/dashboard-kettle/components/appBulletFrame/conversionSettings.vue
View file @
d1677b65
...
@@ -70,9 +70,9 @@
...
@@ -70,9 +70,9 @@
<el-table
:data=
"fields"
style=
"width: 100%"
>
<el-table
:data=
"fields"
style=
"width: 100%"
>
<el-table-column
prop=
"name"
label=
"命名参数"
>
</el-table-column>
<el-table-column
prop=
"name"
label=
"命名参数"
>
</el-table-column>
<el-table-column
prop=
"
typ
e"
label=
"默认值"
>
</el-table-column>
<el-table-column
prop=
"
default_valu
e"
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"
>
<el-table-column
label=
"操作"
width=
"100px"
>
<template
slot-scope=
"scope"
>
<template
slot-scope=
"scope"
>
...
@@ -104,38 +104,38 @@
...
@@ -104,38 +104,38 @@
<div
class=
"topRight"
>
<div
class=
"topRight"
>
<el-form
:model=
"logEntry"
label-width=
"200px"
>
<el-form
:model=
"logEntry"
label-width=
"200px"
>
<el-form-item
label=
"日志数据库连接:"
>
<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>
<el-form-item
label=
"日志表模式:"
>
<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>
<el-form-item
label=
"日志表:"
>
<el-form-item
label=
"日志表:"
>
<el-input
v-model=
"logEntry.
nam
e"
></el-input>
<el-input
v-model=
"logEntry.
tabl
e"
></el-input>
</el-form-item>
</el-form-item>
<el-form-item
label=
"日志记录间隔时间(秒):"
>
<el-form-item
label=
"日志记录间隔时间(秒):"
v-if=
"this.switchState == 1 || this.switchState == 3"
>
<el-input
v-model=
"logEntry.
name
"
></el-input>
<el-input
v-model=
"logEntry.
size_limit_lines
"
></el-input>
</el-form-item>
</el-form-item>
<el-form-item
label=
"日志记录过时时间(天):"
>
<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>
<el-form-item
label=
"在内存中保存的日志行数限制:"
>
<el-form-item
label=
"在内存中保存的日志行数限制:"
v-if=
"this.switchState == 1"
>
<el-input
v-model=
"logEntry.
name
"
></el-input>
<el-input
v-model=
"logEntry.
timeout_days
"
></el-input>
</el-form-item>
</el-form-item>
</el-form>
</el-form>
</div>
</div>
<div
class=
"lowerRight"
>
<div
class=
"lowerRight"
>
<el-table
<el-table
:data=
"tableData"
:data=
"tableData"
height=
"
250
"
height=
"
250
"
border
border
style=
"width: 100%"
style=
"width: 100%"
:row-style=
"{ height: '10px' }"
:row-style=
"{ height: '10px' }"
:cell-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=
"name"
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=
"
address
"
label=
"字段描述"
></el-table-column>
<el-table-column
prop=
"
description
"
label=
"字段描述"
></el-table-column>
<el-table-column
label=
"操作"
width=
"60"
>
<el-table-column
label=
"操作"
width=
"60"
>
<
template
slot-scope=
"scope"
>
<
template
slot-scope=
"scope"
>
<el-button
<el-button
...
@@ -154,19 +154,19 @@
...
@@ -154,19 +154,19 @@
<el-tab-pane
label=
"日期"
>
<el-tab-pane
label=
"日期"
>
<el-form
:model=
"conversionForm"
label-width=
"160px"
>
<el-form
:model=
"conversionForm"
label-width=
"160px"
>
<el-form-item
label=
"最大日期数据库连接:"
>
<el-form-item
label=
"最大日期数据库连接:"
>
<el-input
v-model=
"conversionForm.
nam
e"
></el-input>
<el-input
v-model=
"conversionForm.
tabl
e"
></el-input>
</el-form-item>
</el-form-item>
<el-form-item
label=
"最大日期表:"
>
<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>
<el-form-item
label=
"最大日期字段:"
>
<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>
<el-form-item
label=
"最大日期偏移(秒):"
>
<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>
<el-form-item
label=
"最大日期区别(秒):"
>
<el-form-item
label=
"最大日期区别(秒):"
>
<el-input
v-model=
"conversionForm.
nam
e"
></el-input>
<el-input
v-model=
"conversionForm.
maxdat
e"
></el-input>
</el-form-item>
</el-form-item>
</el-form>
</el-form>
</el-tab-pane>
</el-tab-pane>
...
@@ -176,9 +176,9 @@
...
@@ -176,9 +176,9 @@
<el-table
:data=
"fields"
style=
"width: 100%"
>
<el-table
:data=
"fields"
style=
"width: 100%"
>
<el-table-column
prop=
"name"
label=
"数据库连接"
>
</el-table-column>
<el-table-column
prop=
"name"
label=
"数据库连接"
>
</el-table-column>
<el-table-column
prop=
"
typ
e"
label=
"表"
>
</el-table-column>
<el-table-column
prop=
"
default_valu
e"
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"
>
<el-table-column
label=
"操作"
width=
"100px"
>
<
template
slot-scope=
"scope"
>
<
template
slot-scope=
"scope"
>
...
@@ -201,40 +201,40 @@
...
@@ -201,40 +201,40 @@
<el-tab-pane
label=
"杂项"
>
<el-tab-pane
label=
"杂项"
>
<el-form
:model=
"conversionForm"
label-width=
"230px"
>
<el-form
:model=
"conversionForm"
label-width=
"230px"
>
<el-form-item
label=
"记录集合里的记录数:"
>
<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>
<el-form-item
label=
"转换时是否在日志中记录反馈行?:"
>
<el-form-item
label=
"转换时是否在日志中记录反馈行?:"
>
<el-checkbox
<el-checkbox
v-model=
"conversionForm.
errorIgnored
"
v-model=
"conversionForm.
feedback_shown
"
true-label=
"Y"
true-label=
"Y"
false-label=
"N"
false-label=
"N"
></el-checkbox>
></el-checkbox>
</el-form-item>
</el-form-item>
<el-form-item
label=
"每个反馈行的处理记录数:"
>
<el-form-item
label=
"每个反馈行的处理记录数:"
>
<el-input
v-model=
"conversionForm.
nam
e"
></el-input>
<el-input
v-model=
"conversionForm.
feedback_siz
e"
></el-input>
</el-form-item>
</el-form-item>
<el-form-item
label=
"使用唯一连接:"
>
<el-form-item
label=
"使用唯一连接:"
>
<el-checkbox
<el-checkbox
v-model=
"conversionForm.
errorIgnored
"
v-model=
"conversionForm.
unique_connections
"
true-label=
"Y"
true-label=
"Y"
false-label=
"N"
false-label=
"N"
></el-checkbox>
></el-checkbox>
</el-form-item>
</el-form-item>
<el-form-item
label=
"共享对象文件:"
>
<el-form-item
label=
"共享对象文件:"
>
<el-input
v-model=
"conversionForm.
nam
e"
></el-input>
<el-input
v-model=
"conversionForm.
shared_objects_fil
e"
></el-input>
</el-form-item>
</el-form-item>
<el-form-item
label=
"管理线程优先级:"
>
<el-form-item
label=
"管理线程优先级:"
>
<el-checkbox
<el-checkbox
v-model=
"conversionForm.
errorIgnored
"
v-model=
"conversionForm.
using_thread_priorities
"
true-label=
"Y"
true-label=
"Y"
false-label=
"N"
false-label=
"N"
></el-checkbox>
></el-checkbox>
</el-form-item>
</el-form-item>
<el-form-item
label=
"转换引擎类型:"
>
<el-form-item
label=
"转换引擎类型:"
>
<el-input
v-model=
"conversionForm.
nam
e"
></el-input>
<el-input
v-model=
"conversionForm.
trans_typ
e"
></el-input>
</el-form-item>
</el-form-item>
</el-form>
</el-form>
</el-tab-pane>
</el-tab-pane>
...
@@ -242,17 +242,17 @@
...
@@ -242,17 +242,17 @@
<el-form
:model=
"conversionForm"
label-width=
"180px"
>
<el-form
:model=
"conversionForm"
label-width=
"180px"
>
<el-form-item
label=
"开启步骤性能监控?:"
>
<el-form-item
label=
"开启步骤性能监控?:"
>
<el-checkbox
<el-checkbox
v-model=
"conversionForm.
errorIgnored
"
v-model=
"conversionForm.
capture_step_performance
"
true-label=
"Y"
true-label=
"Y"
false-label=
"N"
false-label=
"N"
></el-checkbox>
></el-checkbox>
</el-form-item>
</el-form-item>
<el-form-item
label=
"步骤性能监测间隔(毫秒):"
>
<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>
<el-form-item
label=
"内存中最大的快照数量:"
>
<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-item>
</el-form>
</el-form>
</el-tab-pane>
</el-tab-pane>
...
@@ -357,7 +357,7 @@ export default {
...
@@ -357,7 +357,7 @@ export default {
};
};
</
script
>
</
script
>
<
style
>
<
style
lang=
"scss"
scoped
>
.leftDiv
{
.leftDiv
{
width
:
150px
;
width
:
150px
;
height
:
500px
;
height
:
500px
;
...
...
src/views/dashboard-kettle/components/appBulletFrame/mapping.vue
0 → 100644
View file @
d1677b65
<
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
>
src/views/dashboard-kettle/components/appBulletFrame/selectField.vue
View file @
d1677b65
...
@@ -361,7 +361,6 @@ export default {
...
@@ -361,7 +361,6 @@ export default {
metadataBox
:
false
,
metadataBox
:
false
,
selectModifyBox
:
false
,
selectModifyBox
:
false
,
removeFieldBox
:
false
,
removeFieldBox
:
false
,
fields
:[],
fields
:[],
remove
:[],
remove
:[],
meta
:[],
meta
:[],
...
...
src/views/dashboard-kettle/components/appBulletFrame/toRepeat.vue
0 → 100644
View file @
d1677b65
<
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
>
src/views/dashboard-kettle/components/appBulletFrame/xmlFileInput.vue
0 → 100644
View file @
d1677b65
<
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
src/views/dashboard-kettle/components/designer/mxgraphDesigner.vue
View file @
d1677b65
...
@@ -888,6 +888,37 @@
...
@@ -888,6 +888,37 @@
:saveOutputDialog=
"saveOutputDialog"
:saveOutputDialog=
"saveOutputDialog"
></selectField>
></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 @@
...
@@ -1076,6 +1107,7 @@
<conversionSettings
<conversionSettings
ref=
"conversionSettings"
ref=
"conversionSettings"
:conversionSettingsDialog
.
sync=
"conversionSettingsDialog"
:conversionSettingsDialog
.
sync=
"conversionSettingsDialog"
></conversionSettings>
></conversionSettings>
...
@@ -1144,6 +1176,9 @@ import setVariable from "../appBulletFrame/setVariable"; //设置变量
...
@@ -1144,6 +1176,9 @@ import setVariable from "../appBulletFrame/setVariable"; //设置变量
import
getVariable
from
"../appBulletFrame/getVariable"
;
//获取变量
import
getVariable
from
"../appBulletFrame/getVariable"
;
//获取变量
import
mergeRecords
from
"../appBulletFrame/mergeRecords"
;
//合并记录
import
mergeRecords
from
"../appBulletFrame/mergeRecords"
;
//合并记录
import
selectField
from
"../appBulletFrame/selectField"
;
//选择字段
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"
//转换设置
import
conversionSettings
from
"../appBulletFrame/conversionSettings"
//转换设置
...
@@ -1262,6 +1297,9 @@ export default {
...
@@ -1262,6 +1297,9 @@ export default {
mergeRecordsDialog
:
false
,
//合并记录
mergeRecordsDialog
:
false
,
//合并记录
selectFieldDialog
:
false
,
//选择字段
selectFieldDialog
:
false
,
//选择字段
conversionSettingsDialog
:
false
,
//转换设置
conversionSettingsDialog
:
false
,
//转换设置
toRepeatDialog
:
false
,
//去除重复
mappingDialog
:
false
,
//映射(子转换)
xmlFileInputDialog
:
false
,
//xml文件输入
// 流程弹窗组件start----------
// 流程弹窗组件start----------
// 流程弹窗组件end------------
// 流程弹窗组件end------------
...
@@ -1361,6 +1399,9 @@ export default {
...
@@ -1361,6 +1399,9 @@ export default {
mergeRecords
,
//合并记录
mergeRecords
,
//合并记录
selectField
,
//选择字段
selectField
,
//选择字段
conversionSettings
,
//转换设置
conversionSettings
,
//转换设置
toRepeat
,
//去除重复
mapping
,
//映射 (子转换)
xmlFileInput
,
//xml 文件输入
// 作业弹簧组件end----------------------
// 作业弹簧组件end----------------------
// 流程弹窗组件start---------
// 流程弹窗组件start---------
switchDialog
,
switchDialog
,
...
@@ -2060,7 +2101,15 @@ export default {
...
@@ -2060,7 +2101,15 @@ export default {
valueFormat
(
pamer2
).
then
((
res
)
=>
{
valueFormat
(
pamer2
).
then
((
res
)
=>
{
this
.
fieldFormat
=
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"
)
{
cell
.
value
.
attributes
.
ctype
.
value
==
"SelectValues"
)
{
this
.
selectFieldDialog
=
!
this
.
selectFieldDialog
this
.
selectFieldDialog
=
!
this
.
selectFieldDialog
this
.
form
=
this
.
showDataFunc
()
this
.
form
=
this
.
showDataFunc
()
...
@@ -2381,6 +2430,18 @@ export default {
...
@@ -2381,6 +2430,18 @@ export default {
this
.
conversionSettingsDialog
=
!
this
.
conversionSettingsDialog
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
();
menu
.
addSeparator
();
}
else
{
}
else
{
//画布右键
//画布右键
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment