Commit 5727146c authored by 黎博's avatar 黎博

新增发送进度报告功能

parent 6d60141e
......@@ -8,6 +8,13 @@ export function getProjectRobotList(queryInfo) {
})
}
export function getJiraProjectList() {
return request({
url: '/jira/list/project',
method: 'get'
})
}
export function addProjectRobot(data) {
return request({
url: '/jira/add/robot',
......@@ -31,3 +38,11 @@ export function delProjectRobot(queryInfo) {
params: queryInfo
})
}
export function sendScheduleReport(data) {
return request({
url: '/jira/send/schedule',
method: 'post',
data
})
}
......@@ -9,15 +9,16 @@
<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="250px"></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="100px">
<el-table-column prop="creator" label="创建人" width="80px">
</el-table-column>
<el-table-column prop="createTime" label="创建时间" width="180px"></el-table-column>
<el-table-column label="操作" width="200px">
<el-table-column label="操作" width="300px">
<slot slot-scope="scope">
<el-button type="primary" @click="openEditDialog(scope.row)">编辑</el-button>
<el-button type="danger" @click="delProjectRobot(scope.row.id)">删除</el-button>
<el-button type="success" @click="openSendDialog(scope.row)">发送进度</el-button>
</slot>
</el-table-column>
<!-- <el-table-column prop="updateTime" label="更新时间"></el-table-column> -->
......@@ -30,13 +31,19 @@
<!-- 新增对话框 -->
<el-dialog title="新增robot" :visible.sync="addDialogVisible" width="60%" @close="closeAddDialog">
<el-form ref="addRobotFormRef" :rules="formRules" :model="robotForm" label-width="150px">
<el-form-item label="jira项目" prop="jiraProjectKey">
<el-select v-model="robotForm.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>
<el-form-item label="钉钉通知地址" prop="dingUrl">
<el-input v-model="robotForm.dingUrl" placeholder="请输入钉钉通知地址" type="textarea"></el-input>
</el-form-item>
<el-form-item label="创建人">
<el-form-item label="创建人" prop="creator">
<el-input v-model="robotForm.creator"></el-input>
</el-form-item>
</el-form>
......@@ -49,13 +56,19 @@
<!-- 编辑对话框 -->
<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-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>
<el-form-item label="钉钉通知地址" prop="dingUrl">
<el-input v-model="editRobotForm.dingUrl" placeholder="请输入钉钉通知地址" type="textarea"></el-input>
</el-form-item>
<el-form-item label="创建人">
<el-form-item label="创建人" prop="creator">
<el-input v-model="editRobotForm.creator"></el-input>
</el-form-item>
</el-form>
......@@ -64,20 +77,39 @@
<el-button type="primary" @click="editRobotProject">保 存</el-button>
</span>
</el-dialog>
<!-- 发送进度对话框 -->
<el-dialog title="发送进度报告" :visible.sync="sendScheduleDialogVisible" width="60%" @close="closeSendDialog">
<el-form ref="sendFormRef" :rules="sendFormRules" :model="sendScheduleForm" label-width="150px">
<el-form-item label="测试进度" prop="progress">
<el-input v-model="sendScheduleForm.progress" placeholder="请输入测试进度百分比"></el-input>
</el-form-item>
<el-form-item label="风险点" prop="risk">
<el-input v-model="sendScheduleForm.risk" type="textarea" placeholder="请输入测试风险点(非必填)"></el-input>
</el-form-item>
</el-form>
<span slot="footer" class="dialog-footer">
<el-button @click="sendScheduleDialogVisible = false">取 消</el-button>
<el-button type="primary" @click="sendSchedule">发 送</el-button>
</span>
</el-dialog>
</div>
</template>
<script>
import {
getJiraProjectList,
getProjectRobotList,
addProjectRobot,
modifyProjectRobot,
delProjectRobot
delProjectRobot,
sendScheduleReport
} from '@/api/jira'
export default {
data() {
return {
dingRobotList: [],
jiraProjectList: [],
queryInfo: {
pageNum: 1,
pageSize: 10
......@@ -85,21 +117,41 @@ export default {
totalNum: 0,
addDialogVisible: false,
editDialogVisible: false,
sendScheduleDialogVisible: false,
robotForm: {
projectName: '',
dingUrl: '',
creator: ''
creator: '',
jiraProjectKey: ''
},
editRobotForm: {},
sendProjectRobot: {},
sendScheduleData: {
jiraProject: '',
testProject: '',
progress: '',
risk: '',
webhook: ''
},
delRobotParams: {
projectRobotId: ''
},
sendScheduleForm: {},
formRules: {
projectName: [
{ required: true, message: '请输入项目名称', trigger: 'blur' }
],
dingUrl: [
{ required: true, message: '请输入钉钉机器人url', trigger: 'blur' }
],
jiraProjectKey: [
{ required: true, message: '请选择对应的Jira项目', trigger: 'blur' }
],
creator: [{ required: true, message: '请输入创建人', trigger: 'blur' }]
},
sendFormRules: {
progress: [
{ required: true, message: '请输入测试进度百分比', trigger: 'blur' }
]
}
}
......@@ -111,6 +163,11 @@ export default {
this.totalNum = resp.data.data.total
})
},
getJiraProjectList() {
getJiraProjectList().then((resp) => {
this.jiraProjectList = resp.data.data
})
},
// 新增
addRobotProject() {
this.$refs.addRobotFormRef.validate((valid) => {
......@@ -173,6 +230,22 @@ export default {
})
})
},
// 发送进度报告
sendSchedule() {
this.sendScheduleData.jiraProjectKey = this.sendProjectRobot.jiraProjectKey
this.sendScheduleData.testProjectName = this.sendProjectRobot.projectName
this.sendScheduleData.progress = this.sendScheduleForm.progress + '%'
this.sendScheduleData.risk = this.sendScheduleForm.risk
this.sendScheduleData.webhook = this.sendProjectRobot.dingUrl
sendScheduleReport(this.sendScheduleData).then((resp) => {
if (resp.data.data === true) {
this.sendScheduleDialogVisible = false
return this.$message.success('发送成功!')
} else if (resp.data.data === false) {
return this.$message.error('发送失败!')
}
})
},
handleSizeChange(newSize) {
this.queryInfo.pageSize = newSize
this.getProjectRobotList()
......@@ -185,14 +258,23 @@ export default {
this.editDialogVisible = true
this.editRobotForm = projectRobot
},
// 打开发送进度对话框
openSendDialog(projectRobot) {
this.sendScheduleDialogVisible = true
this.sendProjectRobot = projectRobot
},
closeAddDialog() {
this.$refs.addRobotFormRef.resetFields()
},
closeEditDialog() {
this.$refs.editRobotFormRef.resetFields()
},
closeSendDialog() {
this.$refs.sendFormRef.resetFields()
}
},
created() {
this.getJiraProjectList()
this.getProjectRobotList()
}
}
......
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