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
09108f8e
Commit
09108f8e
authored
Aug 20, 2021
by
李耀琨
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
拆分字段,字符串操作
parent
45efa79b
Show whitespace changes
Inline
Side-by-side
Showing
8 changed files
with
1254 additions
and
239 deletions
+1254
-239
src/views/dashboard-kettle/components/appBulletFrame/columnToRow.vue
+447
-0
src/views/dashboard-kettle/components/appBulletFrame/rowToColumn.vue
+15
-239
src/views/dashboard-kettle/components/appBulletFrame/splitFields.vue
+304
-0
src/views/dashboard-kettle/components/appBulletFrame/stringOperation.vue
+409
-0
src/views/dashboard-kettle/components/appBulletFrame/xmlFileInput.vue
+3
-0
src/views/dashboard-kettle/components/designer/FlowDesigner.vue
+3
-0
src/views/dashboard-kettle/components/designer/mxgraphDesigner--change.vue
+3
-0
src/views/dashboard-kettle/components/designer/mxgraphDesigner.vue
+70
-0
No files found.
src/views/dashboard-kettle/components/appBulletFrame/columnToRow.vue
0 → 100644
View file @
09108f8e
<
template
>
<div
class=
"getSystemInformation"
>
<el-dialog
title=
" 列转行"
:visible
.
sync=
"columnToRowDialog"
width=
"800px"
:before-close=
"handleCloseFun"
>
<el-form
ref=
"form"
:model=
"form"
label-width=
"120px"
>
<el-form-item
label=
"步骤名称:"
>
<el-input
v-model=
"form.label"
></el-input>
</el-form-item>
</el-form>
<el-card
class=
"box-card"
>
构成分组的字段:
<br
/>
<el-button
type=
"text"
@
click=
"addSheetFun(true)"
style=
"margin: 10px"
>
添加字段
</el-button
>
<el-button
type=
"text"
@
click=
"getTheFieldFun"
>
获取字段
</el-button>
<el-table
:data=
"group"
style=
"width: 100%"
>
<el-table-column
type=
"index"
width=
"50"
>
</el-table-column>
<el-table-column
prop=
"name"
label=
"分组字段"
>
</el-table-column>
<el-table-column
label=
"操作"
>
<template
slot-scope=
"scope"
>
<el-button
@
click=
"addSheetFun(false, scope.row)"
type=
"text"
size=
"small"
>
编辑
</el-button
>
<el-button
type=
"text"
size=
"small"
@
click=
"deleteRow(scope.$index, group)"
>
删除
</el-button
>
</
template
>
</el-table-column>
</el-table>
</el-card>
<br>
<el-card
class=
"box-card"
>
目标字段
<br
/>
<el-button
type=
"text"
@
click=
"addSheet(true)"
style=
"margin: 10px"
>
添加字段
</el-button
>
<el-button
type=
"text"
@
click=
"getTheField"
>
获取字段
</el-button>
<el-table
:data=
"fields"
style=
"width: 100%"
>
<el-table-column
type=
"index"
width=
"50"
>
</el-table-column>
<el-table-column
prop=
"target_name"
label=
"目标字段"
>
</el-table-column>
<el-table-column
prop=
"field_name"
label=
"数据字段"
>
</el-table-column>
<el-table-column
prop=
"key_value"
label=
"关键字值"
>
</el-table-column>
<el-table-column
prop=
"target_type"
label=
"类型"
>
</el-table-column>
<el-table-column
prop=
"target_format"
label=
"格式化"
>
</el-table-column>
<el-table-column
prop=
"target_length"
label=
"长度"
>
</el-table-column>
<el-table-column
prop=
"target_precision"
label=
"精度"
>
</el-table-column>
<el-table-column
prop=
"target_currency_symbol"
label=
"货币类型"
>
</el-table-column>
<el-table-column
prop=
"target_decimal_symbol"
label=
"10进制的"
>
</el-table-column>
<el-table-column
prop=
"target_grouping_symbol"
label=
"分组"
>
</el-table-column>
<el-table-column
prop=
"target_null_string"
label=
"Null if"
>
</el-table-column>
<el-table-column
prop=
"target_aggregation_type"
label=
"聚合"
>
<
template
slot-scope=
"scope"
>
{{
getTarget_aggregation_type
(
scope
.
row
.
target_aggregation_type
)
}}
</
template
>
</el-table-column>
<el-table-column
label=
"操作"
width=
"90px"
>
<
template
slot-scope=
"scope"
>
<el-button
@
click=
"addSheet(false, scope.row)"
type=
"text"
size=
"small"
>
编辑
</el-button
>
<el-button
type=
"text"
size=
"small"
@
click=
"deleteRow(scope.$index, fields)"
>
删除
</el-button
>
</
template
>
</el-table-column>
</el-table>
</el-card>
<span
slot=
"footer"
class=
"dialog-footer"
>
<el-button
@
click=
"handleCloseFun"
>
取 消
</el-button>
<el-button
type=
"primary"
@
click=
"SystemInfoDialogFun"
>
确 定
</el-button>
</span>
</el-dialog>
<el-dialog
:title=
"dataStatus ? '新增' : '修改'"
:visible
.
sync=
"addField"
width=
"500px"
:before-close=
"handleClose"
:modal=
"false"
>
<el-form
ref=
"form"
:model=
"fiel"
label-width=
"160px"
>
<el-form-item
label=
"目标字段:"
>
<el-input
v-model=
"fiel.target_name"
></el-input>
</el-form-item>
<el-form-item
label=
"数据字段:"
>
<el-input
v-model=
"fiel.field_name"
></el-input>
</el-form-item>
<el-form-item
label=
"关键字值:"
>
<el-input
v-model=
"fiel.key_value"
></el-input>
</el-form-item>
<el-form-item
label=
"类型:"
>
<el-select
v-model=
"fiel.target_type"
style=
"width: 100%"
clearable
>
<el-option
v-for=
"item in fieldType"
:key=
"item.id"
:label=
"item.name"
:value=
"item.name"
/>
</el-select>
</el-form-item>
<el-form-item
label=
"格式化:"
>
<el-select
v-model=
"fiel.target_format"
style=
"width: 100%"
clearable
>
<el-option
v-for=
"item in fieldFormat"
:key=
"item.index"
:label=
"item.name"
:value=
"item.name"
/>
</el-select>
</el-form-item>
<el-form-item
label=
"长度:"
>
<el-input
v-model=
"fiel.target_length"
></el-input>
</el-form-item>
<el-form-item
label=
"精确:"
>
<el-input
v-model=
"fiel.target_precision"
></el-input>
</el-form-item>
<el-form-item
label=
"货币类型:"
>
<el-input
v-model=
"fiel.target_currency_symbol"
></el-input>
</el-form-item>
<el-form-item
label=
"10进制的:"
>
<el-input
v-model=
"fiel.target_decimal_symbol"
></el-input>
</el-form-item>
<el-form-item
label=
"分组:"
>
<el-input
v-model=
"fiel.target_grouping_symbol"
></el-input>
</el-form-item>
<el-form-item
label=
"Null if:"
>
<el-input
v-model=
"fiel.target_null_string"
></el-input>
</el-form-item>
<el-form-item
label=
"聚合:"
>
<el-select
v-model=
"fiel.target_aggregation_type"
style=
"width: 100%"
clearable
>
<el-option
label=
"Sum"
value=
"SUM"
></el-option>
<el-option
label=
"Average"
value=
"AVERAGE"
></el-option>
<el-option
label=
"Minimum"
value=
"MIN"
></el-option>
<el-option
label=
"Maximum"
value=
"MAX"
></el-option>
<el-option
label=
"Number of Values"
value=
"COUNT_ALL"
></el-option>
<el-option
label=
"Concatenate strings separated by ,"
value=
"CONCAT_COMMA"
></el-option>
</el-select>
</el-form-item>
</el-form>
<span
slot=
"footer"
class=
"dialog-footer"
>
<el-button
@
click=
"addField = false"
>
取 消
</el-button>
<el-button
type=
"primary"
@
click=
"addFieldDetermine"
>
确 定
</el-button>
</span>
</el-dialog>
<el-dialog
:title=
"groupStatus ? '新增' : '修改'"
:visible
.
sync=
"addGroup"
width=
"500px"
:before-close=
"handleClose"
:modal=
"false"
>
<el-form
ref=
"form"
:model=
"groupFiel"
label-width=
"160px"
>
<el-form-item
label=
"名称:"
>
<el-input
v-model=
"groupFiel.name"
></el-input>
</el-form-item>
</el-form>
<span
slot=
"footer"
class=
"dialog-footer"
>
<el-button
@
click=
"addGroup = false"
>
取 消
</el-button>
<el-button
type=
"primary"
@
click=
"addGroupDetermine"
>
确 定
</el-button>
</span>
</el-dialog>
</div>
</template>
<
script
>
import
mxgraph
from
"@/utils/mxgraph"
;
const
{
mxGraph
,
mxUtils
,
mxEvent
,
mxKeyHandler
,
mxRubberband
,
mxConstants
,
mxStencilRegistry
,
mxStencil
,
mxCodec
,
mxGraphModel
,
mxGeometry
,
}
=
mxgraph
;
import
{
systemDataTypes
,
valueFormat
,
valueMeta
,
inputOutputFields
,
}
from
"@/api/kettle/link"
;
export
default
{
props
:
[
"form"
,
"columnToRowDialog"
,
"saveOutputDialog"
,
"nodeData"
],
data
()
{
return
{
addField
:
false
,
fields
:
[],
type
:
{},
dataStatus
:
false
,
fiel
:
{},
fieldFormat
:
[],
fieldType
:
[],
group
:[],
groupFiel
:{},
groupStatus
:
false
,
addGroup
:
false
,
};
},
created
()
{
this
.
systemDataTypesFun
();
},
methods
:
{
clickFun
(
graph
,
val
)
{
console
.
log
(
graph
,
"双击获取值"
);
this
.
newGraph
=
graph
;
console
.
log
(
val
,
"拿到form"
);
this
.
fields
=
JSON
.
parse
(
val
.
fields
);
this
.
group
=
JSON
.
parse
(
val
.
group
);
},
getTheFieldFun
(){
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"
);
this
.
group
=
res
;
// this.fields.field_name = res.name
});
},
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"
);
let
i
=
0
res
.
forEach
(
item
=>
{
i
++
this
.
fields
.
push
({
target_name
:
'字段'
+
i
,
field_name
:
item
.
name
,
target_type
:
item
.
type
,
target_format
:
item
.
conversionMask
,
target_length
:
item
.
length
,
target_precision
:
item
.
precision
,
target_currency_symbol
:
item
.
currencyType
,
target_grouping_symbol
:
item
.
group
,
target_null_string
:
item
.
nullable
})
});
// this.fields.field_name = res.name
});
},
handleCloseFun
()
{
this
.
$emit
(
"update:columnToRowDialog"
,
false
);
},
SystemInfoDialogFun
()
{
this
.
handleCloseFun
();
this
.
form
.
fields
=
JSON
.
stringify
(
this
.
fields
);
this
.
form
.
group
=
JSON
.
stringify
(
this
.
group
);
this
.
saveOutputDialog
(
this
.
form
);
},
addFieldDetermine
()
{
this
.
addField
=
!
this
.
addField
;
if
(
this
.
dataStatus
)
{
this
.
fields
.
push
(
this
.
fiel
);
}
else
{
}
},
addGroupDetermine
()
{
this
.
addGroup
=
!
this
.
addGroup
;
if
(
this
.
groupStatus
)
{
this
.
group
.
push
(
this
.
groupFiel
);
}
else
{
}
},
// 关闭弹框
handleClose
(
done
)
{
this
.
$confirm
(
"确认关闭?"
)
.
then
((
_
)
=>
{
done
();
})
.
catch
((
_
)
=>
{});
},
deleteRow
(
index
,
rows
)
{
rows
.
splice
(
index
,
1
);
},
addSheet
(
state
,
val
)
{
this
.
valueFormatFun
();
this
.
valueMetaFun
();
this
.
addField
=
!
this
.
addField
;
this
.
dataStatus
=
state
;
if
(
state
)
{
this
.
fiel
=
{};
}
else
{
this
.
fiel
=
val
;
}
},
addSheetFun
(
state
,
val
)
{
this
.
addGroup
=
!
this
.
addGroup
;
this
.
groupStatus
=
state
;
if
(
state
)
{
this
.
groupFiel
=
{};
}
else
{
this
.
groupFiel
=
val
;
}
},
systemDataTypesFun
()
{
systemDataTypes
().
then
((
res
)
=>
{
this
.
type
=
res
;
});
},
valueMetaFun
()
{
valueMeta
().
then
((
res
)
=>
{
this
.
fieldType
=
res
;
});
},
valueFormatFun
()
{
let
pamer2
=
new
FormData
();
// 创建form对象
pamer2
.
append
(
"valueType"
,
"all"
);
valueFormat
(
pamer2
).
then
((
res
)
=>
{
this
.
fieldFormat
=
res
;
});
},
// 判断伤残等级
getTarget_aggregation_type
(
type
)
{
// console.log(type, typeof type)
this
.
target_aggregation_type
=
type
;
var
category
=
""
;
switch
(
type
)
{
case
"SUM"
:
category
=
"Sum"
;
break
;
case
"AVERAGE"
:
category
=
"Average"
;
break
;
case
"MIN"
:
category
=
"Minimum"
;
break
;
case
"MAX"
:
category
=
"Maximum"
;
break
;
case
"COUNT_ALL"
:
category
=
"Number of Values"
;
break
;
case
"CONCAT_COMMA"
:
category
=
"Concatenate strings separated by ,"
;
break
;
}
return
category
;
},
},
};
</
script
>
<
style
lang=
"scss"
scoped
>
*
{
outline
:
none
;
}
</
style
>
src/views/dashboard-kettle/components/appBulletFrame/rowToColumn.vue
View file @
09108f8e
...
...
@@ -10,38 +10,11 @@
<el-form-item
label=
"步骤名称:"
>
<el-input
v-model=
"form.label"
></el-input>
</el-form-item>
<el-form-item
label=
"Key字段"
>
<el-input
v-model=
"form.typefield"
></el-input>
</el-form-item>
</el-form>
<el-card
class=
"box-card"
>
构成分组的字段:
<br
/>
<el-button
type=
"text"
@
click=
"addSheetFun(true)"
style=
"margin: 10px"
>
添加字段
</el-button
>
<el-button
type=
"text"
@
click=
"getTheFieldFun"
>
获取字段
</el-button>
<el-table
:data=
"group"
style=
"width: 100%"
>
<el-table-column
type=
"index"
width=
"50"
>
</el-table-column>
<el-table-column
prop=
"name"
label=
"分组字段"
>
</el-table-column>
<el-table-column
label=
"操作"
>
<template
slot-scope=
"scope"
>
<el-button
@
click=
"addSheetFun(false, scope.row)"
type=
"text"
size=
"small"
>
编辑
</el-button
>
<el-button
type=
"text"
size=
"small"
@
click=
"deleteRow(scope.$index, group)"
>
删除
</el-button
>
</
template
>
</el-table-column>
</el-table>
</el-card>
<br>
<el-card
class=
"box-card"
>
...
...
@@ -53,31 +26,11 @@
<el-button
type=
"text"
@
click=
"getTheField"
>
获取字段
</el-button>
<el-table
:data=
"fields"
style=
"width: 100%"
>
<el-table-column
type=
"index"
width=
"50"
>
</el-table-column>
<el-table-column
prop=
"target_name"
label=
"目标字段"
>
</el-table-column>
<el-table-column
prop=
"field_name"
label=
"数据字段"
>
</el-table-column>
<el-table-column
prop=
"key_value"
label=
"关键字值"
>
</el-table-column>
<el-table-column
prop=
"target_type"
label=
"类型"
>
</el-table-column>
<el-table-column
prop=
"target_format"
label=
"格式化"
>
</el-table-column>
<el-table-column
prop=
"target_length"
label=
"长度"
>
</el-table-column>
<el-table-column
prop=
"target_precision"
label=
"精度"
>
<el-table-column
prop=
"name"
label=
"字段名称"
>
</el-table-column>
<el-table-column
prop=
"
target_currency_symbol"
label=
"货币类型
"
>
<el-table-column
prop=
"
value"
label=
"Key值
"
>
</el-table-column>
<el-table-column
prop=
"target_decimal_symbol"
label=
"10进制的"
>
</el-table-column>
<el-table-column
prop=
"target_grouping_symbol"
label=
"分组"
>
</el-table-column>
<el-table-column
prop=
"target_null_string"
label=
"Null if"
>
</el-table-column>
<el-table-column
prop=
"target_aggregation_type"
label=
"聚合"
>
<
template
slot-scope=
"scope"
>
{{
getTarget_aggregation_type
(
scope
.
row
.
target_aggregation_type
)
}}
</
template
>
</el-table-column>
<el-table-column
prop=
"norm"
label=
"Value字段"
>
</el-table-column>
<el-table-column
label=
"操作"
width=
"90px"
>
<template
slot-scope=
"scope"
>
<el-button
...
...
@@ -110,78 +63,18 @@
:modal=
"false"
>
<el-form
ref=
"form"
:model=
"fiel"
label-width=
"160px"
>
<el-form-item
label=
"目标字段:"
>
<el-input
v-model=
"fiel.target_name"
></el-input>
</el-form-item>
<el-form-item
label=
"数据字段:"
>
<el-input
v-model=
"fiel.field_name"
></el-input>
</el-form-item>
<el-form-item
label=
"关键字值:"
>
<el-input
v-model=
"fiel.key_value"
></el-input>
</el-form-item>
<el-form-item
label=
"类型:"
>
<el-select
v-model=
"fiel.target_type"
style=
"width: 100%"
clearable
>
<el-option
v-for=
"item in fieldType"
:key=
"item.id"
:label=
"item.name"
:value=
"item.name"
/>
</el-select>
<el-form-item
label=
"字段名称:"
>
<el-input
v-model=
"fiel.name"
></el-input>
</el-form-item>
<el-form-item
label=
"格式化:"
>
<el-select
v-model=
"fiel.target_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
label=
"Key值:"
>
<el-input
v-model=
"fiel.value"
></el-input>
</el-form-item>
<el-form-item
label=
"
长度
:"
>
<el-input
v-model=
"fiel.
target_length
"
></el-input>
<el-form-item
label=
"
Value字段
:"
>
<el-input
v-model=
"fiel.
norm
"
></el-input>
</el-form-item>
<el-form-item
label=
"精确:"
>
<el-input
v-model=
"fiel.target_precision"
></el-input>
</el-form-item>
<el-form-item
label=
"货币类型:"
>
<el-input
v-model=
"fiel.target_currency_symbol"
></el-input>
</el-form-item>
<el-form-item
label=
"10进制的:"
>
<el-input
v-model=
"fiel.target_decimal_symbol"
></el-input>
</el-form-item>
<el-form-item
label=
"分组:"
>
<el-input
v-model=
"fiel.target_grouping_symbol"
></el-input>
</el-form-item>
<el-form-item
label=
"Null if:"
>
<el-input
v-model=
"fiel.target_null_string"
></el-input>
</el-form-item>
<el-form-item
label=
"聚合:"
>
<el-select
v-model=
"fiel.target_aggregation_type"
style=
"width: 100%"
clearable
>
<el-option
label=
"Sum"
value=
"SUM"
></el-option>
<el-option
label=
"Average"
value=
"AVERAGE"
></el-option>
<el-option
label=
"Minimum"
value=
"MIN"
></el-option>
<el-option
label=
"Maximum"
value=
"MAX"
></el-option>
<el-option
label=
"Number of Values"
value=
"COUNT_ALL"
></el-option>
<el-option
label=
"Concatenate strings separated by ,"
value=
"CONCAT_COMMA"
></el-option>
</el-select>
</el-form-item>
</el-form>
<span
slot=
"footer"
class=
"dialog-footer"
>
...
...
@@ -192,25 +85,7 @@
<el-dialog
:title=
"groupStatus ? '新增' : '修改'"
:visible
.
sync=
"addGroup"
width=
"500px"
:before-close=
"handleClose"
:modal=
"false"
>
<el-form
ref=
"form"
:model=
"groupFiel"
label-width=
"160px"
>
<el-form-item
label=
"名称:"
>
<el-input
v-model=
"groupFiel.name"
></el-input>
</el-form-item>
</el-form>
<span
slot=
"footer"
class=
"dialog-footer"
>
<el-button
@
click=
"addGroup = false"
>
取 消
</el-button>
<el-button
type=
"primary"
@
click=
"addGroupDetermine"
>
确 定
</el-button>
</span>
</el-dialog>
</div>
</template>
...
...
@@ -250,7 +125,6 @@ export default {
group
:[],
groupFiel
:{},
groupStatus
:
false
,
addGroup
:
false
,
};
},
...
...
@@ -264,37 +138,14 @@ export default {
this
.
newGraph
=
graph
;
console
.
log
(
val
,
"拿到form"
);
this
.
fields
=
JSON
.
parse
(
val
.
fields
);
this
.
group
=
JSON
.
parse
(
val
.
group
);
},
getTheFieldFun
(){
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"
);
this
.
group
=
res
;
// this.fields.field_name = res.name
});
},
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"
,
...
...
@@ -305,19 +156,10 @@ export default {
pamerFields
.
append
(
"query"
,
""
);
inputOutputFields
(
pamerFields
).
then
((
res
)
=>
{
console
.
log
(
res
,
"yuiyuiyui"
);
let
i
=
0
res
.
forEach
(
item
=>
{
i
++
this
.
fields
.
push
({
target_name
:
'字段'
+
i
,
field_name
:
item
.
name
,
target_type
:
item
.
type
,
target_format
:
item
.
conversionMask
,
target_length
:
item
.
length
,
target_precision
:
item
.
precision
,
target_currency_symbol
:
item
.
currencyType
,
target_grouping_symbol
:
item
.
group
,
target_null_string
:
item
.
nullable
name
:
item
.
name
,
value
:
item
.
name
,
})
});
// this.fields.field_name = res.name
...
...
@@ -330,7 +172,6 @@ export default {
SystemInfoDialogFun
()
{
this
.
handleCloseFun
();
this
.
form
.
fields
=
JSON
.
stringify
(
this
.
fields
);
this
.
form
.
group
=
JSON
.
stringify
(
this
.
group
);
this
.
saveOutputDialog
(
this
.
form
);
},
...
...
@@ -343,13 +184,7 @@ export default {
},
addGroupDetermine
()
{
this
.
addGroup
=
!
this
.
addGroup
;
if
(
this
.
groupStatus
)
{
this
.
group
.
push
(
this
.
groupFiel
);
}
else
{
}
},
// 关闭弹框
handleClose
(
done
)
{
this
.
$confirm
(
"确认关闭?"
)
...
...
@@ -375,65 +210,6 @@ export default {
}
},
addSheetFun
(
state
,
val
)
{
this
.
addGroup
=
!
this
.
addGroup
;
this
.
groupStatus
=
state
;
if
(
state
)
{
this
.
groupFiel
=
{};
}
else
{
this
.
groupFiel
=
val
;
}
},
systemDataTypesFun
()
{
systemDataTypes
().
then
((
res
)
=>
{
this
.
type
=
res
;
});
},
valueMetaFun
()
{
valueMeta
().
then
((
res
)
=>
{
this
.
fieldType
=
res
;
});
},
valueFormatFun
()
{
let
pamer2
=
new
FormData
();
// 创建form对象
pamer2
.
append
(
"valueType"
,
"all"
);
valueFormat
(
pamer2
).
then
((
res
)
=>
{
this
.
fieldFormat
=
res
;
});
},
// 判断伤残等级
getTarget_aggregation_type
(
type
)
{
// console.log(type, typeof type)
this
.
target_aggregation_type
=
type
;
var
category
=
""
;
switch
(
type
)
{
case
"SUM"
:
category
=
"Sum"
;
break
;
case
"AVERAGE"
:
category
=
"Average"
;
break
;
case
"MIN"
:
category
=
"Minimum"
;
break
;
case
"MAX"
:
category
=
"Maximum"
;
break
;
case
"COUNT_ALL"
:
category
=
"Number of Values"
;
break
;
case
"CONCAT_COMMA"
:
category
=
"Concatenate strings separated by ,"
;
break
;
}
return
category
;
},
},
...
...
src/views/dashboard-kettle/components/appBulletFrame/splitFields.vue
0 → 100644
View file @
09108f8e
<
template
>
<div
class=
"getSystemInformation"
>
<el-dialog
title=
"拆分字段"
:visible
.
sync=
"splitFieldsDialog"
width=
"800px"
:before-close=
"handleCloseFun"
>
<el-form
ref=
"form"
:model=
"form"
label-width=
"120px"
>
<el-form-item
label=
"步骤名称:"
>
<el-input
v-model=
"form.label"
></el-input>
</el-form-item>
<el-form-item
label=
"需要拆分的字段:"
>
<el-select
v-model=
"fiel.splitfield"
style=
"width: 100%"
clearable
>
<el-option
v-for=
"item in fieName"
:key=
"item.index"
:label=
"item.name"
:value=
"item.name"
/>
</el-select>
</el-form-item>
<el-form-item
label=
"分隔符:"
>
<el-input
v-model=
"form.delimiter"
></el-input>
</el-form-item>
<el-form-item
label=
"Enclosure:"
>
<el-input
v-model=
"form.enclosure"
></el-input>
</el-form-item>
</el-form>
<el-form
ref=
"form"
:model=
"form"
label-width=
"0px"
>
<el-button
type=
"text"
@
click=
"addSheet(true)"
style=
"margin: 10px"
>
添加字段
</el-button
>
<el-form-item>
<el-table
:data=
"fields"
style=
"width: 100%"
>
<el-table-column
prop=
"name"
label=
"新的字段"
>
</el-table-column>
<el-table-column
prop=
"id"
label=
"ID"
>
</el-table-column>
<el-table-column
prop=
"idrem"
label=
"移除ID?"
>
</el-table-column>
<el-table-column
prop=
"type"
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=
"format"
label=
"格式"
>
</el-table-column>
<el-table-column
prop=
"group"
label=
"分组符号"
>
</el-table-column>
<el-table-column
prop=
"decimal"
label=
"小数点符号"
>
</el-table-column>
<el-table-column
prop=
"currency"
label=
"货币符号"
>
</el-table-column>
<el-table-column
prop=
"nullif"
label=
"Nullif"
>
</el-table-column>
<el-table-column
prop=
"ifnull"
label=
"缺省"
>
</el-table-column>
<el-table-column
prop=
"trimtype"
label=
"去除空格类型"
>
<template
slot-scope=
"scope"
>
{{
scope
.
row
.
trimtype
==
"none"
?
"不去掉空格"
:
scope
.
row
.
trimtype
==
"left"
?
"去掉左空格"
:
scope
.
row
.
trimtype
==
"right"
?
"去掉右空格"
:
scope
.
row
.
trimtype
==
"both"
?
"去掉左右两端空格"
:
""
}}
</
template
>
</el-table-column>
<el-table-column
label=
"操作"
>
<
template
slot-scope=
"scope"
>
<el-button
@
click=
"addSheet(false, scope.row)"
type=
"text"
size=
"small"
>
编辑
</el-button
>
<el-button
type=
"text"
size=
"small"
@
click=
"deleteRow(scope.$index, fields)"
>
删除
</el-button
>
</
template
>
</el-table-column>
</el-table>
</el-form-item>
</el-form>
<span
slot=
"footer"
class=
"dialog-footer"
>
<el-button
@
click=
"handleCloseFun"
>
取 消
</el-button>
<el-button
type=
"primary"
@
click=
"SystemInfoDialogFun"
>
确 定
</el-button>
</span>
</el-dialog>
<el-dialog
:title=
"dataStatus ? '新增' : '修改'"
:visible
.
sync=
"addField"
width=
"500px"
:before-close=
"handleClose"
:modal=
"false"
>
<el-form
ref=
"form"
:model=
"fiel"
label-width=
"160px"
>
<el-form-item
label=
"新的字段:"
>
<el-input
v-model=
"fiel.name"
></el-input>
</el-form-item>
<el-form-item
label=
"ID:"
>
<el-input
v-model=
"fiel.id"
></el-input>
</el-form-item>
<el-form-item
label=
"移除ID?"
>
<el-select
v-model=
"fiel.idrem"
style=
"width: 100%"
>
<el-option
label=
"Y"
value=
"Y"
></el-option>
<el-option
label=
"N"
value=
"N"
></el-option>
</el-select>
</el-form-item>
<el-form-item
label=
"类型:"
>
<el-select
v-model=
"fiel.type"
style=
"width: 100%"
clearable
>
<el-option
v-for=
"item in fieldType"
:key=
"item.id"
:label=
"item.name"
:value=
"item.name"
/>
</el-select>
</el-form-item>
<el-form-item
label=
"长度:"
>
<el-input
v-model=
"fiel.length"
></el-input>
</el-form-item>
<el-form-item
label=
"精确:"
>
<el-input
v-model=
"fiel.precision"
></el-input>
</el-form-item>
<el-form-item
label=
"格式:"
>
<el-input
v-model=
"fiel.format"
></el-input>
</el-form-item>
<el-form-item
label=
"分组符号:"
>
<el-input
v-model=
"fiel.group"
></el-input>
</el-form-item>
<el-form-item
label=
"小数点符号:"
>
<el-input
v-model=
"fiel.decimal"
></el-input>
</el-form-item>
<el-form-item
label=
"货币符号:"
>
<el-input
v-model=
"fiel.currency"
></el-input>
</el-form-item>
<el-form-item
label=
"Nullif:"
>
<el-input
v-model=
"fiel.nullif"
></el-input>
</el-form-item>
<el-form-item
label=
"缺省:"
>
<el-input
v-model=
"fiel.ifnull"
></el-input>
</el-form-item>
<el-form-item
label=
"去除空格类型:"
>
<el-select
v-model=
"fiel.trimtype"
style=
"width: 100%"
>
<el-option
label=
"不去掉空格"
value=
"none"
></el-option>
<el-option
label=
"去掉左空格"
value=
"left"
></el-option>
<el-option
label=
"去掉右空格"
value=
"right"
></el-option>
<el-option
label=
"去掉左右两端空格"
value=
"both"
></el-option>
</el-select>
</el-form-item>
</el-form>
<span
slot=
"footer"
class=
"dialog-footer"
>
<el-button
@
click=
"addField = false"
>
取 消
</el-button>
<el-button
type=
"primary"
@
click=
"addFieldDetermine"
>
确 定
</el-button>
</span>
</el-dialog>
</div>
</template>
<
script
>
import
mxgraph
from
"@/utils/mxgraph"
;
const
{
mxGraph
,
mxUtils
,
mxEvent
,
mxKeyHandler
,
mxRubberband
,
mxConstants
,
mxStencilRegistry
,
mxStencil
,
mxCodec
,
mxGraphModel
,
mxGeometry
,
}
=
mxgraph
;
import
{
systemDataTypes
,
valueFormat
,
valueMeta
,
inputOutputFields
,
}
from
"@/api/kettle/link"
;
export
default
{
props
:
[
"form"
,
"splitFieldsDialog"
,
"saveOutputDialog"
,
"nodeData"
],
data
()
{
return
{
addField
:
false
,
fields
:
[],
type
:
{},
dataStatus
:
false
,
fiel
:
{},
fieldFormat
:
[],
fieldType
:
[],
fieName
:
[],
};
},
created
()
{
this
.
systemDataTypesFun
();
},
methods
:
{
inputFun
()
{
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"
);
this
.
fieName
=
res
;
});
},
clickFun
(
graph
,
val
)
{
console
.
log
(
graph
,
"双击获取值"
);
this
.
newGraph
=
graph
;
console
.
log
(
val
,
"拿到form"
);
this
.
fields
=
JSON
.
parse
(
val
.
fields
);
this
.
inputFun
();
},
handleCloseFun
()
{
this
.
$emit
(
"update:splitFieldsDialog"
,
false
);
},
SystemInfoDialogFun
()
{
this
.
handleCloseFun
();
this
.
form
.
fields
=
JSON
.
stringify
(
this
.
fields
);
this
.
saveOutputDialog
(
this
.
form
);
},
addFieldDetermine
()
{
this
.
addField
=
!
this
.
addField
;
if
(
this
.
dataStatus
)
{
this
.
fields
.
push
(
this
.
fiel
);
}
else
{
}
},
// 关闭弹框
handleClose
(
done
)
{
this
.
$confirm
(
"确认关闭?"
)
.
then
((
_
)
=>
{
done
();
})
.
catch
((
_
)
=>
{});
},
deleteRow
(
index
,
rows
)
{
rows
.
splice
(
index
,
1
);
},
addSheet
(
state
,
val
)
{
this
.
valueFormatFun
();
this
.
valueMetaFun
();
this
.
addField
=
!
this
.
addField
;
this
.
dataStatus
=
state
;
if
(
state
)
{
this
.
fiel
=
{};
}
else
{
this
.
fiel
=
val
;
}
},
systemDataTypesFun
()
{
systemDataTypes
().
then
((
res
)
=>
{
this
.
type
=
res
;
});
},
valueMetaFun
()
{
valueMeta
().
then
((
res
)
=>
{
this
.
fieldType
=
res
;
});
},
valueFormatFun
()
{
let
pamer2
=
new
FormData
();
// 创建form对象
pamer2
.
append
(
"valueType"
,
"all"
);
valueFormat
(
pamer2
).
then
((
res
)
=>
{
this
.
fieldFormat
=
res
;
});
},
},
};
</
script
>
<
style
lang=
"scss"
scoped
>
*
{
outline
:
none
;
}
</
style
>
src/views/dashboard-kettle/components/appBulletFrame/stringOperation.vue
0 → 100644
View file @
09108f8e
<
template
>
<div
class=
"getSystemInformation"
>
<el-dialog
title=
"字符串操作"
:visible
.
sync=
"stringOperationDialog"
width=
"800px"
:before-close=
"handleCloseFun"
>
<el-form
ref=
"form"
:model=
"form"
label-width=
"120px"
>
<el-form-item
label=
"步骤名称:"
>
<el-input
v-model=
"form.label"
></el-input>
</el-form-item>
</el-form>
<br
/>
<el-form
ref=
"form"
:model=
"form"
label-width=
"0px"
>
The fields to process:
<br
/>
<el-button
type=
"text"
@
click=
"addSheet(true)"
style=
"margin: 10px"
>
添加字段
</el-button
>
<el-button
type=
"text"
@
click=
"getTheFieldFun"
>
获取字段
</el-button>
<el-form-item>
<el-table
:data=
"fields"
style=
"width: 100%"
>
<el-table-column
prop=
"in_stream_name"
label=
"ln stream field"
width=
"110"
>
</el-table-column>
<el-table-column
prop=
"out_stream_name"
label=
"Out stream field"
width=
"120px"
>
</el-table-column>
<el-table-column
prop=
"trim_type"
label=
"Trim type"
width=
"80px"
>
<template
slot-scope=
"scope"
>
{{
scope
.
row
.
trim_type
==
0
?
"none"
:
scope
.
row
.
trim_type
==
1
?
"left"
:
scope
.
row
.
trim_type
==
2
?
"right"
:
scope
.
row
.
trim_type
==
3
?
"both"
:
""
}}
</
template
>
</el-table-column>
<el-table-column
prop=
"lower_upper"
label=
"Lower/Upper"
width=
"100px"
>
<
template
slot-scope=
"scope"
>
{{
scope
.
row
.
lower_upper
==
0
?
"none"
:
scope
.
row
.
lower_upper
==
1
?
"lower"
:
scope
.
row
.
lower_upper
==
2
?
"upper"
:
""
}}
</
template
>
</el-table-column>
<el-table-column
prop=
"padding_type"
label=
"Padding"
width=
"70px"
>
<
template
slot-scope=
"scope"
>
{{
scope
.
row
.
padding_type
==
0
?
"none"
:
scope
.
row
.
padding_type
==
1
?
"left"
:
scope
.
row
.
padding_type
==
2
?
"right"
:
""
}}
</
template
>
</el-table-column>
<el-table-column
prop=
"pad_char"
label=
"Pad char"
width=
"80px"
>
</el-table-column>
<el-table-column
prop=
"pad_len"
label=
" Pad Length"
width=
"90px"
>
</el-table-column>
<el-table-column
prop=
"init_cap"
label=
"InitCap"
width=
"80px"
>
<
template
slot-scope=
"scope"
>
{{
scope
.
row
.
init_cap
==
1
?
"是"
:
"否"
}}
</
template
>
</el-table-column>
<el-table-column
prop=
"mask_xml"
label=
"Escape"
>
<
template
slot-scope=
"scope"
>
{{
getEscape
(
scope
.
row
.
mask_xml
)
}}
</
template
>
</el-table-column>
<el-table-column
prop=
"digits"
label=
"Digits"
>
<
template
slot-scope=
"scope"
>
{{
scope
.
row
.
digits
==
0
?
"none"
:
scope
.
row
.
digits
==
1
?
"only"
:
scope
.
row
.
digits
==
2
?
"remove"
:
""
}}
</
template
>
</el-table-column>
<el-table-column
prop=
"remove_special_characters"
label=
"Remove Special character"
width=
"180px"
>
<
template
slot-scope=
"scope"
>
{{
getSpecial
(
scope
.
row
.
remove_special_characters
)
}}
</
template
>
</el-table-column>
<el-table-column
label=
"操作"
width=
"120px"
>
<
template
slot-scope=
"scope"
>
<el-button
@
click=
"addSheet(false, scope.row)"
type=
"text"
size=
"small"
>
编辑
</el-button
>
<el-button
type=
"text"
size=
"small"
@
click=
"deleteRow(scope.$index, fields)"
>
删除
</el-button
>
</
template
>
</el-table-column>
</el-table>
</el-form-item>
</el-form>
<span
slot=
"footer"
class=
"dialog-footer"
>
<el-button
@
click=
"handleCloseFun"
>
取 消
</el-button>
<el-button
type=
"primary"
@
click=
"SystemInfoDialogFun"
>
确 定
</el-button>
</span>
</el-dialog>
<el-dialog
:title=
"dataStatus ? '新增' : '修改'"
:visible
.
sync=
"addField"
width=
"500px"
:before-close=
"handleClose"
:modal=
"false"
>
<el-form
ref=
"form"
:model=
"fiel"
label-width=
"200px"
>
<el-form-item
label=
"ln stream field:"
>
<el-input
v-model=
"fiel.in_stream_name"
></el-input>
</el-form-item>
<el-form-item
label=
"Out stream field:"
>
<el-input
v-model=
"fiel.out_stream_name"
></el-input>
</el-form-item>
<el-form-item
label=
"Trim type:"
>
<el-select
v-model=
"fiel.trim_type"
style=
"width: 100%"
clearable
>
<el-option
label=
"none"
:value=
"0"
></el-option>
<el-option
label=
"left"
:value=
"1"
></el-option>
<el-option
label=
"right"
:value=
"2"
></el-option>
<el-option
label=
"both"
:value=
"3"
></el-option>
</el-select>
</el-form-item>
<el-form-item
label=
"Lower/Upper:"
>
<el-select
v-model=
"fiel.lower_upper"
style=
"width: 100%"
clearable
>
<el-option
label=
"none"
:value=
"0"
></el-option>
<el-option
label=
"lower"
:value=
"1"
></el-option>
<el-option
label=
"upper"
:value=
"2"
></el-option>
</el-select>
</el-form-item>
<el-form-item
label=
"Padding:"
>
<el-select
v-model=
"fiel.padding_type"
style=
"width: 100%"
clearable
>
<el-option
label=
"none"
:value=
"0"
></el-option>
<el-option
label=
"left"
:value=
"1"
></el-option>
<el-option
label=
"right"
:value=
"2"
></el-option>
</el-select>
</el-form-item>
<el-form-item
label=
"Pad char:"
>
<el-input
v-model=
"fiel.pad_char"
></el-input>
</el-form-item>
<el-form-item
label=
"Pad Length:"
>
<el-input
v-model=
"fiel.pad_len"
></el-input>
</el-form-item>
<el-form-item
label=
"InitCap:"
>
<el-select
v-model=
"fiel.init_cap"
style=
"width: 100%"
clearable
>
<el-option
label=
"否"
:value=
"0"
></el-option>
<el-option
label=
"是"
:value=
"1"
></el-option>
</el-select>
</el-form-item>
<el-form-item
label=
"Escape:"
>
<el-select
v-model=
"fiel.mask_xml"
style=
"width: 100%"
clearable
>
<el-option
label=
"None"
:value=
"0"
></el-option>
<el-option
label=
"Escape XML"
:value=
"1"
></el-option>
<el-option
label=
"Use CDATA"
:value=
"2"
></el-option>
<el-option
label=
"Unescape XML"
:value=
"3"
></el-option>
<el-option
label=
"Escape SQL"
:value=
"4"
></el-option>
<el-option
label=
"Escape HTML"
:value=
"5"
></el-option>
<el-option
label=
"Unescape HTML"
:value=
"6"
></el-option>
</el-select>
</el-form-item>
<el-form-item
label=
"Digits:"
>
<el-select
v-model=
"fiel.digits"
style=
"width: 100%"
clearable
>
<el-option
label=
"none"
:value=
"0"
></el-option>
<el-option
label=
"only"
:value=
"1"
></el-option>
<el-option
label=
"remove"
:value=
"2"
></el-option>
</el-select>
</el-form-item>
<el-form-item
label=
"Remove Special character:"
>
<el-select
v-model=
"fiel.remove_special_characters"
style=
"width: 100%"
clearable
>
<el-option
label=
"none"
:value=
"0"
></el-option>
<el-option
label=
"carriage return (CR)"
:value=
"1"
></el-option>
<el-option
label=
"line feed (LF)"
:value=
"2"
></el-option>
<el-option
label=
"carriage return & line feed"
:value=
"3"
></el-option>
<el-option
label=
"horizontal tab"
:value=
"4"
></el-option>
<el-option
label=
"space"
:value=
"5"
></el-option>
</el-select>
</el-form-item>
</el-form>
<span
slot=
"footer"
class=
"dialog-footer"
>
<el-button
@
click=
"addField = false"
>
取 消
</el-button>
<el-button
type=
"primary"
@
click=
"addFieldDetermine"
>
确 定
</el-button>
</span>
</el-dialog>
</div>
</template>
<
script
>
import
mxgraph
from
"@/utils/mxgraph"
;
const
{
mxGraph
,
mxUtils
,
mxEvent
,
mxKeyHandler
,
mxRubberband
,
mxConstants
,
mxStencilRegistry
,
mxStencil
,
mxCodec
,
mxGraphModel
,
mxGeometry
,
}
=
mxgraph
;
import
{
inputOutputFields
}
from
"@/api/kettle/link"
;
export
default
{
props
:
[
"form"
,
"stringOperationDialog"
,
"saveOutputDialog"
,
"nodeData"
],
data
()
{
return
{
addField
:
false
,
fields
:
[],
type
:
{},
dataStatus
:
false
,
fiel
:
{},
fieldFormat
:
[],
fieldType
:
[],
};
},
created
()
{
},
methods
:
{
clickFun
(
graph
,
val
)
{
console
.
log
(
graph
,
"双击获取值"
);
this
.
newGraph
=
graph
;
console
.
log
(
val
,
"拿到form"
);
console
.
log
(
JSON
.
parse
(
val
.
fields
));
this
.
fields
=
JSON
.
parse
(
val
.
fields
);
},
getTheFieldFun
(){
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"
);
this
.
fields
=
[]
res
.
forEach
(
item
=>
{
if
(
item
.
type
==
"String"
)
{
this
.
fields
.
push
({
in_stream_name
:
item
.
name
,
trim_type
:
0
,
lower_upper
:
0
,
padding_type
:
0
,
init_cap
:
0
,
mask_xml
:
0
,
digits
:
0
,
remove_special_characters
:
0
,
})
}
});
});
},
handleCloseFun
()
{
this
.
$emit
(
"update:stringOperationDialog"
,
false
);
},
SystemInfoDialogFun
()
{
this
.
handleCloseFun
();
this
.
form
.
fields
=
JSON
.
stringify
(
this
.
fields
);
this
.
saveOutputDialog
(
this
.
form
);
},
addFieldDetermine
()
{
this
.
addField
=
!
this
.
addField
;
if
(
this
.
dataStatus
)
{
this
.
fields
.
push
(
this
.
fiel
);
}
else
{
}
},
// 关闭弹框
handleClose
(
done
)
{
this
.
$confirm
(
"确认关闭?"
)
.
then
((
_
)
=>
{
done
();
})
.
catch
((
_
)
=>
{});
},
deleteRow
(
index
,
rows
)
{
rows
.
splice
(
index
,
1
);
},
addSheet
(
state
,
val
)
{
this
.
addField
=
!
this
.
addField
;
this
.
dataStatus
=
state
;
if
(
state
)
{
this
.
fiel
=
{
trim_type
:
0
,
lower_upper
:
0
,
padding_type
:
0
,
init_cap
:
0
,
mask_xml
:
0
,
digits
:
0
,
remove_special_characters
:
0
,};
}
else
{
this
.
fiel
=
val
;
}
},
// 判断
getEscape
(
type
)
{
console
.
log
(
type
,
typeof
type
);
this
.
mask_xml
=
type
;
var
category
=
""
;
switch
(
type
)
{
case
0
:
category
=
"None"
;
break
;
case
1
:
category
=
"Escape XML"
;
break
;
case
2
:
category
=
"Use CDATA"
;
break
;
case
3
:
category
=
"Unescape XML"
;
break
;
case
4
:
category
=
"Escape SQL"
;
break
;
case
5
:
category
=
"Escape HTML"
;
break
;
case
6
:
category
=
"Unescape HTML"
;
break
;
}
return
category
;
},
// 判断
getSpecial
(
type
)
{
console
.
log
(
type
,
typeof
type
);
this
.
remove_special_characters
=
type
;
var
category
=
""
;
switch
(
type
)
{
case
0
:
category
=
"none"
;
break
;
case
1
:
category
=
"carriage return (CR)"
;
break
;
case
2
:
category
=
"line feed (LF)"
;
break
;
case
3
:
category
=
"carriage return & line feed"
;
break
;
case
4
:
category
=
"horizontal tab"
;
break
;
case
5
:
category
=
"space"
;
break
;
}
return
category
;
},
},
};
</
script
>
<
style
lang=
"scss"
scoped
>
*
{
outline
:
none
;
}
</
style
>
src/views/dashboard-kettle/components/appBulletFrame/xmlFileInput.vue
View file @
09108f8e
...
...
@@ -314,6 +314,9 @@
<el-table-column
prop=
"group"
label=
"组"
>
</el-table-column>
<el-table-column
prop=
"trim_type"
label=
"去除空格类型"
>
<
template
slot-scope=
"scope"
>
{{
scope
.
row
.
trimtype
==
"none"
?
"不去掉空格"
:
scope
.
row
.
trimtype
==
"left"
?
"去掉左空格"
:
scope
.
row
.
trimtype
==
"right"
?
"去掉右空格"
:
scope
.
row
.
trimtype
==
"both"
?
"去掉左右两端空格"
:
""
}}
</
template
>
</el-table-column>
<el-table-column
prop=
"repeat"
label=
"重复"
>
</el-table-column>
...
...
src/views/dashboard-kettle/components/designer/FlowDesigner.vue
View file @
09108f8e
...
...
@@ -479,6 +479,9 @@
<el-table-column
prop=
"precision"
label=
"精度"
>
</el-table-column>
<el-table-column
prop=
"trim_type"
label=
"去除空格类型"
>
<
template
slot-scope=
"scope"
>
{{
scope
.
row
.
trimtype
==
"none"
?
"不去掉空格"
:
scope
.
row
.
trimtype
==
"left"
?
"去掉左空格"
:
scope
.
row
.
trimtype
==
"right"
?
"去掉右空格"
:
scope
.
row
.
trimtype
==
"both"
?
"去掉左右两端空格"
:
""
}}
</
template
>
</el-table-column>
<el-table-column
prop=
"repeat"
label=
"重复"
>
</el-table-column>
...
...
src/views/dashboard-kettle/components/designer/mxgraphDesigner--change.vue
View file @
09108f8e
...
...
@@ -460,6 +460,9 @@
<el-table-column
prop=
"precision"
label=
"精度"
>
</el-table-column>
<el-table-column
prop=
"trim_type"
label=
"去除空格类型"
>
<
template
slot-scope=
"scope"
>
{{
scope
.
row
.
trimtype
==
"none"
?
"不去掉空格"
:
scope
.
row
.
trimtype
==
"left"
?
"去掉左空格"
:
scope
.
row
.
trimtype
==
"right"
?
"去掉右空格"
:
scope
.
row
.
trimtype
==
"both"
?
"去掉左右两端空格"
:
""
}}
</
template
>
</el-table-column>
<el-table-column
prop=
"repeat"
label=
"重复"
>
</el-table-column>
...
...
src/views/dashboard-kettle/components/designer/mxgraphDesigner.vue
View file @
09108f8e
...
...
@@ -476,6 +476,9 @@
<el-table-column
prop=
"precision"
label=
"精度"
>
</el-table-column>
<el-table-column
prop=
"trim_type"
label=
"去除空格类型"
>
<
template
slot-scope=
"scope"
>
{{
scope
.
row
.
trimtype
==
"none"
?
"不去掉空格"
:
scope
.
row
.
trimtype
==
"left"
?
"去掉左空格"
:
scope
.
row
.
trimtype
==
"right"
?
"去掉右空格"
:
scope
.
row
.
trimtype
==
"both"
?
"去掉左右两端空格"
:
""
}}
</
template
>
</el-table-column>
<el-table-column
prop=
"repeat"
label=
"重复"
>
</el-table-column>
...
...
@@ -1007,6 +1010,26 @@
:saveOutputDialog=
"saveOutputDialog"
></addConstants>
<!-- 拆分字符串 -->
<splitFields
ref=
"splitFields"
:form=
"form"
:nodeData=
"nodeData"
:splitFieldsDialog
.
sync=
"splitFieldsDialog"
:doubleClickCell=
"doubleClickCell"
:saveOutputDialog=
"saveOutputDialog"
></splitFields>
<!-- 字符串操作 -->
<stringOperation
ref=
"stringOperation"
:form=
"form"
:nodeData=
"nodeData"
:stringOperationDialog
.
sync=
"stringOperationDialog"
:doubleClickCell=
"doubleClickCell"
:saveOutputDialog=
"saveOutputDialog"
></stringOperation>
<!-- 增加序列 -->
<addSequence
ref=
"addSequence"
...
...
@@ -1040,6 +1063,17 @@
></rowToColumn>
<!-- 行转列 -->
<columnToRow
ref=
"columnToRow"
:form=
"form"
:nodeData=
"nodeData"
:columnToRowDialog
.
sync=
"columnToRowDialog"
:doubleClickCell=
"doubleClickCell"
:saveOutputDialog=
"saveOutputDialog"
></columnToRow>
<!-- 替换NULL值 -->
<replaceNull
ref=
"replaceNull"
...
...
@@ -1339,8 +1373,11 @@ import addSequence from "../appBulletFrame/addSequence"; //增加序列
import
importXmlFile
from
"../appBulletFrame/importXmlFile"
;
//导出资源库到XML文件
import
grouping
from
"../appBulletFrame/grouping"
;
//分组
import
addConstants
from
"../appBulletFrame/addConstants"
;
//增加常量
import
splitFields
from
"../appBulletFrame/splitFields"
;
//拆分字符串
import
stringOperation
from
"../appBulletFrame/stringOperation"
//字符串操作
import
streamQuery
from
"../appBulletFrame/streamQuery"
;
//流查询
import
rowToColumn
from
"../appBulletFrame/rowToColumn"
;
//行转列
import
columnToRow
from
"../appBulletFrame/columnToRow"
;
//列转行
import
replaceNull
from
"../appBulletFrame/replaceNull"
;
//替换null值
import
sendMail
from
"../appBulletFrame/sendMail"
;
//发送邮件
...
...
@@ -1478,8 +1515,11 @@ export default {
groupingDialog
:
false
,
//分组
stringSubstitutionDialog
:
false
,
//字符串替换
addConstantsDialog
:
false
,
//增加常量
splitFieldsDialog
:
false
,
//拆分字符串
stringOperationDialog
:
false
,
//字符串操作
addSequenceDialog
:
false
,
//增加序列
rowToColumnDialog
:
false
,
//行转列
columnToRowDialog
:
false
,
//列转行
streamQueryDialog
:
false
,
//流查询
replaceNullDialog
:
false
,
//替换Null值
sendMailDialog
:
false
,
//发送邮件
...
...
@@ -1597,9 +1637,12 @@ export default {
importXmlFile
,
//导出资源库到XML文件
grouping
,
//分组
addConstants
,
//增加常量
splitFields
,
//拆分字符串
stringOperation
,
//字符串操作
addSequence
,
//增加序列
streamQuery
,
//流查询
rowToColumn
,
//行转列
columnToRow
,
//列转行
replaceNull
,
//替换null值
sendMail
,
//发送邮件
// 作业弹簧组件end----------------------
...
...
@@ -2291,6 +2334,33 @@ export default {
this
.
fieldFormat
=
res
;
});
if
(
(
this
.
curFileType
==
"transformation"
&&
cell
.
dis
==
"step65"
)
||
cell
.
value
.
attributes
.
ctype
.
value
==
"FieldSplitter"
)
{
this
.
splitFieldsDialog
=
!
this
.
splitFieldsDialog
;
this
.
form
=
this
.
showDataFunc
();
setTimeout
(()
=>
{
this
.
$refs
.
splitFields
.
clickFun
(
this
.
graph
,
this
.
form
);
},
500
);
}
else
if
(
(
this
.
curFileType
==
"transformation"
&&
cell
.
dis
==
"step62"
)
||
cell
.
value
.
attributes
.
ctype
.
value
==
"StringOperations"
)
{
this
.
stringOperationDialog
=
!
this
.
stringOperationDialog
;
this
.
form
=
this
.
showDataFunc
();
setTimeout
(()
=>
{
this
.
$refs
.
stringOperation
.
clickFun
(
this
.
graph
,
this
.
form
);
},
500
);
}
else
if
(
(
this
.
curFileType
==
"transformation"
&&
cell
.
dis
==
"step54"
)
||
cell
.
value
.
attributes
.
ctype
.
value
==
"Denormaliser"
)
{
this
.
columnToRowDialog
=
!
this
.
columnToRowDialog
;
this
.
form
=
this
.
showDataFunc
();
setTimeout
(()
=>
{
this
.
$refs
.
columnToRow
.
clickFun
(
this
.
graph
,
this
.
form
);
},
500
);
}
else
if
(
(
this
.
curFileType
==
"transformation"
&&
cell
.
dis
==
"step70"
)
||
cell
.
value
.
attributes
.
ctype
.
value
==
"Normaliser"
)
{
...
...
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