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

新增发送进度报告功能

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