Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
Q
qa-platform-ui
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
qa-platform-ui
Commits
a9376e19
Commit
a9376e19
authored
Jun 08, 2021
by
晓彤
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
添加pipelinepipeline
parent
5822efde
Changes
3
Show whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
331 additions
and
31 deletions
+331
-31
dev.env.js
config/dev.env.js
+3
-3
jira.js
src/api/jira.js
+40
-0
Notify.vue
src/views/jira/Notify.vue
+288
-28
No files found.
config/dev.env.js
View file @
a9376e19
...
...
@@ -7,9 +7,9 @@ module.exports = merge(prodEnv, {
ENV_CONFIG
:
'
"dev"
'
,
// QA_PLATFORM: '"//localhost:8082"',
TESTDATA_API
:
'
"//testdata.liangkebang.com"
'
,
HOLMES
:
'
"//localhost:8084"
'
,
//
HOLMES: '"//localhost:8084"',
QA_PLATFORM
:
'
"//qa-platform-fe.liangkebang.net/"
'
,
//
HOLMES: '"//holmes-fe.liangkebang.net/"',
QA_API
:
"
//qaapi.liangkebang.com/
"
HOLMES
:
'
"//holmes-fe.liangkebang.net/"
'
,
QA_API
:
"
//qaapi.liangkebang.com/
"
,
})
src/api/jira.js
View file @
a9376e19
...
...
@@ -54,3 +54,43 @@ export function sendSmokingResult(data) {
data
})
}
// 获取pipeline列表接口
export
function
getPipelineList
(
queryInfo
)
{
return
request
({
url
:
'
/pipeline/list
'
,
method
:
'
get
'
,
params
:
queryInfo
})
}
// 获取所有服务列表
export
function
getGitProjectList
(
queryInfo
)
{
return
request
({
url
:
'
/gitlab/projects
'
,
method
:
'
get
'
,
params
:
queryInfo
})
}
// 获取分支列表
export
function
getGitBranchList
(
queryInfo
)
{
return
request
({
url
:
'
/gitlab/branches
'
,
method
:
'
get
'
,
params
:
queryInfo
})
}
// 添加pipeline接口
export
function
addPipeline
(
data
)
{
return
request
({
url
:
'
/pipeline/add
'
,
method
:
'
post
'
,
data
})
}
// 添加pipeline接口
export
function
editPipeline
(
data
)
{
return
request
({
url
:
'
/pipelist/modify
'
,
method
:
'
post
'
,
data
})
}
src/views/jira/Notify.vue
View file @
a9376e19
...
...
@@ -9,11 +9,19 @@
<el-table
:data=
"dingRobotList"
border
style=
"width: 100%"
>
<!--
<el-table-column
prop=
"id"
label=
"编号"
width=
"80px"
></el-table-column>
-->
<el-table-column
type=
"index"
label=
"序号"
width=
"50px"
></el-table-column>
<el-table-column
prop=
"projectName"
label=
"项目名"
width=
"220px"
></el-table-column>
<el-table-column
prop=
"dingUrl"
label=
"钉钉url"
></el-table-column>
<el-table-column
prop=
"creator"
label=
"创建人"
width=
"80px"
>
<el-table-column
prop=
"dingRobot.projectName"
label=
"项目名"
width=
"220px"
></el-table-column>
<!--
<el-table-column
prop=
"dingUrl"
label=
"钉钉url"
></el-table-column>
-->
<el-table-column
label=
"服务->分支"
width=
"300px"
>
<template
slot-scope=
"scope"
>
<div
v-for=
"item in scope.row.pipelineList"
:key=
"item.id"
><b>
{{
item
.
serviceName
}}
</b>
->
{{
item
.
serviceBranch
}}
</div>
</
template
>
</el-table-column>
<el-table-column
prop=
"createTime"
label=
"创建时间"
width=
"180px"
></el-table-column>
<el-table-column
prop=
"dingRobot.namespace"
label=
"环 境"
width=
"100px"
></el-table-column>
<el-table-column
prop=
"dingRobot.creator"
label=
"创建人"
width=
"100px"
>
</el-table-column>
<el-table-column
prop=
"dingRobot.createTime"
label=
"创建时间"
width=
"180px"
></el-table-column>
<el-table-column
label=
"操作"
width=
"400px"
>
<slot
slot-scope=
"scope"
>
<el-button
type=
"primary"
size=
"small"
@
click=
"openEditDialog(scope.row)"
>
编辑
</el-button>
...
...
@@ -31,21 +39,79 @@
<!-- 新增对话框 -->
<el-dialog
title=
"新增robot"
:visible.sync=
"addDialogVisible"
width=
"60%"
@
close=
"closeAddDialog"
>
<el-form
ref=
"addRobotFormRef"
:rules=
"formRules"
:model=
"
robotFor
m"
label-width=
"150px"
>
<el-form-item
label=
"jira项目"
prop=
"jiraProjectKey"
>
<el-select
v-model=
"
robotForm
.jiraProjectKey"
placeholder=
"请选择Jira项目"
>
<el-form
ref=
"addRobotFormRef"
:rules=
"formRules"
:model=
"
pipelineFro
m"
label-width=
"150px"
>
<el-form-item
label=
"jira项目"
prop=
"
pipelineFrom.dingRobot.
jiraProjectKey"
>
<el-select
v-model=
"
pipelineFrom.dingRobot
.jiraProjectKey"
placeholder=
"请选择Jira项目"
>
<el-option
v-for=
"item in jiraProjectList"
:key=
"item.key"
:label=
"item.name"
:value=
"item.key"
>
</el-option>
</el-select>
</el-form-item>
<el-form-item
label=
"项目名称"
prop=
"projectName"
>
<el-input
v-model=
"
robotForm
.projectName"
placeholder=
"请输入项目名称"
></el-input>
<el-form-item
label=
"项目名称"
prop=
"p
ipelineFrom.dingRobot.p
rojectName"
>
<el-input
v-model=
"
pipelineFrom.dingRobot
.projectName"
placeholder=
"请输入项目名称"
></el-input>
</el-form-item>
<el-form-item
label=
"钉钉通知地址"
prop=
"dingUrl"
>
<el-input
v-model=
"
robotForm
.dingUrl"
placeholder=
"请输入钉钉通知地址"
type=
"textarea"
></el-input>
<el-form-item
label=
"钉钉通知地址"
prop=
"
pipelineFrom.dingRobot.
dingUrl"
>
<el-input
v-model=
"
pipelineFrom.dingRobot
.dingUrl"
placeholder=
"请输入钉钉通知地址"
type=
"textarea"
></el-input>
</el-form-item>
<el-form-item
label=
"创建人"
prop=
"creator"
>
<el-input
v-model=
"robotForm.creator"
></el-input>
<el-form-item
label=
"创建人"
prop=
"pipelineFrom.dingRobot.creator"
>
<el-input
v-model=
"pipelineFrom.dingRobot.creator"
placeholder=
"请输入创建人"
></el-input>
</el-form-item>
<el-form-item
label=
"环 境"
prop=
"pipelineFrom.dingRobot.namespace"
>
<el-select
v-model=
"pipelineFrom.dingRobot.namespace"
placeholder=
"请选择环境"
>
<el-option
v-for=
"item in namespaceList"
:key=
"item.key"
:label=
"item.desc"
:value=
"item.key"
>
</el-option>
</el-select>
</el-form-item>
<!-- 添加 Pipeline -->
<el-form-item
label=
"Pipeline"
>
<el-row>
<el-col
:span=
"6"
>
<div
style=
"text-align: center"
>
服务
</div>
</el-col>
<el-col
:span=
"6"
>
<div
style=
"text-align: center"
>
分支
</div>
</el-col>
<el-col
:span=
"6"
>
<div
style=
"text-align: center"
>
自动部署
</div>
</el-col>
<el-col
:span=
"6"
>
<div>
操作
</div>
</el-col>
</el-row>
<el-row
v-for=
"(item, index) in pipelineFrom.pipelineList"
:key=
"index"
>
<el-col
:span=
"6"
>
<div
style=
"text-align: center;margin-top:5px"
>
<el-select
v-model=
"item.serviceModel"
placeholder=
"请选择服务"
@
change=
"selectServiceModel(item.serviceModel)"
clearable
>
<el-option
v-for=
"item in serviceList"
:key=
"item.index"
:label=
"item.name"
:value=
"item"
></el-option>
</el-select>
</div>
</el-col>
<el-col
:span=
"6"
>
<div
style=
"text-align: center;margin-top:5px"
>
<el-select
v-model=
"item.serviceBranch"
placeholder=
"请选择分支"
clearable
>
<el-option
v-for=
"item in serviceBranchList"
:key=
"item"
:label=
"item.name"
:value=
"item.name"
></el-option>
</el-select>
</div>
</el-col>
<el-col
:span=
"6"
>
<div
style=
"text-align: center;margin-top:5px"
>
<el-switch
v-model=
"item.enable"
active-color=
"#13ce66"
inactive-color=
"#A9A9A9"
active-text=
"是"
inactive-text=
"否"
@
change=
"changeState($event, '3')"
></el-switch>
</div>
</el-col>
<el-col
:span=
"6"
>
<div
style=
"margin-left: -15px;margin-top:5px"
>
<el-button
size=
"mini"
icon=
"el-icon-delete"
@
click=
"pipelineDelete(index)"
>
删除
</el-button>
</div>
</el-col>
</el-row>
<el-button
size=
"mini"
plain
@
click=
"AddPipelineListRow()"
style=
"mragin-top: 10px"
class=
"el-icon-circle-plus"
>
添加
</el-button>
</el-form-item>
</el-form>
<span
slot=
"footer"
class=
"dialog-footer"
>
...
...
@@ -72,6 +138,66 @@
<el-form-item
label=
"创建人"
prop=
"creator"
>
<el-input
v-model=
"editRobotForm.creator"
></el-input>
</el-form-item>
<el-form-item
label=
"环 境"
prop=
"namespace"
>
<el-select
v-model=
"editRobotForm.env"
placeholder=
"请选择环境"
>
<el-option
v-for=
"item in namespaceList"
:key=
"item.key"
:label=
"item.desc"
:value=
"item.key"
>
</el-option>
</el-select>
</el-form-item>
<!-- 编辑pipeline -->
<el-form-item
label=
"Pipeline"
>
<el-row>
<el-col
:span=
"6"
>
<div
style=
"text-align: center"
>
服务
</div>
</el-col>
<el-col
:span=
"6"
>
<div
style=
"text-align: center"
>
分支
</div>
</el-col>
<el-col
:span=
"6"
>
<div
style=
"text-align: center"
>
自动部署
</div>
</el-col>
<el-col
:span=
"6"
>
<div>
操作
</div>
</el-col>
</el-row>
<el-row
v-for=
"(item, index) in editPipelineList"
:key=
"index"
>
<el-col
:span=
"6"
>
<div
style=
"text-align: center;margin-top:5px"
>
<el-select
v-model=
"item.serviceName"
placeholder=
"请选择服务"
@
change=
"selectServiceModel(item.serviceName)"
clearable
>
<el-option
v-for=
"item in serviceList"
:key=
"item.name"
:label=
"item.name"
:value=
"item.name"
></el-option>
</el-select>
</div>
</el-col>
<el-col
:span=
"6"
>
<div
style=
"text-align: center;margin-top:5px"
>
<el-select
v-model=
"item.serviceBranch"
placeholder=
"请选择分支"
clearable
>
<el-option
v-for=
"item in serviceBranchList"
:key=
"item"
:label=
"item"
:value=
"item"
></el-option>
</el-select>
</div>
</el-col>
<el-col
:span=
"6"
>
<div
style=
"text-align: center;margin-top:5px"
>
<el-switch
v-model=
"item.enable"
active-color=
"#13ce66"
inactive-color=
"#A9A9A9"
active-text=
"是"
inactive-text=
"否"
@
change=
"changeState($event, '3')"
></el-switch>
</div>
</el-col>
<el-col
:span=
"6"
>
<div
style=
"margin-left: -15px;margin-top:5px"
>
<el-button
size=
"mini"
icon=
"el-icon-delete"
@
click=
"editPipelineDelete(index)"
>
删除
</el-button>
</div>
</el-col>
</el-row>
<el-button
size=
"mini"
plain
@
click=
"EditPipelineListRow()"
style=
"mragin-top: 10px"
class=
"el-icon-circle-plus"
>
添加
</el-button>
</el-form-item>
</el-form>
<span
slot=
"footer"
class=
"dialog-footer"
>
<el-button
@
click=
"editDialogVisible = false"
>
取 消
</el-button>
...
...
@@ -122,13 +248,17 @@
<
script
>
import
{
getJiraProjectList
,
getP
rojectRobot
List
,
getP
ipeline
List
,
addProjectRobot
,
modifyProjectRobot
,
delProjectRobot
,
sendScheduleReport
,
sendSmokingResult
sendSmokingResult
,
getGitProjectList
,
getGitBranchList
}
from
'
@/api/jira
'
import
{
getNamespaceList
}
from
'
@/api/getXyqbData
'
// import { getGitlabProject } from '@/api/qaApi'
export
default
{
data
()
{
return
{
...
...
@@ -143,12 +273,25 @@ export default {
editDialogVisible
:
false
,
sendScheduleDialogVisible
:
false
,
smokingDialogVisible
:
false
,
robotForm
:
{
pipelineFrom
:
{
dingRobot
:
{
projectName
:
''
,
dingUrl
:
''
,
creator
:
''
,
jiraProjectKey
:
''
jiraProjectKey
:
''
,
namespace
:
''
},
pipelineList
:
[
{
serviceName
:
''
,
serviceBranch
:
''
,
serviceType
:
''
,
namespace
:
''
,
enable
:
1
}
]
},
editRobotForm
:
{},
sendProjectRobot
:
{},
// 发送进度报告参数
...
...
@@ -171,15 +314,30 @@ export default {
],
formRules
:
{
projectName
:
[
{
required
:
true
,
message
:
'
请输入项目名称
'
,
trigger
:
'
blur
'
}
{
required
:
true
,
message
:
'
请输入项目名称
'
,
trigger
:
'
blur
'
}
],
dingUrl
:
[
{
required
:
true
,
message
:
'
请输入钉钉机器人url
'
,
trigger
:
'
blur
'
}
{
required
:
true
,
message
:
'
请输入钉钉机器人url
'
,
trigger
:
'
blur
'
}
],
jiraProjectKey
:
[
{
required
:
true
,
message
:
'
请选择对应的Jira项目
'
,
trigger
:
'
blur
'
}
{
required
:
true
,
message
:
'
请选择对应的Jira项目
'
,
trigger
:
'
blur
'
}
],
creator
:
[{
required
:
true
,
message
:
'
请输入创建人
'
,
trigger
:
'
blur
'
}]
creator
:
[{
required
:
true
,
message
:
'
请输入创建人
'
,
trigger
:
'
blur
'
}],
namespace
:
[
{
required
:
true
,
message
:
'
请输入创建人
'
,
trigger
:
'
blur
'
}
]
},
sendFormRules
:
{
progress
:
[
...
...
@@ -199,13 +357,45 @@ export default {
trigger
:
'
blur
'
}
]
},
// 添加pipeline
newPipelineList
:
[
{
serviceName
:
''
,
serviceBranch
:
''
,
serviceType
:
''
,
namespace
:
''
,
enable
:
1
,
serviceModel
:
''
}
],
serviceName
:
''
,
serviceType
:
''
,
serviceList
:
[],
serviceBranchList
:
[],
serviceMode
:
{
is_active
:
true
,
deploy_to_testenv
:
true
},
namespaceList
:
[],
projectName
:
''
,
// 编辑pipeline
editPipelineList
:
[
{
serviceName
:
''
,
serviceBranch
:
''
,
enable
:
true
}
]
}
},
methods
:
{
// 获取ding_robot列表
getProjectRobotList
()
{
getP
rojectRobot
List
(
this
.
queryInfo
).
then
((
resp
)
=>
{
getP
ipeline
List
(
this
.
queryInfo
).
then
((
resp
)
=>
{
this
.
dingRobotList
=
resp
.
data
.
data
.
list
this
.
totalNum
=
resp
.
data
.
data
.
total
})
...
...
@@ -222,7 +412,15 @@ export default {
if
(
!
valid
)
{
return
false
}
else
{
addProjectRobot
(
this
.
robotForm
).
then
((
resp
)
=>
{
// 循环数组
for
(
var
i
=
0
;
i
<
this
.
pipelineFrom
.
pipelineList
.
length
;
i
++
)
{
this
.
pipelineFrom
.
pipelineList
[
i
].
serviceName
=
this
.
serviceName
this
.
pipelineFrom
.
pipelineList
[
i
].
serviceType
=
this
.
serviceType
this
.
pipelineFrom
.
pipelineList
[
i
].
namespace
=
this
.
pipelineFrom
.
dingRobot
.
namespace
}
addProjectRobot
(
this
.
pipelineFrom
).
then
((
resp
)
=>
{
console
.
log
(
'
新增信息
'
,
this
.
pipelineFrom
)
if
(
resp
.
data
.
data
===
true
)
{
this
.
addDialogVisible
=
false
this
.
getProjectRobotList
()
...
...
@@ -280,7 +478,8 @@ export default {
},
// 发送进度报告
sendSchedule
()
{
this
.
sendScheduleData
.
jiraProjectKey
=
this
.
sendProjectRobot
.
jiraProjectKey
this
.
sendScheduleData
.
jiraProjectKey
=
this
.
sendProjectRobot
.
jiraProjectKey
this
.
sendScheduleData
.
testProjectName
=
this
.
sendProjectRobot
.
projectName
this
.
sendScheduleData
.
progress
=
this
.
sendScheduleForm
.
progress
+
'
%
'
this
.
sendScheduleData
.
risk
=
this
.
sendScheduleForm
.
risk
...
...
@@ -356,11 +555,72 @@ export default {
},
closeSmokingDialog
()
{
this
.
$refs
.
smokingFormRef
.
resetFields
()
},
// 获取服务名称
// getServiceList() {
// getGitlabProject({
// is_active: true,
// deploy_to_testenv: true
// }).then((resp) => {
// console.log('22', resp)
// this.serviceList = resp.data
// })
// },
changeState
()
{},
// 选择服务下拉框触发事件
selectServiceModel
(
item
)
{
this
.
serviceName
=
item
.
name
this
.
serviceType
=
item
.
type
console
.
log
(
'
3333
'
,
item
)
getGitBranchList
({
projectName
:
item
.
name
}).
then
((
resp
)
=>
{
this
.
serviceBranchList
=
resp
.
data
.
data
console
.
log
(
'
55
'
,
this
.
serviceBranchList
)
})
},
// 添加行方法
AddPipelineListRow
()
{
this
.
pipelineFrom
.
pipelineList
.
push
({
serviceName
:
''
,
serviceBranch
:
''
,
enable
:
true
})
},
// 删除行
pipelineDelete
(
index
)
{
this
.
pipelineFrom
.
pipelineList
.
splice
(
index
,
1
)
},
// 编辑pipeline添加按钮
EditPipelineListRow
()
{
this
.
editPipelineList
.
push
({
serviceName
:
''
,
serviceBranch
:
''
,
enable
:
true
})
},
// 编辑删除pipeline按钮
editPipelineDelete
(
index
)
{
this
.
editPipelineList
.
splice
(
index
,
1
)
},
// 环境列表
getNamespaceList
()
{
getNamespaceList
().
then
((
resp
)
=>
{
this
.
namespaceList
=
resp
.
data
.
data
})
},
// 获取服务列表
getServiceList
()
{
getGitProjectList
().
then
((
resp
)
=>
{
this
.
serviceList
=
resp
.
data
.
data
})
}
},
created
()
{
this
.
getJiraProjectList
()
this
.
getProjectRobotList
()
// 获取服务列表
this
.
getServiceList
()
this
.
getNamespaceList
()
}
}
</
script
>
...
...
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