Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
Q
qahome-diamond
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
QA
qahome-diamond
Commits
2624227f
Commit
2624227f
authored
Apr 28, 2019
by
智勇
Browse files
Options
Browse Files
Download
Plain Diff
Merge branch 'master' of
http://git.quantgroup.cn/QA/qahome-diamond
parents
01483e69
9ead530c
Changes
7
Show whitespace changes
Inline
Side-by-side
Showing
7 changed files
with
191 additions
and
23 deletions
+191
-23
docker.js
src/api/docker.js
+12
-0
docker.js
src/router/modules/docker.js
+7
-0
sync.vue
src/views/dbconfig/sync.vue
+6
-2
createEnv.vue
src/views/docker/createEnv.vue
+14
-4
deployEnv.vue
src/views/docker/deployEnv.vue
+122
-0
envDetail.vue
src/views/docker/envDetail.vue
+2
-2
runingEnv.vue
src/views/docker/runingEnv.vue
+28
-15
No files found.
src/api/docker.js
View file @
2624227f
...
@@ -6,6 +6,18 @@ export function getAllRepos() {
...
@@ -6,6 +6,18 @@ export function getAllRepos() {
})
})
}
}
export
function
getBaseRepos
()
{
return
request
({
url
:
'
/repo/getBase
'
})
}
export
function
getAppRepos
()
{
return
request
({
url
:
'
/repo/getApp
'
})
}
export
function
getAllEnvTemplate
()
{
export
function
getAllEnvTemplate
()
{
return
request
({
return
request
({
url
:
'
/envTemplate/getAll
'
url
:
'
/envTemplate/getAll
'
...
...
src/router/modules/docker.js
View file @
2624227f
...
@@ -41,6 +41,13 @@ const dockersRouter = {
...
@@ -41,6 +41,13 @@ const dockersRouter = {
name
:
'
Detail
'
,
name
:
'
Detail
'
,
meta
:
{
title
:
'
detail
'
,
noCache
:
true
},
meta
:
{
title
:
'
detail
'
,
noCache
:
true
},
hidden
:
true
hidden
:
true
},
{
path
:
'
deployEnv/:name
'
,
component
:
()
=>
import
(
'
@/views/docker/deployEnv
'
),
name
:
'
deploy
'
,
meta
:
{
title
:
'
部署应用服务
'
,
noCache
:
true
},
hidden
:
true
}
}
]
]
}
}
...
...
src/views/dbconfig/sync.vue
View file @
2624227f
...
@@ -24,8 +24,9 @@
...
@@ -24,8 +24,9 @@
</el-form>
</el-form>
<div
style=
"margin-left:420px"
>
<div
style=
"margin-left:420px"
>
<el-button
:disabled=
"disableBool"
type=
"primary"
@
click=
"sync()"
>
{{
$t
(
'
table.confirm
'
)
}}
</el-button>
<el-button
@
click=
"goBack()"
>
{{
$t
(
'
table.cancel
'
)
}}
</el-button>
<el-button
:disabled=
"disableBool"
@
click=
"resetTemp()"
>
{{
$t
(
'
table.cancel
'
)
}}
</el-button>
<el-button
:disabled=
"disableBool"
type=
"primary"
@
click=
"sync()"
>
{{
$t
(
'
table.confirm
'
)
}}
</el-button>
</div
>
</div
>
</div
>
</div
>
<div
style=
"padding:10px 20px 0px"
>
<div
style=
"padding:10px 20px 0px"
>
...
@@ -82,6 +83,9 @@ export default {
...
@@ -82,6 +83,9 @@ export default {
this
.
getDBName
()
this
.
getDBName
()
},
},
methods
:
{
methods
:
{
goBack
()
{
this
.
$router
.
go
(
-
1
)
},
getNamespace
()
{
getNamespace
()
{
getNamespaceTke
().
then
(
res
=>
{
getNamespaceTke
().
then
(
res
=>
{
this
.
namespaces
=
res
.
data
&&
res
.
data
.
namespaces
.
map
(
item
=>
item
.
name
)
this
.
namespaces
=
res
.
data
&&
res
.
data
.
namespaces
.
map
(
item
=>
item
.
name
)
...
...
src/views/docker/createEnv.vue
View file @
2624227f
<
template
>
<
template
>
<div
class=
"app-container"
style=
""
>
<div
class=
"app-container"
>
<el-form
ref=
"dataForm"
label-position=
"left"
label-width=
"130px"
style=
"width: 95%; margin-left:20px;"
>
<el-form
ref=
"dataForm"
label-position=
"left"
label-width=
"130px"
style=
"width: 95%; margin-left:20px;"
>
<el-alert
type=
"warning"
style=
"margin-bottom: 20px; font-size: 14px;"
show-icon
>
<slot
name=
"description"
>
<p>
环境创建成功后,到运行中环境页面
</p>
<p>
1. 同步数据库 和 rabbitmq
</p>
<p>
2. 再部署应用服务
</p>
</slot>
</el-alert>
<el-form-item
label=
"Namespace名称"
>
<el-form-item
label=
"Namespace名称"
>
<el-input
v-model=
"namespace"
placeholder=
"请输入"
/>
<el-input
v-model=
"namespace"
placeholder=
"请输入"
/>
...
@@ -28,7 +38,7 @@
...
@@ -28,7 +38,7 @@
</
template
>
</
template
>
<
script
>
<
script
>
import
{
get
All
Repos
,
getAllEnvTemplate
,
createEnv
}
from
'
@/api/docker
'
import
{
get
Base
Repos
,
getAllEnvTemplate
,
createEnv
}
from
'
@/api/docker
'
import
permission
from
'
@/directive/permission/index.js
'
// 权限判断指令
import
permission
from
'
@/directive/permission/index.js
'
// 权限判断指令
export
default
{
export
default
{
...
@@ -58,8 +68,8 @@ export default {
...
@@ -58,8 +68,8 @@ export default {
methods
:
{
methods
:
{
getAllRepos
()
{
getAllRepos
()
{
get
All
Repos
().
then
(
res
=>
{
get
Base
Repos
().
then
(
res
=>
{
this
.
repoNamespaces
=
res
.
data
this
.
repoNamespaces
=
res
.
data
.
filter
(
item
=>
item
.
type
===
'
base
'
)
})
})
},
},
...
...
src/views/docker/deployEnv.vue
0 → 100644
View file @
2624227f
<
template
>
<div
class=
"app-container"
>
<el-form
ref=
"dataForm"
label-position=
"left"
label-width=
"130px"
style=
"width: 95%; margin-left:20px;"
>
<el-form-item
label=
"Namespace名称"
>
<el-input
v-model=
"namespace"
:disabled=
"true"
/>
</el-form-item>
<el-form-item
label=
"选择模板"
>
<el-select
v-model=
"currentTemplate"
value-key=
"preset_name"
style=
"width:100%"
@
change=
"useTemplate"
>
<el-option
v-for=
"item in templates"
:value=
"item.name"
:key=
"item.name"
/>
</el-select>
</el-form-item>
<el-form-item
v-for=
"(ns, index) in repoNamespaces"
:label=
"ns.type | upper"
:key=
"index"
>
<el-card>
<el-button
v-for=
"item in ns.repos"
:key=
"item.domain"
:type=
"dependant[ns.type] && dependant[ns.type].find(sys => sys.appname === item.appname) ? 'success' : ''"
style=
"margin:3px"
@
click=
"selectSystem(item, ns.type)"
>
{{
item
.
appname
}}
</el-button>
</el-card>
</el-form-item>
</el-form>
<el-button
style=
"margin-right:40px;margin-bottom:40px;float:right"
type=
"primary"
@
click=
"createData()"
>
{{
$t
(
'
table.confirm
'
)
}}
</el-button>
<el-button
style=
"margin-right:40px;margin-bottom:40px;float:right"
@
click=
"goBack()"
>
{{
$t
(
'
table.cancel
'
)
}}
</el-button>
</div>
</
template
>
<
script
>
import
{
getAppRepos
,
getAllEnvTemplate
,
createEnv
}
from
'
@/api/docker
'
export
default
{
filters
:
{
upper
:
function
(
value
)
{
if
(
!
value
)
return
''
value
=
value
.
toString
()
return
value
[
0
].
toUpperCase
()
+
value
.
slice
(
1
)
}
},
data
()
{
return
{
namespace
:
''
,
dependant
:
{},
repoNamespaces
:
[],
currentTemplate
:
''
,
templates
:
{}
}
},
created
()
{
this
.
namespace
=
this
.
$route
.
params
.
name
this
.
getAllRepos
()
this
.
getAllEnvTemplate
()
},
methods
:
{
goBack
()
{
this
.
$router
.
go
(
-
1
)
},
getAllRepos
()
{
getAppRepos
().
then
(
res
=>
{
this
.
repoNamespaces
=
res
.
data
})
},
getAllEnvTemplate
()
{
getAllEnvTemplate
().
then
(
res
=>
{
this
.
templates
=
res
.
data
})
},
selectSystem
(
item
,
type
)
{
if
(
!
this
.
dependant
[
type
])
this
.
$set
(
this
.
dependant
,
type
,
[])
const
index
=
this
.
dependant
[
type
].
findIndex
(
sys
=>
sys
.
appname
===
item
.
appname
)
if
(
index
===
-
1
)
{
this
.
dependant
[
type
].
push
(
item
)
}
else
{
this
.
dependant
[
type
].
splice
(
index
,
1
)
}
},
useTemplate
()
{
const
vm
=
this
const
t
=
this
.
templates
.
find
(
item
=>
item
.
name
===
this
.
currentTemplate
)
// 清空所有选择
vm
.
$set
(
this
,
'
dependant
'
,
{})
// 遍历设置
const
keys
=
Object
.
keys
(
t
)
keys
.
forEach
(
key
=>
{
if
(
key
!==
'
name
'
&&
key
!==
'
_id
'
)
{
t
[
key
].
forEach
(
repo
=>
{
vm
.
selectSystem
(
repo
,
key
)
})
}
})
},
createData
()
{
const
param
=
{
namespace
:
this
.
namespace
,
dependant
:
this
.
dependant
}
createEnv
(
param
).
then
(
res
=>
{
this
.
$router
.
push
({
path
:
`/dockers/runingEnv/
${
this
.
namespace
}
`
})
})
this
.
$message
({
message
:
'
正在部署,请稍候
'
,
type
:
'
success
'
,
duration
:
2000
})
}
}
}
</
script
>
src/views/docker/envDetail.vue
View file @
2624227f
...
@@ -12,8 +12,8 @@
...
@@ -12,8 +12,8 @@
更多操作
更多操作
</el-button>
</el-button>
<el-dropdown-menu
slot=
"dropdown"
>
<el-dropdown-menu
slot=
"dropdown"
>
<el-dropdown-item
@
click.native=
"syncDb"
>
从线上同步DB
</el-dropdown-item>
<el-dropdown-item
@
click.native=
"syncDb"
>
同步线上MySQL
</el-dropdown-item>
<el-dropdown-item
@
click.native=
"syncMq"
>
从线上同步
MQ
</el-dropdown-item>
<el-dropdown-item
@
click.native=
"syncMq"
>
同步线上
MQ
</el-dropdown-item>
<el-dropdown-item
@
click.native=
"clearRedis"
>
清理Redis缓存
</el-dropdown-item>
<el-dropdown-item
@
click.native=
"clearRedis"
>
清理Redis缓存
</el-dropdown-item>
</el-dropdown-menu>
</el-dropdown-menu>
</el-dropdown>
</el-dropdown>
...
...
src/views/docker/runingEnv.vue
View file @
2624227f
...
@@ -18,33 +18,32 @@
...
@@ -18,33 +18,32 @@
<el-table-column
<el-table-column
prop=
"name"
prop=
"name"
label=
"名称"
label=
"名称"
>
width=
"100"
>
<template
slot-scope=
"scope"
>
<template
slot-scope=
"scope"
>
<span
class=
"link-type"
@
click=
"handleDetail(scope.row)"
>
{{
scope
.
row
.
name
}}
</span>
<span
class=
"link-type"
@
click=
"handleDetail(scope.row
.name
)"
>
{{
scope
.
row
.
name
}}
</span>
</
template
>
</
template
>
</el-table-column>
</el-table-column>
<el-table-column
<el-table-column
prop=
"createdAt"
prop=
"createdAt"
label=
"创建时间"
label=
"创建时间"
/>
width=
"160"
/>
<el-table-column
<el-table-column
prop=
"status"
prop=
"status"
label=
"运行状态"
label=
"运行状态"
>
width=
"100"
>
<
template
slot-scope=
"scope"
>
<
template
slot-scope=
"scope"
>
{{
scope
.
row
.
status
|
formatStatus
}}
{{
scope
.
row
.
status
|
formatStatus
}}
</
template
>
</
template
>
</el-table-column>
</el-table-column>
<el-table-column
<el-table-column
prop=
"description"
prop=
"operation"
label=
"描述信息"
/>
label=
"操作"
>
<!--<el-table-column label="操作" min-width="100px">-->
<
template
slot-scope=
"scope"
>
<!--<template slot-scope="scope">-->
<el-button
type=
"primary"
size=
"mini"
@
click=
"syncMySQL(scope.row.name)"
>
同步线上MySQL
</el-button>
<!--<el-button type="infos" size="mini">备份</el-button>-->
<el-button
size=
"mini"
type=
"primary"
@
click=
"syncMQ(scope.row.name)"
>
同步线上MQ
</el-button>
<!--<el-button size="mini" type="primary">挂起</el-button>-->
<el-button
size=
"mini"
type=
"primary"
@
click=
"deploy(scope.row.name)"
>
部署应用服务
</el-button>
<!--<el-button size="mini" type="danger">删除</el-button>-->
</
template
>
<!--</template>-->
</el-table-column>
<!--</el-table-column>-->
</el-table>
</el-table>
</div>
</div>
</div>
</div>
...
@@ -64,6 +63,20 @@ export default {
...
@@ -64,6 +63,20 @@ export default {
this
.
fetchK8sList
()
this
.
fetchK8sList
()
},
},
methods
:
{
methods
:
{
syncMySQL
(
namespace
)
{
this
.
$router
.
push
({
path
:
'
/dbsync
'
,
query
:
{
namespace
:
namespace
}
})
},
syncMQ
(
namespace
)
{
console
.
log
(
'
todo
'
)
},
deploy
(
namespace
)
{
this
.
$router
.
push
({
path
:
`/dockers/deployEnv/
${
namespace
}
`
})
},
fetchK8sList
()
{
fetchK8sList
()
{
fetchKubernetesList
().
then
(
res
=>
{
fetchKubernetesList
().
then
(
res
=>
{
const
exculde
=
[
'
default
'
,
'
kube-system
'
]
const
exculde
=
[
'
default
'
,
'
kube-system
'
]
...
@@ -80,9 +93,9 @@ export default {
...
@@ -80,9 +93,9 @@ export default {
indexMethod
(
index
)
{
indexMethod
(
index
)
{
return
index
+
1
return
index
+
1
},
},
handleDetail
(
scop
e
)
{
handleDetail
(
namespac
e
)
{
this
.
$router
.
push
({
this
.
$router
.
push
({
path
:
`/dockers/runingEnv/
${
scope
.
nam
e
}
`
path
:
`/dockers/runingEnv/
${
namespac
e
}
`
})
})
},
},
handleEdit
()
{
handleEdit
()
{
...
...
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