|
@@ -11,55 +11,55 @@
|
|
<div class="bug-queryTitle"> 筛选项 </div>
|
|
<div class="bug-queryTitle"> 筛选项 </div>
|
|
<span class="el-icon-close" />
|
|
<span class="el-icon-close" />
|
|
</div>
|
|
</div>
|
|
- <el-form label-position="left" :model="bugFormQuery" :rules="rules" label-width="100px">
|
|
|
|
|
|
+ <el-form label-position="left" :model="bugFormQuery" label-width="100px">
|
|
<el-form-item label="优先级" prop="discoveryStage">
|
|
<el-form-item label="优先级" prop="discoveryStage">
|
|
- <el-select v-model="bugFormQuery.name" filterable placeholder="请选择" style="width:100%;">
|
|
|
|
- <el-option v-for="item in statusList" :key="item.code" :label="item.name" :value="item.code" />
|
|
|
|
|
|
+ <el-select v-model="bugFormQuery.name" filterable placeholder="请选择" size="medium" style="width:100%;">
|
|
|
|
+ <el-option v-for="item in statusObj.priorityLevelEnumList" :key="item.code" :label="item.name" :value="item.code" />
|
|
</el-select>
|
|
</el-select>
|
|
</el-form-item>
|
|
</el-form-item>
|
|
<el-form-item label="缺陷状态" prop="discoveryStage">
|
|
<el-form-item label="缺陷状态" prop="discoveryStage">
|
|
- <el-select v-model="bugFormQuery.name" filterable placeholder="请选择" style="width:100%;">
|
|
|
|
- <el-option v-for="item in statusList" :key="item.code" :label="item.name" :value="item.code" />
|
|
|
|
|
|
+ <el-select v-model="bugFormQuery.name" filterable placeholder="请选择" size="medium" style="width:100%;">
|
|
|
|
+ <el-option v-for="item in statusObj.bugEnumList" :key="item.code" :label="item.name" :value="item.code" />
|
|
</el-select>
|
|
</el-select>
|
|
</el-form-item>
|
|
</el-form-item>
|
|
<el-form-item label="缺陷等级" prop="discoveryStage">
|
|
<el-form-item label="缺陷等级" prop="discoveryStage">
|
|
- <el-select v-model="bugFormQuery.name" filterable placeholder="请选择" style="width:100%;">
|
|
|
|
- <el-option v-for="item in statusList" :key="item.code" :label="item.name" :value="item.code" />
|
|
|
|
|
|
+ <el-select v-model="bugFormQuery.name" filterable placeholder="请选择" size="medium" style="width:100%;">
|
|
|
|
+ <el-option v-for="item in statusObj.priorityEnumList" :key="item.code" :label="item.name" :value="item.code" />
|
|
</el-select>
|
|
</el-select>
|
|
</el-form-item>
|
|
</el-form-item>
|
|
- <el-form-item label="提报人" prop="discoveryStage">
|
|
|
|
- <el-select v-model="bugFormQuery.name" filterable placeholder="请选择" style="width:100%;">
|
|
|
|
- <el-option v-for="item in statusList" :key="item.code" :label="item.name" :value="item.code" />
|
|
|
|
- </el-select>
|
|
|
|
|
|
+ <el-form-item label="提报人">
|
|
|
|
+ <searchPeople :value.sync="bugFormQuery.creator" :multiple="true" :size="'medium'" style="width: 100%;" />
|
|
</el-form-item>
|
|
</el-form-item>
|
|
- <el-form-item label="责任人" prop="discoveryStage">
|
|
|
|
- <el-select v-model="bugFormQuery.name" filterable placeholder="请选择" style="width:100%;">
|
|
|
|
- <el-option v-for="item in statusList" :key="item.code" :label="item.name" :value="item.code" />
|
|
|
|
- </el-select>
|
|
|
|
|
|
+ <el-form-item label="责任人">
|
|
|
|
+ <search-people :value.sync="bugFormQuery.assigner" :multiple="true" :size="'medium'" style="width: 100%;" />
|
|
</el-form-item>
|
|
</el-form-item>
|
|
- <el-form-item label="修复人" prop="discoveryStage">
|
|
|
|
- <el-select v-model="bugFormQuery.name" filterable placeholder="请选择" style="width:100%;">
|
|
|
|
- <el-option v-for="item in statusList" :key="item.code" :label="item.name" :value="item.code" />
|
|
|
|
- </el-select>
|
|
|
|
|
|
+ <el-form-item label="修复人">
|
|
|
|
+ <searchPeople :value.sync="bugFormQuery.currentHandler" :multiple="true" :size="'medium'" style="width: 100%;" />
|
|
</el-form-item>
|
|
</el-form-item>
|
|
<el-form-item label="是否发生Reopen" prop="discoveryStage">
|
|
<el-form-item label="是否发生Reopen" prop="discoveryStage">
|
|
- <el-select v-model="bugFormQuery.name" filterable placeholder="请选择" style="width:100%;">
|
|
|
|
- <el-option v-for="item in statusList" :key="item.code" :label="item.name" :value="item.code" />
|
|
|
|
|
|
+ <el-select v-model="bugFormQuery.name" filterable placeholder="请选择" size="medium" style="width:100%;">
|
|
|
|
+ <el-option v-for="item in reopens" :key="item.code" :label="item.name" :value="item.code" />
|
|
</el-select>
|
|
</el-select>
|
|
</el-form-item>
|
|
</el-form-item>
|
|
<el-form-item label="所属任务" prop="discoveryStage">
|
|
<el-form-item label="所属任务" prop="discoveryStage">
|
|
- <el-select v-model="bugFormQuery.name" filterable placeholder="请选择" style="width:100%;">
|
|
|
|
- <el-option v-for="item in statusList" :key="item.code" :label="item.name" :value="item.code" />
|
|
|
|
|
|
+ <el-select v-model="bugFormQuery.name" filterable placeholder="请选择" size="medium" style="width:100%;">
|
|
|
|
+ <el-option v-for="item in taskEnumList" :key="item.id" :label="item.name" :value="item.id">
|
|
|
|
+ <div class="belong-task">
|
|
|
|
+ <div class="task-id">{{ item.taskId }}</div>
|
|
|
|
+ <div class="modules-name">
|
|
|
|
+ <span class="name">{{ item.name }}</span>
|
|
|
|
+ <span v-if="item.moduleInfoName" class="modules">{{ item.moduleInfoName }}</span>
|
|
|
|
+ </div>
|
|
|
|
+ </div>
|
|
|
|
+ </el-option>
|
|
</el-select>
|
|
</el-select>
|
|
</el-form-item>
|
|
</el-form-item>
|
|
</el-form>
|
|
</el-form>
|
|
<div class="bug-footer">
|
|
<div class="bug-footer">
|
|
- <svg-icon icon-class="member" />
|
|
|
|
- <el-button class="bug-botton">重置</el-button>
|
|
|
|
|
|
+ <el-button class="bug-botton" @click="bugFormQuery = {}">重置</el-button>
|
|
<el-button class="bug-botton" style="margin-left: 20px;" type="primary">筛选</el-button>
|
|
<el-button class="bug-botton" style="margin-left: 20px;" type="primary">筛选</el-button>
|
|
</div>
|
|
</div>
|
|
-
|
|
|
|
- <svg-icon slot="reference" icon-class="member" class="bug-Status" />
|
|
|
|
|
|
+ <div slot="reference" class="bug-Status"><svg-icon icon-class="筛选" /></div>
|
|
</el-popover>
|
|
</el-popover>
|
|
</div>
|
|
</div>
|
|
<el-table
|
|
<el-table
|
|
@@ -131,14 +131,16 @@
|
|
const _ = require('lodash')
|
|
const _ = require('lodash')
|
|
import { mapGetters } from 'vuex'
|
|
import { mapGetters } from 'vuex'
|
|
import statusChange from '@/views/projectManage/bugList/details/statusChange'
|
|
import statusChange from '@/views/projectManage/bugList/details/statusChange'
|
|
-import { bugList, bugGetEnum } from '@/api/defectManage'
|
|
|
|
|
|
+import { bugList, bugGetEnum, taskListCreate } from '@/api/defectManage'
|
|
import BugDetails from './index'
|
|
import BugDetails from './index'
|
|
import '@/styles/PublicStyle/index.scss'
|
|
import '@/styles/PublicStyle/index.scss'
|
|
|
|
+import searchPeople from '@/components/select/searchPeople' // 人员select
|
|
|
|
|
|
export default {
|
|
export default {
|
|
components: {
|
|
components: {
|
|
statusChange,
|
|
statusChange,
|
|
- BugDetails
|
|
|
|
|
|
+ BugDetails,
|
|
|
|
+ searchPeople
|
|
},
|
|
},
|
|
filters: {
|
|
filters: {
|
|
naspOut(value) {
|
|
naspOut(value) {
|
|
@@ -161,8 +163,10 @@ export default {
|
|
data() {
|
|
data() {
|
|
return {
|
|
return {
|
|
bugFormQuery: {},
|
|
bugFormQuery: {},
|
|
|
|
+ reopens: [{ code: 1, name: '是' }, { code: 0, name: '否' }],
|
|
statusList: [{ value: 0, name: '全部' }, { value: 1, name: '未完成' }, { value: 2, name: '待修复' }, { value: 3, name: '待测试' }, { value: 4, name: '已完成' }],
|
|
statusList: [{ value: 0, name: '全部' }, { value: 1, name: '未完成' }, { value: 2, name: '待修复' }, { value: 3, name: '待测试' }, { value: 4, name: '已完成' }],
|
|
tableData: [], // tableData
|
|
tableData: [], // tableData
|
|
|
|
+ taskEnumList: [], // 所属任务
|
|
pageSize: 15, // 分页
|
|
pageSize: 15, // 分页
|
|
curIndex: 1, // 分页
|
|
curIndex: 1, // 分页
|
|
currentPage: 1,
|
|
currentPage: 1,
|
|
@@ -201,18 +205,27 @@ export default {
|
|
},
|
|
},
|
|
immediate: true
|
|
immediate: true
|
|
}
|
|
}
|
|
|
|
+ },
|
|
|
|
+ mounted() {
|
|
|
|
+
|
|
},
|
|
},
|
|
methods: {
|
|
methods: {
|
|
async getBugSelect() { // 获取下拉菜单option
|
|
async getBugSelect() { // 获取下拉菜单option
|
|
const res = await bugGetEnum()
|
|
const res = await bugGetEnum()
|
|
if (res.code === 200) {
|
|
if (res.code === 200) {
|
|
this.statusObj = {
|
|
this.statusObj = {
|
|
|
|
+ priorityLevelEnumList: res.data.priorityLevelEnumList, // 优先级
|
|
bugEnumList: res.data.bugEnumList, // status
|
|
bugEnumList: res.data.bugEnumList, // status
|
|
repairResultEnumList: res.data.repairResultEnumList, // 修复结果
|
|
repairResultEnumList: res.data.repairResultEnumList, // 修复结果
|
|
bugReasonEnumList: res.data.bugReasonEnumList, // 缺陷原因
|
|
bugReasonEnumList: res.data.bugReasonEnumList, // 缺陷原因
|
|
- theBugTypeEnumList: this.deleteChild(res.data.theBugTypeEnumList) // 缺陷类型
|
|
|
|
|
|
+ theBugTypeEnumList: this.deleteChild(res.data.theBugTypeEnumList), // 缺陷类型
|
|
|
|
+ priorityEnumList: res.data.priorityEnumList // 缺陷等级
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
+ const res1 = await taskListCreate({ bizId: this.bizId })
|
|
|
|
+ if (res1.code === 200) {
|
|
|
|
+ this.taskEnumList = res1.data || []
|
|
|
|
+ }
|
|
},
|
|
},
|
|
deleteChild(arr) { // 删除无用子属性
|
|
deleteChild(arr) { // 删除无用子属性
|
|
const bfs = arr => {
|
|
const bfs = arr => {
|
|
@@ -316,6 +329,10 @@ export default {
|
|
line-height: 60px;
|
|
line-height: 60px;
|
|
padding: 0 30px;
|
|
padding: 0 30px;
|
|
}
|
|
}
|
|
|
|
+ .bug-statusList:hover {
|
|
|
|
+ color: #409eff;
|
|
|
|
+ cursor: pointer;
|
|
|
|
+ }
|
|
.bug-statusList {
|
|
.bug-statusList {
|
|
margin: 0 10px;
|
|
margin: 0 10px;
|
|
}
|
|
}
|
|
@@ -336,4 +353,26 @@ export default {
|
|
.bug-botton {
|
|
.bug-botton {
|
|
margin:10px 0 0;
|
|
margin:10px 0 0;
|
|
}
|
|
}
|
|
|
|
+ .belong-task {
|
|
|
|
+ max-width: 500px;
|
|
|
|
+ display: flex;
|
|
|
|
+ .modules-name {
|
|
|
|
+ width: calc(100% - 100px);
|
|
|
|
+ overflow: hidden;
|
|
|
|
+ text-overflow: ellipsis;
|
|
|
|
+ white-space: nowrap;
|
|
|
|
+ }
|
|
|
|
+ .modules {
|
|
|
|
+ color: #999999;
|
|
|
|
+ }
|
|
|
|
+ .task-id {
|
|
|
|
+ color: #999999;
|
|
|
|
+ width: 80px;
|
|
|
|
+ margin-right: 20px;
|
|
|
|
+ }
|
|
|
|
+ .name {
|
|
|
|
+ color: #333333;
|
|
|
|
+ margin-right: 20px;
|
|
|
|
+ }
|
|
|
|
+ }
|
|
</style>
|
|
</style>
|