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
ba76d42f
Commit
ba76d42f
authored
Mar 23, 2021
by
李耀锟
Browse files
Options
Browse Files
Download
Plain Diff
解决冲突
parents
e0ec5bf7
6b2a5129
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
13 changed files
with
456 additions
and
16 deletions
+456
-16
src/api/kettle/file.js
+35
-1
src/assets/styles/index.scss
+2
-2
src/main.js
+3
-0
src/views/dashboard-kettle/components/designer/FlowDesigner.vue
+17
-7
src/views/dialogs-components/dialog-remind.vue
+3
-2
src/views/dialogs-components/global/establish/index.js
+3
-0
src/views/dialogs-components/global/establish/main.vue
+0
-0
src/views/dialogs-components/global/export-tree/index.js
+3
-0
src/views/dialogs-components/global/export-tree/main.vue
+147
-0
src/views/dialogs-components/global/index.js
+13
-0
src/views/kettle/home.vue
+0
-0
src/views/kettle/kettle.css
+225
-2
src/views/output-dialog/table-out.vue
+5
-2
No files found.
src/api/kettle/file.js
View file @
ba76d42f
...
...
@@ -62,12 +62,46 @@ export function checkInit(data) {
}
// 数据库浏览
// export function dataBaseScan(data) {
// return request({
// url: 'etlweb/database/explorer',
// data,
// method: 'post'
// })
// }
export
function
dataBaseScan
(
data
)
{
return
request
({
url
:
'etlweb/database/explorer'
,
url
:
'etlweb/database/explorer
2
'
,
data
,
method
:
'post'
})
}
// 导出资源库树
export
function
exptree
(
data
)
{
return
request
({
url
:
'etlweb/repository/exptree'
,
data
,
method
:
'post'
})
}
// 导出资源库
export
function
expRespository
(
data
)
{
return
request
({
url
:
'etlweb/repository/exp'
,
data
,
method
:
'post'
})
}
// 下载
// export function download(data) {
// return request({
// url: 'etlweb/attachment/download',
// data,
// method: 'post'
// })
// }
src/assets/styles/index.scss
View file @
ba76d42f
...
...
@@ -581,9 +581,9 @@ aside {
//
//
$svgUrl:'http://192.168.0.2:9888/ETLWEB-SERVER/etlweb';
$svgUrl
:
'http://192.168.0.2:9888/ETLWEB-SERVER/etlweb'
;
// $svgUrl:'http://192.168.0.44:9888/ETLWEB-SERVER/etlweb';
$svgUrl
:
'http://192.168.0.44:9882/ETLWEB-SERVER/etlweb'
;
//
$svgUrl:'http://192.168.0.44:9882/ETLWEB-SERVER/etlweb';
// .schema { background-image: url($svgUrl/ui/images/schema.svg?scale=16) !important;}
.preview
{
background-image
:
url($svgUrl+'/ui/images/preview.svg?scale=16')
!
important
;}
...
...
src/main.js
View file @
ba76d42f
...
...
@@ -36,6 +36,9 @@ Vue.use(jsPlump);
// 引入自定义指令
// import './utils/dialog.js';
// 引入全局组件
import
'./views/dialogs-components/global'
Vue
.
use
(
VueHighlightJS
)
Vue
.
use
(
mavonEditor
)
Vue
.
use
(
permission
)
...
...
src/views/dashboard-kettle/components/designer/FlowDesigner.vue
View file @
ba76d42f
...
...
@@ -774,7 +774,7 @@
<!-- 输出弹窗start=============== -->
<outDialog
ref=
"tableOutPut"
:tableOutPutVisible
.
sync=
"tableOutPutVisible"
></outDialog>
<outDialog
ref=
"tableOutPut"
:tableOutPutVisible
.
sync=
"tableOutPutVisible"
@
fathertrans=
"fathertrans"
></outDialog>
<insertOrUpdate
ref=
"insertOrdate"
:InsertOrUpdateVisible
.
sync=
"InsertOrUpdateVisible"
></insertOrUpdate>
<excelOutPutDialog
ref=
"excelOut"
:excelOutPutVisible
.
sync=
"excelOutPutVisible"
></excelOutPutDialog>
<updateDialog
ref=
"update"
:updateVisible
.
sync=
"updateVisible"
></updateDialog>
...
...
@@ -843,12 +843,12 @@ import microDialog from '../../../output-dialog/micro-excel'
export
default
{
//
props: {
//
dialogVisibleFourth: {
//
type: Boolean,
//
default: false
//
}
//
},
props
:
{
dialogVisibleFourth
:
{
type
:
Boolean
,
default
:
false
}
},
data
()
{
return
{
...
...
@@ -1061,6 +1061,12 @@ export default {
});
},
methods
:
{
// 子组件发射回来的弹窗变量变为true
fathertrans
(
res
){
// this.dialogVisibleFourth=res;
this
.
$emit
(
"update:dialogVisibleFourth"
,
res
);
console
.
log
(
'发射回父组件===='
);
},
fileChnageInput
(
e
)
{
console
.
log
(
e
);
},
...
...
@@ -1610,6 +1616,10 @@ rows.splice(index, 1);
this
.
TextFileInputDialog
=
!
this
.
TextFileInputDialog
return
;
}
if
(
node
.
ids
==
"step16"
)
{
this
.
tableOutPutVisible
=
!
this
.
tableOutPutVisible
;
return
;
}
},
// 是否具有该线
hasLine
(
from
,
to
)
{
...
...
src/views/dialogs-components/dialog-remind.vue
View file @
ba76d42f
...
...
@@ -98,11 +98,12 @@
if
(
res
)
{
this
.
$message
.
success
(
'删除成功!'
);
// 关闭弹窗
this
.
dialogVisibleOne
=
false
;
// this.dialogVisibleOne=false;
this
.
$emit
(
"update:dialogVisibleOne"
,
false
);
this
.
dialogVisibleTwo
=
false
;
}
else
{
this
.
$message
.
error
(
res
.
errMsg
)
this
.
$message
.
error
(
res
.
message
)
}
})
}
...
...
src/views/dialogs-components/global/establish/index.js
0 → 100644
View file @
ba76d42f
import
main
from
'./main.vue'
export
default
main
\ No newline at end of file
src/views/dialogs-components/global/establish/main.vue
0 → 100644
View file @
ba76d42f
This diff is collapsed.
Click to expand it.
src/views/dialogs-components/global/export-tree/index.js
0 → 100644
View file @
ba76d42f
import
main
from
'./main.vue'
export
default
main
\ No newline at end of file
src/views/dialogs-components/global/export-tree/main.vue
0 → 100644
View file @
ba76d42f
<
template
>
<div>
<!-- 浏览 -->
<el-dialog
title=
"资源库导出"
:visible
.
sync=
"exportDialogVisible"
width=
"650px"
top=
"15%"
:close-on-click-modal=
"false"
:before-close=
"handleCloseScan"
>
<!-- 文件夹存放区域start-->
<el-tree
:data=
"exTreeList"
:auto-expand-parent=
"true"
:default-expand-all=
"false"
node-key=
"id"
ref=
"tree"
:props=
"defaultProps"
:highlight-current=
"true"
show-checkbox
@
check-change=
"getCheckedNodes"
>
<span
class=
"custom-tree-node"
slot-scope=
"
{ node, data }">
<span
style=
"display: flex; align: center"
>
<div
:class=
"data.iconCls"
style=
"
display: inline-block;
width: 20px;
height: 20px;
background-repeat: no-repeat;
background-position: center;
"
width=
""
alt=
""
></div>
{{
node
.
label
}}
</span>
</span>
</el-tree>
<!-- 文件夹存放区域end -->
<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
:
"export-tree"
,
data
()
{
return
{
exTreeList
:[],
defaultProps
:
{
label
:
"text"
,
children
:
"children"
,
},
checkedArr
:[]
}
},
props
:
{
exportDialogVisible
:
Boolean
,
// listNames: Function, //父传过来的方法
},
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 link = document.createElement("a");
// link.style.display = "none";
// link.href = url;
// link.setAttribute("download", "下载名称");
// document.body.appendChild(link);
// link.click();
var
url
=
`http://192.168.0.2:9888/ETLWEB-SERVER/etlweb/attachment/download?filePath=
${
res
.
message
}
&remove=true`
window
.
open
(
url
);
}
else
{
this
.
$message
.
error
(
res
.
errMsg
);
}
});
},
handleCloseScan
()
{
this
.
$emit
(
"update:exportDialogVisible"
,
false
);
},
},
};
</
script
>
<
style
>
.type-checked
{
background-color
:
#8888ff
;
color
:
#fff
;
}
</
style
>
\ No newline at end of file
src/views/dialogs-components/global/index.js
0 → 100644
View file @
ba76d42f
import
Vue
from
'vue'
const
componentsContext
=
require
.
context
(
'./'
,
true
,
/
\.
js$/
);
// 遍历出每个组件的路径
componentsContext
.
keys
().
forEach
(
component
=>
{
const
componentConfig
=
componentsContext
(
component
);
//兼容important export和require module.export两种规范
const
ctrl
=
componentConfig
.
default
||
componentConfig
;
// 加载全局组件
if
(
ctrl
&&
ctrl
.
name
){
Vue
.
component
(
ctrl
.
name
,
ctrl
);
}
})
\ No newline at end of file
src/views/kettle/home.vue
View file @
ba76d42f
This diff is collapsed.
Click to expand it.
src/views/kettle/kettle.css
View file @
ba76d42f
/* .trans { background-image: url(/web/ui/images/spoongraph.svg?scale=16) !important;} */
\ No newline at end of file
.content
{
direction
:
flex
;
}
.ef-left-box
{
flex
:
1
}
.el-tabs--card
>
.el-tabs__header
{
margin
:
0
!important
;
}
.el-tabs--card
>
.el-tabs__header
{
margin
:
0
;
}
.el-tabs__item
{
background-color
:
#DEECFD
;
color
:
#1567A9
;
}
.el-tabs--card
>
.el-tabs__header
.el-tabs__item.is-active
{
border-bottom
:
1px
solid
#dce3e8
;
}
.el-tabs__item.is-active
{
color
:
#FFDEAD
;
}
.el-tabs--card
>
.el-tabs__header
{
border-bottom
:
1px
solid
#E4E7ED
;
}
.sel-content
{
min-height
:
81vh
;
border
:
1px
solid
#dce3e8
;
}
.sel-menu-bar
{
background-color
:
#D6E3F2
;
}
.sel-btn
{
display
:
inline-block
;
padding
:
7px
15px
;
font-size
:
12px
;
border-radius
:
3px
;
}
.text-center
{
text-align
:
center
;
}
.drop-item
{
padding
:
10px
5px
;
}
.space-gap
{
margin-right
:
5px
;
}
.rg
{
text-align
:
right
;
}
.el-tabs__item.is-active
{
color
:
#4074AF
;
font-weight
:
bold
;
}
/* 拖拽相关样式start-------------------- */
/*包围div样式*/
.box
{
width
:
100%
;
height
:
100%
;
margin
:
1%
0px
;
overflow
:
hidden
;
padding
:
0
15px
;
min-height
:
86vh
;
display
:
flex
;
}
/*左侧div样式*/
.left
{
/*左侧初始化宽度*/
width
:
350px
;
/*左侧初始化宽度*/
height
:
100%
;
background
:
#FFFFFF
;
float
:
left
;
min-height
:
86vh
;
}
/*拖拽区div样式*/
.resize
{
cursor
:
col-resize
;
background-color
:
#d6d6d6
;
border-radius
:
5px
;
margin-top
:
-10px
;
width
:
5px
;
background-size
:
cover
;
background-position
:
center
;
font-size
:
32px
;
color
:
white
;
background-color
:
white
;
min-height
:
86vh
;
}
/*拖拽区鼠标悬停样式*/
.resize
:hover
{
color
:
#444444
;
}
/*右侧div'样式*/
.mid
{
flex
:
1
;
/*右侧初始化宽度*/
height
:
100%
;
background
:
#fff
;
/* box-shadow: -1px 4px 5px 3px rgba(0, 0, 0, 0.11); */
/* min-height: 81vh; */
min-height
:
79vh
;
/* margin-top:4vh; */
margin-top
:
5vh
;
border
:
1px
solid
#dce3e8
;
}
/* 拖拽相关样式end-------------------- */
.el-dialog__header
{
background-color
:
#D2E0F1
;
}
.el-dialog__body
{
padding
:
15px
15px
;
}
.btn-pointer
{
padding
:
5px
;
border-radius
:
5px
;
}
.btn-pointer
:hover
{
border
:
1px
solid
#AAC8F1
;
box-shadow
:
2px
2px
2px
2px
#AAC8F1
;
}
.table-container
{
margin-top
:
15px
;
border
:
1px
solid
#D2E0F1
;
overflow-y
:
scroll
;
height
:
300px
;
}
.box
ul
{
margin
:
0
;
padding
:
0
;
}
.box
ul
li
{
list-style
:
none
;
height
:
30px
;
line-height
:
30px
;
padding
:
0
10px
;
white-space
:
nowrap
;
}
.table-container-repos
{
height
:
100px
;
margin-top
:
0
;
}
.choose-container
{
width
:
200px
;
display
:
flex
;
flex-direction
:
column
;
margin-right
:
10px
;
}
.left-container
{
width
:
180px
;
border
:
1px
solid
#D2E0F1
;
overflow-y
:
scroll
;
height
:
520px
;
margin-right
:
10px
;
}
.leftv
{
border
:
1px
solid
#D2E0F1
;
height
:
250px
;
}
.rightv
{
border
:
1px
solid
#D2E0F1
;
height
:
150px
;
}
.input-container
{
flex
:
1
;
border
:
1px
solid
#D2E0F1
;
position
:
relative
;
padding
:
15px
;
}
.input-container-title
{
background-color
:
white
;
padding
:
0
5px
;
position
:
absolute
;
top
:
-8px
;
left
:
15px
;
font-weight
:
bold
;
color
:
#15428B
;
}
.boxtitle
{
padding
:
5px
10px
;
background-color
:
#CFDFF3
;
}
.scroll-y
{
overflow-y
:
scroll
;
}
/* .type-checked{
background-color:#8888FF;
color: #fff;
} */
.check-group
{
padding
:
5px
;
background-color
:
#D1DDEF
;
}
.checkbox-sty
{
display
:
block
;
padding
:
5px
0
;
}
.file-container
{
height
:
400px
;
border
:
1px
solid
#D2E0F1
;
}
.btn.hover
{
cursor
:
pointer
;
background-color
:
#EEEEEE
;
}
.hover
{
cursor
:
pointer
;
background-color
:
#EEEEEE
;
}
.btn.checked
{
background-color
:
#8888FF
;
color
:
#fff
;
}
\ No newline at end of file
src/views/output-dialog/table-out.vue
View file @
ba76d42f
...
...
@@ -16,7 +16,6 @@
<el-tabs
v-model=
"activeName"
type=
"border-card"
>
<el-tab-pane
label=
"基本配置"
name=
"content"
>
<el-form
ref=
"form"
:model=
"form"
label-width=
"200px"
>
<el-form-item
label=
"数据库连接:"
>
...
...
@@ -31,7 +30,7 @@
<el-button
size=
"mini"
>
编辑
</el-button></el-col
>
<el-col
class=
"line"
:span=
"3"
>
<el-button
size=
"mini"
>
新建
</el-button></el-col
<el-button
size=
"mini"
@
click=
"newAdd"
>
新建
</el-button></el-col
>
<el-col
class=
"line"
:span=
"3"
>
<el-button
size=
"mini"
>
向导
</el-button></el-col
...
...
@@ -272,6 +271,10 @@ export default ({
handleClose
(){
this
.
$emit
(
"update:tableOutPutVisible"
,
false
);
},
newAdd
(){
console
.
log
(
'新建弹窗'
);
this
.
$emit
(
"fathertrans"
,
true
);
//表输出组件要传回父组件的值
},
confirm
(){
...
...
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