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
1c290eb1
Commit
1c290eb1
authored
Jun 15, 2021
by
莫晓莉
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
剪切字符串
parent
2144c7b6
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
406 additions
and
7 deletions
+406
-7
src/views/dashboard-kettle/components/designer/mxgraphDesigner.vue
+19
-7
src/views/dialogs-components/global/remind-dialog/index.js
+3
-0
src/views/dialogs-components/global/remind-dialog/main.vue
+109
-0
src/views/trans-dialog/cut-string.vue
+275
-0
No files found.
src/views/dashboard-kettle/components/designer/mxgraphDesigner.vue
View file @
1c290eb1
...
...
@@ -1133,14 +1133,13 @@
:doubleClickCell=
"doubleClickCell"
:formSend=
"valueFormData"
></valueDialog>
<
!-- <value
Dialog
ref="ref
Value
"
:
valueVisible.sync="value
Visible"
<
cutString
Dialog
ref=
"ref
CutString
"
:
cutStringVisible
.
sync=
"cutString
Visible"
:saveOutputDialog=
"saveOutputDialog"
:doubleClickCell=
"doubleClickCell"
:deleteFormSend="outPutFormData6"
:getXmlVal="getXmlVal"
></valueDialog> -->
:formSend=
"cutStringFormData"
></cutStringDialog>
<!-- 字段选择value -->
<!-- <columnChoose
ref="insertOrdate"
...
...
@@ -1274,6 +1273,8 @@ import javaScriptDialog from "../../../script-dialog/java-script";//转换-脚
// 转换弹窗组件start----------
import
valueDialog
from
"../../../trans-dialog/value"
;
//值映射
import
cutStringDialog
from
"../../../trans-dialog/cut-string"
;
//剪切字符串
// 转换弹窗组件end------------
import
mxgraph
from
"@/utils/mxgraph"
;
...
...
@@ -1331,6 +1332,7 @@ export default {
// 转换33start---------
javaScriptFormData
:{},
//转换--javascript代码
valueFormData
:{},
//值映射
cutStringFormData
:{},
//剪切字符串
// 转换3end------------
outPutFormData16
:
{},
//脚本--执行sql脚本
doubleClickCell
:
{},
...
...
@@ -1392,7 +1394,7 @@ export default {
scriptVisible
:
false
,
// 脚本组件end-----
valueVisible
:
false
,
//值映射
cutStringVisible
:
false
,
//剪切字符串
// 输入模块
file
:
[],
sheets
:
[],
...
...
@@ -1508,6 +1510,7 @@ export default {
// 转换弹窗组件start---
valueDialog
,
//值映射
cutStringDialog
,
//剪切字符串
// 转换弹窗组件end-----
},
//自定义指令 https://www.jb51.net/article/108047.htm
...
...
@@ -2595,6 +2598,15 @@ export default {
this
.
$refs
.
refValue
.
clickFun
(
this
.
graph
);
//向子组件传递画布
},
500
);
return
;
}
else
if
((
this
.
curFileType
==
"transformation"
&&
cell
.
ids
==
"step55"
)
||
cell
.
value
.
attributes
.
ctype
.
value
==
"StringCut"
){
//转换 --剪切字符串
this
.
cutStringVisible
=
!
this
.
cutStringVisible
;
this
.
cutStringFormData
=
this
.
showDataFunc
()
setTimeout
(()
=>
{
// this.$refs.refJavaScript.clickFun(this.graph);//向子组件传递画布
this
.
$refs
.
refCutString
.
clickFun
(
this
.
graph
);
//向子组件传递画布
},
500
);
return
;
}
});
...
...
src/views/dialogs-components/global/remind-dialog/index.js
0 → 100644
View file @
1c290eb1
import
main
from
'./main.vue'
export
default
main
\ No newline at end of file
src/views/dialogs-components/global/remind-dialog/main.vue
0 → 100644
View file @
1c290eb1
<
template
>
<div
>
<!-- 浏览 -->
<el-dialog
title=
"问题"
:visible
.
sync=
"remindVisible"
width=
"650px"
top=
"15%"
:close-on-click-modal=
"false"
:before-close=
"handleClose"
>
<div
class=
"remind_dialog"
>
这是一段信息
</div>
<span
slot=
"footer"
class=
"dialog-footer"
>
<el-button
@
click=
"handleClose"
>
取 消
</el-button>
<el-button
type=
"primary"
@
click=
"expRespository()"
>
确 定
</el-button>
</span>
</el-dialog>
</div>
</
template
>
<
script
>
import
{
exptree
,
expRespository
,
download
}
from
"@/api/kettle/file"
;
export
default
{
name
:
"remind-dialog"
,
data
()
{
return
{
exTreeList
:[],
defaultProps
:
{
label
:
"text"
,
children
:
"children"
,
},
checkedArr
:[]
}
},
props
:
[
"remindVisible"
],
created
()
{
// this.exptree();
},
methods
:
{
//获取导出资源库树
// exptree() {
// let data = new FormData();
// data.append("loadElement", 3);
// data.append("node", "root");
// exptree(data).then((res) => {
// if (res) {
// console.log("导出资源库树列表:", res);
// this.exTreeList = res;
// } else {
// this.$message.error(res.errMsg);
// }
// });
// },
// getCheckedNodes() {
// console.log('当前勾选的所有数据',this.$refs.tree.getCheckedNodes());
// var allCheckedsNodes=this.$refs.tree.getCheckedNodes();
// var checkedNodes=allCheckedsNodes.filter((item)=>{
// return item.children==null
// });
// var checkArr=[];
// checkedNodes.forEach(element => {
// var myObj={};
// myObj.path=element.path;
// myObj.type=element.type;
// checkArr.push(myObj);
// });
// this.checkedArr=checkArr;
// console.log('当前选择文件====',this.checkedArr);
// },
//导出资源库
// expRespository() {
// if(this.checkedArr.length==0){
// this.$message.error('请先选择要导出文件');
// }
// let data = new FormData();
// data.append("data",JSON.stringify(this.checkedArr) );
// expRespository(data).then((res) => {
// if (res) {
// console.log("导出资源库:", res);
// var url=this.etlWeb+`attachment/download?filePath=${res.message}&remove=true`
// window.open(url);
// } else {
// this.$message.error(res.errMsg);
// }
// });
// },
handleClose
()
{
this
.
$emit
(
"update:remindVisible"
,
false
);
},
},
};
</
script
>
<
style
>
.type-checked
{
background-color
:
#8888ff
;
color
:
#fff
;
}
.remind_dialog
>
.el-dialog__body
{
height
:
10vh
!important
;
overflow
:
auto
;
}
</
style
>
src/views/trans-dialog/cut-string.vue
0 → 100644
View file @
1c290eb1
<
template
>
<div>
<el-dialog
title=
"剪切字符串"
:visible
.
sync=
"cutStringVisible"
width=
"800px"
:before-close=
"handleClose"
top=
"10%"
>
<el-form
ref=
"delForm"
:model=
"myForm"
label-width=
"200px"
>
<el-form-item
label=
"步骤名称:"
>
<el-input
v-model=
"myForm.label"
></el-input>
</el-form-item>
<!--
<div
style=
"border:1px solid #99BBE8;padding:15px 15px;margin-bottom:15px;"
>
<database-choose
ref=
"databaseChoose"
:form
.
sync=
"deleteForm"
@
fatherFun=
"fatherFun"
:getXmlVal=
"getXmlVal"
:graph=
"newGraph"
></database-choose>
<el-form-item
label=
"提交记录数量:"
>
<el-row
:gutter=
"10"
>
<el-col
:span=
"23"
>
<el-input
v-model=
"deleteForm.commit"
></el-input>
</el-col>
</el-row>
</el-form-item>
</div>
-->
<el-card
class=
"box-card"
>
<div
slot=
"header"
class=
"clearfix"
>
<span>
要剪切的字段
</span>
<el-button
style=
"padding: 3px 0;margin-left:50px;"
type=
"text"
@
click=
"fieldClick(true)"
>
新增字段
</el-button>
<el-button
style=
"padding: 3px 0"
type=
"text"
@
click=
"inputOutputFields('get')"
>
获取字段
</el-button>
<!--
<el-button
style=
"padding: 3px 0"
type=
"text"
@
click=
"showRemindDia"
>
获取字段
</el-button>
-->
<el-button
style=
"padding: 3px 0"
type=
"text"
@
click=
"deleteFields"
>
删除全部
</el-button>
</div>
<table-list
ref=
"tableDia"
:tableHead=
"tableHead"
:tableData=
"tableData"
:field
.
sync=
"editDia"
:fieldClick=
"fieldClick"
></table-list>
<!-- 编辑弹窗开始=========== -->
<el-dialog
title=
"新增/编辑"
:visible
.
sync=
"field"
width=
"550px"
:before-close=
"handleCloseEdit"
append-to-body
>
<el-form
ref=
"form1"
:model=
"fieldForm"
label-width=
"100px"
>
<el-form-item
label=
"输入流字段:"
>
<el-select
v-model=
"fieldForm.in_stream_name"
style=
"width: 100%"
@
focus=
"inputOutputFields"
>
<el-option
v-for=
"(item,index) in fieldsList2"
:key=
"index"
:label=
"item.name"
:value=
"item.name"
></el-option>
</el-select>
</el-form-item>
<el-form-item
label=
"输出流字段:"
>
<el-input
v-model=
"fieldForm.out_stream_name"
></el-input>
</el-form-item>
<el-form-item
label=
"起始位置:"
>
<el-input
v-model=
"fieldForm.cut_from"
></el-input>
</el-form-item>
<el-form-item
label=
"结束位置:"
>
<el-input
v-model=
"fieldForm.cut_to"
></el-input>
</el-form-item>
</el-form>
<span
slot=
"footer"
class=
"dialog-footer"
>
<el-button
@
click=
"field = false"
>
取 消
</el-button>
<el-button
type=
"primary"
@
click=
"addField"
>
确 定
</el-button>
</span>
</el-dialog>
<!-- 编辑弹窗结束============ -->
</el-card>
</el-form>
<span
slot=
"footer"
class=
"dialog-footer"
>
<el-button
@
click=
"cutStringVisible = false"
>
取 消
</el-button>
<el-button
type=
"primary"
@
click=
"confirm"
>
确 定
</el-button>
</span>
</el-dialog>
<!-- 提醒弹窗start -->
<!--
<remind-dialog
:remindVisible
.
sync=
"remindVisible"
></remind-dialog>
-->
<!-- 提醒弹窗end-- -->
</div>
</
template
>
<
script
>
import
mxgraph
from
"@/utils/mxgraph"
;
const
{
mxGraph
,
mxUtils
,
mxEvent
,
mxKeyHandler
,
mxRubberband
,
mxConstants
,
mxStencilRegistry
,
mxStencil
,
mxCodec
,
mxGraphModel
,
mxGeometry
,
}
=
mxgraph
import
{
tableFields
,
inputOutputFields
,
//获取表输出
}
from
"@/api/kettle/file"
;
export
default
({
data
(){
return
{
remindVisible
:
false
,
myForm
:{},
//解决子组件改变父组件传递props属性报错
newGraph
:{},
fieldsList1
:[],
fieldsList2
:[],
field
:
false
,
//编辑弹窗
editDia
:
false
,
//编辑表字段
fieldForm
:{},
//编辑弹窗
stepName
:{
name
:
'删除'
},
activeName
:
'content'
,
// 查询字段--start------------
fieldsList
:[],
//字段获取
// 表头数据
tableHead
:[
{
column_name
:
"in_stream_name"
,
column_comment
:
"输入流字段"
},
{
column_name
:
"out_stream_name"
,
column_comment
:
"输出流字段"
},
{
column_name
:
"cut_from"
,
column_comment
:
"起始位置"
},
{
column_name
:
"cut_to"
,
column_comment
:
"结束位置"
}
],
// 表格数据
tableData
:
[
],
// 查询字段--end------------
}
},
watch
:{
// 解决子组件改变父组件传进来的变量的属性不报错start------
formSend
(
val
){
console
.
log
(
"回显的表单数据==="
,
val
);
this
.
myForm
=
val
;
if
(
this
.
myForm
.
fields
){
var
ny
=
JSON
.
parse
(
this
.
myForm
.
fields
);
this
.
tableData
=
ny
;
}
},
// 解决子组件改变父组件传进来的变量的属性不报错start------
},
props
:[
"cutStringVisible"
,
"doubleClickCell"
,
"saveOutputDialog"
,
"formSend"
],
mounted
(){
},
methods
:{
clickFun
(
graph
){
console
.
log
(
graph
,
'双击获取值'
)
this
.
newGraph
=
graph
;
// setTimeout(() => {
// this.$refs.databaseChoose.clickFun(this.newGraph);
// }, 500);
},
handleClose
(){
this
.
$emit
(
"update:cutStringVisible"
,
false
);
},
confirm
(){
this
.
myForm
.
fields
=
JSON
.
stringify
(
this
.
tableData
);
//字段复值
console
.
log
(
'弹窗数据:==='
,
this
.
myForm
);
this
.
saveOutputDialog
(
this
.
myForm
);
this
.
handleClose
();
//关闭弹窗
},
//新增或者编辑弹窗
fieldClick
(
state
,
val
)
{
this
.
field
=
!
this
.
field
;
this
.
dataState
=
state
;
if
(
state
)
{
this
.
fieldForm
=
{};
}
else
{
this
.
fieldForm
=
val
;
}
},
//关闭编辑的弹窗
handleCloseEdit
(){
this
.
field
=
!
this
.
field
;
},
// 字段
addField
()
{
this
.
field
=
!
this
.
field
;
console
.
log
(
'添加的字段==='
,
this
.
fieldForm
);
if
(
this
.
dataState
)
{
this
.
tableData
.
push
(
this
.
fieldForm
);
}
},
tableFields
(){
if
(
this
.
doubleClickCell
){
var
title
=
this
.
doubleClickCell
.
value
.
attributes
.
label
.
value
}
console
.
log
(
'获取cell888888==='
,
this
.
doubleClickCell
);
let
pamer
=
new
FormData
();
// 创建form对象
pamer
.
append
(
"databaseName"
,
this
.
deleteForm
.
connection
);
// 画布xml转码
const
codec
=
new
mxCodec
();
const
encodedModel
=
codec
.
encode
(
this
.
newGraph
.
getModel
());
//xml对象
console
.
log
(
"获取字段的画布详情:"
,
encodedModel
);
var
myXmlVal
=
mxUtils
.
getPrettyXml
(
encodedModel
);
//xml字符串
pamer
.
append
(
"graphXml"
,
myXmlVal
);
pamer
.
append
(
"schema"
,
this
.
deleteForm
.
schema
);
pamer
.
append
(
"table"
,
this
.
deleteForm
.
table
);
pamer
.
append
(
"query"
,
''
);
tableFields
(
pamer
).
then
(
res
=>
{
console
.
log
(
'字段'
,
res
);
// this.blankCanvas = res
this
.
fieldsList1
=
res
;
})
},
//获取表输出
inputOutputFields
(
par
){
if
(
this
.
doubleClickCell
){
var
title
=
this
.
doubleClickCell
.
value
.
attributes
.
label
.
value
}
console
.
log
(
'获取cell888888==='
,
this
.
doubleClickCell
);
let
pamer
=
new
FormData
();
// 创建form对象
pamer
.
append
(
"stepName"
,
encodeURIComponent
(
title
));
// 画布xml转码
const
codec
=
new
mxCodec
();
const
encodedModel
=
codec
.
encode
(
this
.
newGraph
.
getModel
());
//xml对象
console
.
log
(
"获取字段的画布详情:"
,
encodedModel
);
var
myXmlVal
=
mxUtils
.
getXml
(
encodedModel
);
//xml字符串
pamer
.
append
(
"graphXml"
,
myXmlVal
);
pamer
.
append
(
"before"
,
true
);
pamer
.
append
(
"query"
,
''
);
inputOutputFields
(
pamer
).
then
(
res
=>
{
console
.
log
(
'字段'
,
res
);
if
(
par
==
"get"
){
var
newArray
=
[];
res
.
forEach
(
item
=>
{
var
newObj
=
{};
newObj
.
in_stream_name
=
item
.
name
;
// newObj.condition="=";
// newObj.name=item.name;
// newObj.name2="";
newArray
.
push
(
newObj
);
});
this
.
tableData
=
newArray
;
}
else
{
this
.
fieldsList2
=
res
;
}
})
},
//删除全部
deleteFields
(){
this
.
tableData
=
[];
},
//获取字段提示弹窗
showRemindDia
(){
this
.
remindVisible
=!
this
.
remindVisible
;
}
}
})
</
script
>
\ No newline at end of file
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