Commit 79b79f46 authored by 晓彤's avatar 晓彤

添加pipeline功能

parent 28c7f231
......@@ -86,10 +86,10 @@ export function addPipeline(data) {
data
})
}
// 添加pipeline接口
// 编辑pipeline接口
export function editPipeline(data) {
return request({
url: '/pipelist/modify',
url: '/pipeline/modify',
method: 'post',
data
})
......@@ -102,3 +102,11 @@ export function getJiraIssueList(data) {
params: data
})
}
// 删除pipeline功能
export function delPipeline(queryInfo) {
return request({
url: '/pipeline/delete',
method: 'get',
params: queryInfo
})
}
......@@ -3,7 +3,7 @@
<el-card>
<!-- 顶部搜索栏 -->
<div class="top">
<el-button type="primary" icon="el-icon-circle-plus-outline" @click="addDialogVisible = true">新增</el-button>
<el-button type="primary" icon="el-icon-circle-plus-outline" @click="addPipeline">新增</el-button>
</div>
<el-table :data="dingRobotList" border style="width: 100%">
......@@ -16,53 +16,48 @@
<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="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">
<el-table-column label="操作">
<slot slot-scope="scope">
<el-button type="primary" size="small" @click="openEditDialog(scope.row)">编辑</el-button>
<el-button type="danger" size="small" @click="delProjectRobot(scope.row.id)">删除</el-button>
<el-button type="danger" size="small" @click="delProjectRobot(scope.row.dingRobot.id)">删除</el-button>
<el-button type="warning" size="small" @click="openSendSmokingDialog(scope.row)">冒烟测试</el-button>
<el-button type="success" size="small" @click="openSendDialog(scope.row)">发送进度</el-button>
</slot>
</el-table-column>
<!-- <el-table-column prop="updateTime" label="更新时间"></el-table-column> -->
</el-table>
</el-card>
<!-- 分页 -->
<el-pagination background @size-change="handleSizeChange" @current-change="handleCurrentChange" :current-page.sync="queryInfo.pageNum" :page-size="queryInfo.pageSize" layout="total, prev, pager, next" :total="totalNum"></el-pagination>
<!-- 新增对话框 -->
<el-dialog title="新增robot" :visible.sync="addDialogVisible" width="60%" @close="closeAddDialog">
<el-form ref="addRobotFormRef" :rules="formRules" :model="pipelineFrom" label-width="150px">
<el-form-item label="jira项目" prop="pipelineFrom.dingRobot.jiraProjectKey">
<el-form-item label="jira项目" prop="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="pipelineFrom.dingRobot.projectName">
<el-form-item label="项目名称" prop="dingRobot.projectName">
<el-input v-model="pipelineFrom.dingRobot.projectName" placeholder="请输入项目名称"></el-input>
</el-form-item>
<el-form-item label="钉钉通知地址" prop="pipelineFrom.dingRobot.dingUrl">
<el-form-item label="钉钉通知地址" prop="dingRobot.dingUrl">
<el-input v-model="pipelineFrom.dingRobot.dingUrl" placeholder="请输入钉钉通知地址" type="textarea"></el-input>
</el-form-item>
<el-form-item label="创建人" prop="pipelineFrom.dingRobot.creator">
<el-form-item label="创建人" prop="dingRobot.creator">
<el-input v-model="pipelineFrom.dingRobot.creator" placeholder="请输入创建人"></el-input>
</el-form-item>
<el-form-item label="环 境" prop="pipelineFrom.dingRobot.namespace">
<el-form-item label="环 境" prop="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" prop="pipelineFrom.piplineList">
<el-form-item label="Pipeline" prop="piplineList">
<el-row>
<el-col :span="6">
<div style="text-align: center">
......@@ -111,7 +106,7 @@
</div>
</el-col>
</el-row>
<el-button size="mini" plain @click="AddPipelineListRow()" style="mragin-top: 10px" class="el-icon-circle-plus">添加</el-button>
<el-button size="mini" type="primary" @click="AddPipelineListRow()" style="mragin-top: 10px;width:500px">添加</el-button>
</el-form-item>
</el-form>
<span slot="footer" class="dialog-footer">
......@@ -122,25 +117,25 @@
<!-- 编辑对话框 -->
<el-dialog title="编辑" :visible.sync="editDialogVisible" width="60%" @close="closeEditDialog">
<el-form ref="editRobotFormRef" :rules="formRules" :model="editRobotForm" label-width="150px">
<el-form-item label="jira项目" prop="jiraProjectKey">
<el-select v-model="editRobotForm.jiraProjectKey" placeholder="请选择Jira项目">
<el-form ref="editRobotFormRef" :rules="formRules" :model="editPipelineForm" label-width="150px">
<el-form-item label="jira项目" prop="dingRobot.jiraProjectKey">
<el-select v-model="editPipelineForm.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="editRobotForm.projectName" placeholder="请输入项目名称"></el-input>
<el-form-item label="项目名称" prop="dingRobot.projectName">
<el-input v-model="editPipelineForm.dingRobot.projectName" placeholder="请输入项目名称"></el-input>
</el-form-item>
<el-form-item label="钉钉通知地址" prop="dingUrl">
<el-input v-model="editRobotForm.dingUrl" placeholder="请输入钉钉通知地址" type="textarea"></el-input>
<el-form-item label="钉钉通知地址" prop="dingRobot.dingUrl">
<el-input v-model="editPipelineForm.dingRobot.dingUrl" placeholder="请输入钉钉通知地址" type="textarea"></el-input>
</el-form-item>
<el-form-item label="创建人" prop="creator">
<el-input v-model="editRobotForm.creator"></el-input>
<el-form-item label="创建人" prop="dingRobot.creator">
<el-input v-model="editPipelineForm.dingRobot.creator"></el-input>
</el-form-item>
<el-form-item label="环 境" prop="namespace">
<el-select v-model="editRobotForm.env" placeholder="请选择环境">
<el-form-item label="环 境" prop="dingRobot.namespace">
<el-select v-model="editPipelineForm.dingRobot.namespace" placeholder="请选择环境">
<el-option v-for="item in namespaceList" :key="item.key" :label="item.desc" :value="item.key">
</el-option>
</el-select>
......@@ -169,18 +164,18 @@
</div>
</el-col>
</el-row>
<el-row v-for="(item, index) in editPipelineList" :key="index">
<el-row v-for="(item, index) in editPipelineForm.pipelineList" :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-option v-for="item2 in serviceList" :key="item2.name" :label="item2.name" :value="item2.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-option v-for="item2 in serviceBranchList" :key="item2.name" :label="item2.name" :value="item2.name"></el-option>
</el-select>
</div>
</el-col>
......@@ -274,13 +269,13 @@ import {
getJiraProjectList,
getPipelineList,
addPipeline,
modifyProjectRobot,
delProjectRobot,
editPipeline,
sendScheduleReport,
sendSmokingResult,
getGitProjectList,
getGitBranchList,
getJiraIssueList
getJiraIssueList,
delPipeline
} from '@/api/jira'
import { getNamespaceList } from '@/api/getXyqbData'
// import { getGitlabProject } from '@/api/qaApi'
......@@ -316,7 +311,28 @@ export default {
}
]
},
// 编辑数据对象
editPipelineForm: {
dingRobot: {
id: '',
projectName: '',
dingUrl: '',
creator: '',
jiraProjectKey: '',
namespace: ''
},
pipelineList: [
{
id: '',
ding_robot_id: '',
serviceName: '',
serviceBranch: '',
serviceType: '',
namespace: '',
enable: 1
}
]
},
editRobotForm: {},
sendProjectRobot: {},
// 冒烟未解决BUG列表
......@@ -328,7 +344,7 @@ export default {
// 发送冒烟结果参数
sendSmokingData: {},
delRobotParams: {
projectRobotId: ''
dingRobotId: ''
},
sendScheduleForm: {},
smokingResult: [
......@@ -342,6 +358,7 @@ export default {
}
],
formRules: {
dingRobot: {
projectName: [
{
required: true,
......@@ -363,10 +380,13 @@ export default {
trigger: 'blur'
}
],
creator: [{ required: true, message: '请输入创建人', trigger: 'blur' }],
creator: [
{ required: true, message: '请输入创建人', trigger: 'blur' }
],
namespace: [
{ required: true, message: '请输入创建人', trigger: 'blur' }
]
}
},
sendFormRules: {
progress: [
......@@ -387,17 +407,7 @@ export default {
}
]
},
// 添加pipeline
newPipelineList: [
{
serviceName: '',
serviceBranch: '',
serviceType: '',
namespace: '',
enable: 1,
serviceModel: ''
}
],
serviceName: '',
serviceType: '',
......@@ -442,14 +452,8 @@ export default {
return false
} else {
// 循环数组
// 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
// }
this.pipelineFrom.pipelineList.forEach(pipeline => {
this.serviceList.forEach(service => {
this.pipelineFrom.pipelineList.forEach((pipeline) => {
this.serviceList.forEach((service) => {
if (service.name === pipeline.serviceName) {
pipeline.serviceType = service.type
}
......@@ -457,9 +461,14 @@ export default {
})
})
addPipeline(this.pipelineFrom).then((resp) => {
console.log('新增信息', this.pipelineFrom)
if (resp.data.data === true) {
this.addDialogVisible = false
this.pipelineFrom.pipelineList = []
this.pipelineFrom.pipelineList.push({
serviceName: '',
serviceBranch: '',
enable: 1
})
this.getProjectRobotList()
return this.$message.success('新增成功!')
} else if (resp.data.data === false) {
......@@ -475,7 +484,16 @@ export default {
if (!valid) {
return false
} else {
modifyProjectRobot(this.editRobotForm).then((resp) => {
this.editPipelineForm.pipelineList.forEach((pipeline) => {
this.serviceList.forEach((service) => {
if (service.name === pipeline.serviceName) {
pipeline.serviceType = service.type
}
pipeline.namespace = this.editPipelineForm.dingRobot.namespace
})
})
editPipeline(this.editPipelineForm).then((resp) => {
if (resp.data.data === true) {
this.editDialogVisible = false
this.getProjectRobotList()
......@@ -489,7 +507,7 @@ export default {
},
// 删除
delProjectRobot(robotId) {
this.delRobotParams.projectRobotId = robotId
this.delRobotParams.dingRobotId = robotId
this.$messageBox
.confirm('此操作将永久删除, 是否继续?', '提示', {
confirmButtonText: '确定',
......@@ -497,7 +515,7 @@ export default {
type: 'warning'
})
.then(() => {
delProjectRobot(this.delRobotParams).then((resp) => {
delPipeline(this.delRobotParams).then((resp) => {
if (resp.data.data === true) {
this.$message.success('删除成功!')
return this.getProjectRobotList()
......@@ -567,9 +585,13 @@ export default {
this.queryInfo.pageNum = newPage
this.getProjectRobotList()
},
// 点击编辑按钮
openEditDialog(projectRobot) {
this.editDialogVisible = true
this.editRobotForm = projectRobot.dingRobot
this.getServiceList()
this.getNamespaceList()
this.editPipelineForm.dingRobot = projectRobot.dingRobot
this.editPipelineForm.pipelineList = projectRobot.pipelineList
},
// 打开发送进度对话框
openSendDialog(projectRobot) {
......@@ -607,26 +629,11 @@ 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 }).then((resp) => {
this.serviceBranchList = resp.data.data.data
console.log('55', this.serviceBranchList)
})
},
// 添加行方法
......@@ -634,7 +641,7 @@ export default {
this.pipelineFrom.pipelineList.push({
serviceName: '',
serviceBranch: '',
enable: true
enable: 1
})
},
// 删除行
......@@ -643,15 +650,15 @@ export default {
},
// 编辑pipeline添加按钮
EditPipelineListRow() {
this.editPipelineList.push({
this.editPipelineForm.pipelineList.push({
serviceName: '',
serviceBranch: '',
enable: true
enable: 1
})
},
// 编辑删除pipeline按钮
editPipelineDelete(index) {
this.editPipelineList.splice(index, 1)
this.editPipelineForm.pipelineList.splice(index, 1)
},
// 环境列表
getNamespaceList() {
......@@ -664,14 +671,18 @@ export default {
getGitProjectList().then((resp) => {
this.serviceList = resp.data.data
})
},
// 添加按钮
addPipeline() {
this.addDialogVisible = true
// 获取服务列表
this.getServiceList()
this.getNamespaceList()
}
},
created() {
this.getJiraProjectList()
this.getProjectRobotList()
// 获取服务列表
this.getServiceList()
this.getNamespaceList()
}
}
</script>
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment