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
Expand all
Show whitespace changes
Inline
Side-by-side
Showing
6 changed files
with
341 additions
and
34 deletions
+341
-34
src/views/dashboard-kettle/components/appBulletFrame/conversionSettings.vue
+32
-32
src/views/dashboard-kettle/components/appBulletFrame/mapping.vue
+0
-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
+0
-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 @@
<el-table
:data=
"fields"
style=
"width: 100%"
>
<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"
>
<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.
nam
e"
></el-input>
<el-input
v-model=
"logEntry.
tabl
e"
></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.
nam
e"
></el-input>
<el-input
v-model=
"conversionForm.
tabl
e"
></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.
nam
e"
></el-input>
<el-input
v-model=
"conversionForm.
maxdat
e"
></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=
"
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"
>
<
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.
nam
e"
></el-input>
<el-input
v-model=
"conversionForm.
feedback_siz
e"
></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.
nam
e"
></el-input>
<el-input
v-model=
"conversionForm.
shared_objects_fil
e"
></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.
nam
e"
></el-input>
<el-input
v-model=
"conversionForm.
trans_typ
e"
></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
;
...
...
src/views/dashboard-kettle/components/appBulletFrame/mapping.vue
0 → 100644
View file @
d1677b65
This diff is collapsed.
Click to expand it.
src/views/dashboard-kettle/components/appBulletFrame/selectField.vue
View file @
d1677b65
...
...
@@ -361,7 +361,6 @@ export default {
metadataBox
:
false
,
selectModifyBox
:
false
,
removeFieldBox
:
false
,
fields
:[],
remove
:[],
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
This diff is collapsed.
Click to expand it.
src/views/dashboard-kettle/components/designer/mxgraphDesigner.vue
View file @
d1677b65
...
...
@@ -888,6 +888,37 @@
: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
()
...
...
@@ -2381,6 +2430,18 @@ export default {
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
{
//画布右键
...
...
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