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

添加pipeline功能

parent 28c7f231
...@@ -86,10 +86,10 @@ export function addPipeline(data) { ...@@ -86,10 +86,10 @@ export function addPipeline(data) {
data data
}) })
} }
// 添加pipeline接口 // 编辑pipeline接口
export function editPipeline(data) { export function editPipeline(data) {
return request({ return request({
url: '/pipelist/modify', url: '/pipeline/modify',
method: 'post', method: 'post',
data data
}) })
...@@ -102,3 +102,11 @@ export function getJiraIssueList(data) { ...@@ -102,3 +102,11 @@ export function getJiraIssueList(data) {
params: data params: data
}) })
} }
// 删除pipeline功能
export function delPipeline(queryInfo) {
return request({
url: '/pipeline/delete',
method: 'get',
params: queryInfo
})
}
...@@ -3,7 +3,7 @@ ...@@ -3,7 +3,7 @@
<el-card> <el-card>
<!-- 顶部搜索栏 --> <!-- 顶部搜索栏 -->
<div class="top"> <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> </div>
<el-table :data="dingRobotList" border style="width: 100%"> <el-table :data="dingRobotList" border style="width: 100%">
...@@ -16,53 +16,48 @@ ...@@ -16,53 +16,48 @@
<div v-for="item in scope.row.pipelineList" :key="item.id"><b>{{ item.serviceName }}</b> -> {{ item.serviceBranch }}</div> <div v-for="item in scope.row.pipelineList" :key="item.id"><b>{{ item.serviceName }}</b> -> {{ item.serviceBranch }}</div>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column prop="dingRobot.namespace" label="环 境" width="100px"></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 prop="dingRobot.creator" label="创建人" width="100px">
</el-table-column> </el-table-column>
<el-table-column prop="dingRobot.createTime" label="创建时间" width="180px"></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"> <slot slot-scope="scope">
<el-button type="primary" size="small" @click="openEditDialog(scope.row)">编辑</el-button> <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="warning" size="small" @click="openSendSmokingDialog(scope.row)">冒烟测试</el-button>
<el-button type="success" size="small" @click="openSendDialog(scope.row)">发送进度</el-button> <el-button type="success" size="small" @click="openSendDialog(scope.row)">发送进度</el-button>
</slot> </slot>
</el-table-column> </el-table-column>
<!-- <el-table-column prop="updateTime" label="更新时间"></el-table-column> -->
</el-table> </el-table>
</el-card> </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-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-dialog title="新增robot" :visible.sync="addDialogVisible" width="60%" @close="closeAddDialog">
<el-form ref="addRobotFormRef" :rules="formRules" :model="pipelineFrom" label-width="150px"> <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-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 v-for="item in jiraProjectList" :key="item.key" :label="item.name" :value="item.key">
</el-option> </el-option>
</el-select> </el-select>
</el-form-item> </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-input v-model="pipelineFrom.dingRobot.projectName" placeholder="请输入项目名称"></el-input>
</el-form-item> </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-input v-model="pipelineFrom.dingRobot.dingUrl" placeholder="请输入钉钉通知地址" type="textarea"></el-input>
</el-form-item> </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-input v-model="pipelineFrom.dingRobot.creator" placeholder="请输入创建人"></el-input>
</el-form-item> </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-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 v-for="item in namespaceList" :key="item.key" :label="item.desc" :value="item.key">
</el-option> </el-option>
</el-select> </el-select>
</el-form-item> </el-form-item>
<!-- 添加 Pipeline --> <!-- 添加 Pipeline -->
<el-form-item label="Pipeline" prop="pipelineFrom.piplineList"> <el-form-item label="Pipeline" prop="piplineList">
<el-row> <el-row>
<el-col :span="6"> <el-col :span="6">
<div style="text-align: center"> <div style="text-align: center">
...@@ -102,7 +97,7 @@ ...@@ -102,7 +97,7 @@
</el-col> </el-col>
<el-col :span="6"> <el-col :span="6">
<div style="text-align: center;margin-top:5px"> <div style="text-align: center;margin-top:5px">
<el-switch v-model="item.enable" active-color="#13ce66" inactive-color="#A9A9A9" active-text="是" inactive-text="否" active-value="1" inactive-value="0"></el-switch> <el-switch v-model="item.enable" active-color="#13ce66" inactive-color="#A9A9A9" active-text="是" inactive-text="否" active-value="1" inactive-value="0"></el-switch>
</div> </div>
</el-col> </el-col>
<el-col :span="6"> <el-col :span="6">
...@@ -111,7 +106,7 @@ ...@@ -111,7 +106,7 @@
</div> </div>
</el-col> </el-col>
</el-row> </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-item>
</el-form> </el-form>
<span slot="footer" class="dialog-footer"> <span slot="footer" class="dialog-footer">
...@@ -122,25 +117,25 @@ ...@@ -122,25 +117,25 @@
<!-- 编辑对话框 --> <!-- 编辑对话框 -->
<el-dialog title="编辑" :visible.sync="editDialogVisible" width="60%" @close="closeEditDialog"> <el-dialog title="编辑" :visible.sync="editDialogVisible" width="60%" @close="closeEditDialog">
<el-form ref="editRobotFormRef" :rules="formRules" :model="editRobotForm" label-width="150px"> <el-form ref="editRobotFormRef" :rules="formRules" :model="editPipelineForm" label-width="150px">
<el-form-item label="jira项目" prop="jiraProjectKey"> <el-form-item label="jira项目" prop="dingRobot.jiraProjectKey">
<el-select v-model="editRobotForm.jiraProjectKey" placeholder="请选择Jira项目"> <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 v-for="item in jiraProjectList" :key="item.key" :label="item.name" :value="item.key">
</el-option> </el-option>
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item label="项目名称" prop="projectName"> <el-form-item label="项目名称" prop="dingRobot.projectName">
<el-input v-model="editRobotForm.projectName" placeholder="请输入项目名称"></el-input> <el-input v-model="editPipelineForm.dingRobot.projectName" placeholder="请输入项目名称"></el-input>
</el-form-item> </el-form-item>
<el-form-item label="钉钉通知地址" prop="dingUrl"> <el-form-item label="钉钉通知地址" prop="dingRobot.dingUrl">
<el-input v-model="editRobotForm.dingUrl" placeholder="请输入钉钉通知地址" type="textarea"></el-input> <el-input v-model="editPipelineForm.dingRobot.dingUrl" placeholder="请输入钉钉通知地址" type="textarea"></el-input>
</el-form-item> </el-form-item>
<el-form-item label="创建人" prop="creator"> <el-form-item label="创建人" prop="dingRobot.creator">
<el-input v-model="editRobotForm.creator"></el-input> <el-input v-model="editPipelineForm.dingRobot.creator"></el-input>
</el-form-item> </el-form-item>
<el-form-item label="环 境" prop="namespace"> <el-form-item label="环 境" prop="dingRobot.namespace">
<el-select v-model="editRobotForm.env" placeholder="请选择环境"> <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 v-for="item in namespaceList" :key="item.key" :label="item.desc" :value="item.key">
</el-option> </el-option>
</el-select> </el-select>
...@@ -169,24 +164,24 @@ ...@@ -169,24 +164,24 @@
</div> </div>
</el-col> </el-col>
</el-row> </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"> <el-col :span="6">
<div style="text-align: center;margin-top:5px"> <div style="text-align: center;margin-top:5px">
<el-select v-model="item.serviceName" placeholder="请选择服务" @change="selectServiceModel(item.serviceName)" clearable> <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> </el-select>
</div> </div>
</el-col> </el-col>
<el-col :span="6"> <el-col :span="6">
<div style="text-align: center;margin-top:5px"> <div style="text-align: center;margin-top:5px">
<el-select v-model="item.serviceBranch" placeholder="请选择分支" clearable> <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> </el-select>
</div> </div>
</el-col> </el-col>
<el-col :span="6"> <el-col :span="6">
<div style="text-align: center;margin-top:5px"> <div style="text-align: center;margin-top:5px">
<el-switch v-model="item.enable" active-color="#13ce66" inactive-color="#A9A9A9" active-text="是" inactive-text="否" active-value="1" inactive-value="0"></el-switch> <el-switch v-model="item.enable" active-color="#13ce66" inactive-color="#A9A9A9" active-text="是" inactive-text="否" active-value="1" inactive-value="0"></el-switch>
</div> </div>
</el-col> </el-col>
<el-col :span="6"> <el-col :span="6">
...@@ -216,7 +211,7 @@ ...@@ -216,7 +211,7 @@
</el-form-item> </el-form-item>
</el-form> </el-form>
<p>未解决BUG列表:</p> <p>未解决BUG列表:</p>
<el-table :data="scheduleUnsolvedIssueList" border style="width: 100%"> <el-table :data="scheduleUnsolvedIssueList" border style="width: 100%">
<el-table-column prop="key" label="关键字" width="150"> <el-table-column prop="key" label="关键字" width="150">
</el-table-column> </el-table-column>
...@@ -274,13 +269,13 @@ import { ...@@ -274,13 +269,13 @@ import {
getJiraProjectList, getJiraProjectList,
getPipelineList, getPipelineList,
addPipeline, addPipeline,
modifyProjectRobot, editPipeline,
delProjectRobot,
sendScheduleReport, sendScheduleReport,
sendSmokingResult, sendSmokingResult,
getGitProjectList, getGitProjectList,
getGitBranchList, getGitBranchList,
getJiraIssueList getJiraIssueList,
delPipeline
} from '@/api/jira' } from '@/api/jira'
import { getNamespaceList } from '@/api/getXyqbData' import { getNamespaceList } from '@/api/getXyqbData'
// import { getGitlabProject } from '@/api/qaApi' // import { getGitlabProject } from '@/api/qaApi'
...@@ -316,7 +311,28 @@ export default { ...@@ -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: {}, editRobotForm: {},
sendProjectRobot: {}, sendProjectRobot: {},
// 冒烟未解决BUG列表 // 冒烟未解决BUG列表
...@@ -328,7 +344,7 @@ export default { ...@@ -328,7 +344,7 @@ export default {
// 发送冒烟结果参数 // 发送冒烟结果参数
sendSmokingData: {}, sendSmokingData: {},
delRobotParams: { delRobotParams: {
projectRobotId: '' dingRobotId: ''
}, },
sendScheduleForm: {}, sendScheduleForm: {},
smokingResult: [ smokingResult: [
...@@ -342,31 +358,35 @@ export default { ...@@ -342,31 +358,35 @@ export default {
} }
], ],
formRules: { formRules: {
projectName: [ dingRobot: {
{ projectName: [
required: true, {
message: '请输入项目名称', required: true,
trigger: 'blur' message: '请输入项目名称',
} trigger: 'blur'
], }
dingUrl: [ ],
{ dingUrl: [
required: true, {
message: '请输入钉钉机器人url', required: true,
trigger: 'blur' message: '请输入钉钉机器人url',
} trigger: 'blur'
], }
jiraProjectKey: [ ],
{ jiraProjectKey: [
required: true, {
message: '请选择对应的Jira项目', required: true,
trigger: 'blur' message: '请选择对应的Jira项目',
} trigger: 'blur'
], }
creator: [{ required: true, message: '请输入创建人', trigger: 'blur' }], ],
namespace: [ creator: [
{ required: true, message: '请输入创建人', trigger: 'blur' } { required: true, message: '请输入创建人', trigger: 'blur' }
] ],
namespace: [
{ required: true, message: '请输入创建人', trigger: 'blur' }
]
}
}, },
sendFormRules: { sendFormRules: {
progress: [ progress: [
...@@ -387,17 +407,7 @@ export default { ...@@ -387,17 +407,7 @@ export default {
} }
] ]
}, },
// 添加pipeline
newPipelineList: [
{
serviceName: '',
serviceBranch: '',
serviceType: '',
namespace: '',
enable: 1,
serviceModel: ''
}
],
serviceName: '', serviceName: '',
serviceType: '', serviceType: '',
...@@ -442,14 +452,8 @@ export default { ...@@ -442,14 +452,8 @@ export default {
return false return false
} else { } else {
// 循环数组 // 循环数组
// for (var i = 0; i < this.pipelineFrom.pipelineList.length; i++) { this.pipelineFrom.pipelineList.forEach((pipeline) => {
// // this.pipelineFrom.pipelineList[i].serviceName = this.serviceName this.serviceList.forEach((service) => {
// // 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 => {
if (service.name === pipeline.serviceName) { if (service.name === pipeline.serviceName) {
pipeline.serviceType = service.type pipeline.serviceType = service.type
} }
...@@ -457,9 +461,14 @@ export default { ...@@ -457,9 +461,14 @@ export default {
}) })
}) })
addPipeline(this.pipelineFrom).then((resp) => { addPipeline(this.pipelineFrom).then((resp) => {
console.log('新增信息', this.pipelineFrom)
if (resp.data.data === true) { if (resp.data.data === true) {
this.addDialogVisible = false this.addDialogVisible = false
this.pipelineFrom.pipelineList = []
this.pipelineFrom.pipelineList.push({
serviceName: '',
serviceBranch: '',
enable: 1
})
this.getProjectRobotList() this.getProjectRobotList()
return this.$message.success('新增成功!') return this.$message.success('新增成功!')
} else if (resp.data.data === false) { } else if (resp.data.data === false) {
...@@ -475,7 +484,16 @@ export default { ...@@ -475,7 +484,16 @@ export default {
if (!valid) { if (!valid) {
return false return false
} else { } 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) { if (resp.data.data === true) {
this.editDialogVisible = false this.editDialogVisible = false
this.getProjectRobotList() this.getProjectRobotList()
...@@ -489,7 +507,7 @@ export default { ...@@ -489,7 +507,7 @@ export default {
}, },
// 删除 // 删除
delProjectRobot(robotId) { delProjectRobot(robotId) {
this.delRobotParams.projectRobotId = robotId this.delRobotParams.dingRobotId = robotId
this.$messageBox this.$messageBox
.confirm('此操作将永久删除, 是否继续?', '提示', { .confirm('此操作将永久删除, 是否继续?', '提示', {
confirmButtonText: '确定', confirmButtonText: '确定',
...@@ -497,7 +515,7 @@ export default { ...@@ -497,7 +515,7 @@ export default {
type: 'warning' type: 'warning'
}) })
.then(() => { .then(() => {
delProjectRobot(this.delRobotParams).then((resp) => { delPipeline(this.delRobotParams).then((resp) => {
if (resp.data.data === true) { if (resp.data.data === true) {
this.$message.success('删除成功!') this.$message.success('删除成功!')
return this.getProjectRobotList() return this.getProjectRobotList()
...@@ -567,9 +585,13 @@ export default { ...@@ -567,9 +585,13 @@ export default {
this.queryInfo.pageNum = newPage this.queryInfo.pageNum = newPage
this.getProjectRobotList() this.getProjectRobotList()
}, },
// 点击编辑按钮
openEditDialog(projectRobot) { openEditDialog(projectRobot) {
this.editDialogVisible = true this.editDialogVisible = true
this.editRobotForm = projectRobot.dingRobot this.getServiceList()
this.getNamespaceList()
this.editPipelineForm.dingRobot = projectRobot.dingRobot
this.editPipelineForm.pipelineList = projectRobot.pipelineList
}, },
// 打开发送进度对话框 // 打开发送进度对话框
openSendDialog(projectRobot) { openSendDialog(projectRobot) {
...@@ -607,26 +629,11 @@ export default { ...@@ -607,26 +629,11 @@ export default {
closeSmokingDialog() { closeSmokingDialog() {
this.$refs.smokingFormRef.resetFields() 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) { selectServiceModel(item) {
// this.serviceName = item.name
// this.serviceType = item.type
console.log('3333', item)
getGitBranchList({ projectName: item }).then((resp) => { getGitBranchList({ projectName: item }).then((resp) => {
this.serviceBranchList = resp.data.data.data this.serviceBranchList = resp.data.data.data
console.log('55', this.serviceBranchList)
}) })
}, },
// 添加行方法 // 添加行方法
...@@ -634,7 +641,7 @@ export default { ...@@ -634,7 +641,7 @@ export default {
this.pipelineFrom.pipelineList.push({ this.pipelineFrom.pipelineList.push({
serviceName: '', serviceName: '',
serviceBranch: '', serviceBranch: '',
enable: true enable: 1
}) })
}, },
// 删除行 // 删除行
...@@ -643,15 +650,15 @@ export default { ...@@ -643,15 +650,15 @@ export default {
}, },
// 编辑pipeline添加按钮 // 编辑pipeline添加按钮
EditPipelineListRow() { EditPipelineListRow() {
this.editPipelineList.push({ this.editPipelineForm.pipelineList.push({
serviceName: '', serviceName: '',
serviceBranch: '', serviceBranch: '',
enable: true enable: 1
}) })
}, },
// 编辑删除pipeline按钮 // 编辑删除pipeline按钮
editPipelineDelete(index) { editPipelineDelete(index) {
this.editPipelineList.splice(index, 1) this.editPipelineForm.pipelineList.splice(index, 1)
}, },
// 环境列表 // 环境列表
getNamespaceList() { getNamespaceList() {
...@@ -664,14 +671,18 @@ export default { ...@@ -664,14 +671,18 @@ export default {
getGitProjectList().then((resp) => { getGitProjectList().then((resp) => {
this.serviceList = resp.data.data this.serviceList = resp.data.data
}) })
},
// 添加按钮
addPipeline() {
this.addDialogVisible = true
// 获取服务列表
this.getServiceList()
this.getNamespaceList()
} }
}, },
created() { created() {
this.getJiraProjectList() this.getJiraProjectList()
this.getProjectRobotList() this.getProjectRobotList()
// 获取服务列表
this.getServiceList()
this.getNamespaceList()
} }
} }
</script> </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