Browse Source

报表优化

master
陈裕财 3 years ago
parent
commit
fb6171f493
  1. 30
      src/views/xm/rpt/product/menuAgeDist.vue
  2. 31
      src/views/xm/rpt/product/menuAttDist.vue
  3. 30
      src/views/xm/rpt/product/menuSort.vue
  4. 75
      src/views/xm/rpt/reportIndex.vue

30
src/views/xm/rpt/product/menuAgeDist.vue

@ -1,6 +1,6 @@
<template>
<section>
<el-dialog fullscreen :title="(filters.product?'产品【'+filters.product.productName+'】':'')+'需求属性分布'" append-to-body modal-append-to-body width="80%" top="20px" :visible.sync="visible">
<el-dialog fullscreen :title="dialogTitle" append-to-body modal-append-to-body width="80%" top="20px" :visible.sync="visible">
<el-row :gutter="5">
<el-col :span="18">
<div>
@ -12,11 +12,14 @@
<el-col :span="6" class="border padding">
<el-form :model="filters">
<el-form-item label="归属产品" v-if="!xmProduct && !xmIteration">
<xm-product-select ref="xmProductSelect" style="display:inline;" :auto-select="false" :link-project-id="xmProject?xmProject.id:null" @row-click="onProductSelected" :iterationId="xmIteration?xmIteration.id:null" @clear="onProductClear"></xm-product-select>
<el-form-item label="归属产品" >
<xm-product-select v-if="!xmProductCpd || !xmProductCpd.id" ref="xmProductSelect" style="display:inline;" :auto-select="false" :link-project-id="xmProject?xmProject.id:null" @row-click="onProductSelected" :iterationId="xmIteration?xmIteration.id:null" @clear="onProductClear"></xm-product-select>
<span v-else>{{xmProductCpd.id}} <span v-if="xmProductCpd.productName"><br/>{{ xmProductCpd.productName }} </span> </span>
</el-form-item>
<el-form-item label="归属迭代" v-if="!xmIteration || !xmIteration.id">
<xm-iteration-select ref="xmIterationSelect" :auto-select="false" :product-id="filters.product?filters.product.id:null" :link-project-id="xmProject?xmProject.id:null" placeholder="迭代" @row-click="onIterationSelected" @clear="onIterationClear"></xm-iteration-select>
<el-form-item label="归属迭代">
<xm-iteration-select v-if="!xmIteration || !xmIteration.id" ref="xmIterationSelect" :auto-select="false" :product-id="filters.product?filters.product.id:null" :link-project-id="xmProject?xmProject.id:null" placeholder="迭代" @row-click="onIterationSelected" @clear="onIterationClear"></xm-iteration-select>
<span v-else> {{xmIteration.id}}
<span v-if="xmIteration.iterationName"><br/>{{ xmIteration.iterationName }} </span></span>
</el-form-item>
<el-form-item label="需求状态" prop="status">
<el-select v-model="filters.status" @change="onXmMenuSomeFieldsChange('status',$event)" clearable>
@ -89,8 +92,25 @@
title(){
return '需求年龄数量分布'
},
dialogTitle(){
if(this.xmIteration && this.xmIteration.id){
return (this.xmIteration?'迭代【'+this.xmIteration.iterationName+'】':'')+'需求年龄数量分布'
}else {
return (filters.product?'产品【'+filters.product.productName+'】':'')+'需求年龄数量分布'
}
},
legendCpd(){
return ['0-2天','3-5天','6-7天','8-15天','16-30天','30天以上']
},
xmProductCpd(){
if(this.xmIteration && this.xmIteration.id){
return {id:this.xmIteration.productId,productName:this.xmIteration.productName}
}
if(this.xmProduct && this.xmProduct.id){
return this.xmProduct
}
return null;
}
},

31
src/views/xm/rpt/product/menuAttDist.vue

@ -1,6 +1,6 @@
<template>
<section>
<el-dialog fullscreen :title="(filters.product?'产品【'+filters.product.productName+'】':'')+'需求属性分布'" append-to-body modal-append-to-body width="80%" top="20px" :visible.sync="visible">
<el-dialog fullscreen :title="dialogTitle" append-to-body modal-append-to-body width="80%" top="20px" :visible.sync="visible">
<el-row :gutter="5">
<el-col :span="18">
<div>
@ -16,11 +16,15 @@
<el-option v-for="i in this.groupBys" :label="i.name" :key="i.id" :value="i.id"></el-option>
</el-select>
</el-form-item>
<el-form-item label="归属产品" v-if="!xmProduct && !xmIteration">
<xm-product-select ref="xmProductSelect" style="display:inline;" :auto-select="false" :link-project-id="xmProject?xmProject.id:null" @row-click="onProductSelected" :iterationId="xmIteration?xmIteration.id:null" @clear="onProductClear"></xm-product-select>
<el-form-item label="归属产品" >
<xm-product-select v-if="!xmProductCpd || !xmProductCpd.id" ref="xmProductSelect" style="display:inline;" :auto-select="false" :link-project-id="xmProject?xmProject.id:null" @row-click="onProductSelected" :iterationId="xmIteration?xmIteration.id:null" @clear="onProductClear"></xm-product-select>
<span v-else>{{xmProductCpd.id}} <span v-if="xmProductCpd.productName"><br/>{{ xmProductCpd.productName }} </span> </span>
</el-form-item>
<el-form-item label="归属迭代" v-if="!xmIteration || !xmIteration.id">
<xm-iteration-select ref="xmIterationSelect" :auto-select="false" :product-id="filters.product?filters.product.id:null" :link-project-id="xmProject?xmProject.id:null" placeholder="迭代" @row-click="onIterationSelected" @clear="onIterationClear"></xm-iteration-select>
<el-form-item label="归属迭代">
<xm-iteration-select v-if="!xmIteration || !xmIteration.id" ref="xmIterationSelect" :auto-select="false" :product-id="filters.product?filters.product.id:null" :link-project-id="xmProject?xmProject.id:null" placeholder="迭代" @row-click="onIterationSelected" @clear="onIterationClear"></xm-iteration-select>
<span v-else> {{xmIteration.id}}
<span v-if="xmIteration.iterationName"><br/>{{ xmIteration.iterationName }} </span></span>
</el-form-item>
<el-form-item label="需求状态" prop="status">
@ -119,6 +123,23 @@
}
return this.dicts[itemId].map(i=>i.name)
},
dialogTitle(){
if(this.xmIteration && this.xmIteration.id){
return (this.xmIteration?'迭代【'+this.xmIteration.iterationName+'】':'')+'需求属性数量分布'
}else {
return (filters.product?'产品【'+filters.product.productName+'】':'')+'需求属性数量分布'
}
},
xmProductCpd(){
if(this.xmIteration && this.xmIteration.id){
return {id:this.xmIteration.productId,productName:this.xmIteration.productName}
}
if(this.xmProduct && this.xmProduct.id){
return this.xmProduct
}
return null;
}
},

30
src/views/xm/rpt/product/menuSort.vue

@ -1,6 +1,6 @@
<template>
<section>
<el-dialog fullscreen :title="(filters.product?'产品【'+filters.product.productName+'】':'')+'用户故事排行榜'" append-to-body modal-append-to-body width="80%" top="20px" :visible.sync="visible">
<el-dialog fullscreen :title="dialogTitle" append-to-body modal-append-to-body width="80%" top="20px" :visible.sync="visible">
<el-row :gutter="5">
<el-col :span="18">
<div>
@ -16,11 +16,14 @@
<el-option v-for="i in this.groupBys" :label="i.name" :key="i.id" :value="i.id"></el-option>
</el-select>
</el-form-item>
<el-form-item label="归属产品" v-if="!xmProduct && !xmIteration">
<xm-product-select ref="xmProductSelect" style="display:inline;" :auto-select="false" :link-project-id="xmProject?xmProject.id:null" @row-click="onProductSelected" :iterationId="xmIteration?xmIteration.id:null" @clear="onProductClear"></xm-product-select>
<el-form-item label="归属产品" >
<xm-product-select v-if="!xmProductCpd || !xmProductCpd.id" ref="xmProductSelect" style="display:inline;" :auto-select="false" :link-project-id="xmProject?xmProject.id:null" @row-click="onProductSelected" :iterationId="xmIteration?xmIteration.id:null" @clear="onProductClear"></xm-product-select>
<span v-else>{{xmProductCpd.id}} <span v-if="xmProductCpd.productName"><br/>{{ xmProductCpd.productName }} </span> </span>
</el-form-item>
<el-form-item label="归属迭代" v-if="!xmIteration || !xmIteration.id">
<xm-iteration-select ref="xmIterationSelect" :auto-select="false" :product-id="filters.product?filters.product.id:null" :link-project-id="xmProject?xmProject.id:null" placeholder="迭代" @row-click="onIterationSelected" @clear="onIterationClear"></xm-iteration-select>
<el-form-item label="归属迭代">
<xm-iteration-select v-if="!xmIteration || !xmIteration.id" ref="xmIterationSelect" :auto-select="false" :product-id="filters.product?filters.product.id:null" :link-project-id="xmProject?xmProject.id:null" placeholder="迭代" @row-click="onIterationSelected" @clear="onIterationClear"></xm-iteration-select>
<span v-else> {{xmIteration.id}}
<span v-if="xmIteration.iterationName"><br/>{{ xmIteration.iterationName }} </span></span>
</el-form-item>
<el-form-item label="需求状态" prop="status">
<el-select v-model="filters.status" @change="onXmMenuSomeFieldsChange('status',$event)" clearable>
@ -94,6 +97,23 @@
return this.xmMenuSorts.map(i=>i.name)
}
},
dialogTitle(){
if(this.xmIteration && this.xmIteration.id){
return (this.xmIteration?'迭代【'+this.xmIteration.iterationName+'】':'')+'用户故事数量排行榜'
}else {
return (filters.product?'产品【'+filters.product.productName+'】':'')+'用户故事数量排行榜'
}
},
xmProductCpd(){
if(this.xmIteration && this.xmIteration.id){
return {id:this.xmIteration.productId,productName:this.xmIteration.productName}
}
if(this.xmProduct && this.xmProduct.id){
return this.xmProduct
}
return null;
}
},

75
src/views/xm/rpt/reportIndex.vue

@ -22,28 +22,28 @@
</el-row>
</el-row>
<xm-iteration-burnout ref="xmIterationBurnout" :xm-iteration="xmIteration" :xm-product="xmProduct" :xm-project="xmProject"></xm-iteration-burnout>
<xm-menu-day-trend ref="xmMenuDayTrend" :xm-product="xmProduct" :xm-project="xmProject"></xm-menu-day-trend>
<xm-menu-day-accumulate ref="xmMenuDayAccumulate" :xm-product="xmProduct" :xm-project="xmProject"></xm-menu-day-accumulate>
<xm-menu-att-dist ref="xmMenuAttDist" :xm-product="xmProduct" :xm-project="xmProject"></xm-menu-att-dist>
<xm-menu-age-dist ref="xmMenuAgeDist" :xm-product="xmProduct" :xm-project="xmProject"></xm-menu-age-dist>
<xm-menu-sort ref="xmMenuSort" :xm-product="xmProduct" :xm-project="xmProject"></xm-menu-sort>
<xm-task-day-trend ref="xmTaskDayTrend" :xm-product="xmProduct" :xm-project="xmProject"></xm-task-day-trend>
<xm-task-day-accumulate ref="xmTaskDayAccumulate" :xm-product="xmProduct" :xm-project="xmProject"></xm-task-day-accumulate>
<xm-task-att-dist ref="xmTaskAttDist" :xm-product="xmProduct" :xm-project="xmProject"></xm-task-att-dist>
<xm-task-age-dist ref="xmTaskAgeDist" :xm-product="xmProduct" :xm-project="xmProject"></xm-task-age-dist>
<xm-task-sort ref="xmTaskSort" :xm-product="xmProduct" :xm-project="xmProject"></xm-task-sort>
<xm-menu-day-trend ref="xmMenuDayTrend" :xm-product="xmProduct" :xm-project="xmProject" :xm-iteration="xmIteration"></xm-menu-day-trend>
<xm-menu-day-accumulate ref="xmMenuDayAccumulate" :xm-product="xmProduct" :xm-project="xmProject" :xm-iteration="xmIteration"></xm-menu-day-accumulate>
<xm-menu-att-dist ref="xmMenuAttDist" :xm-product="xmProduct" :xm-project="xmProject" :xm-iteration="xmIteration"></xm-menu-att-dist>
<xm-menu-age-dist ref="xmMenuAgeDist" :xm-product="xmProduct" :xm-project="xmProject" :xm-iteration="xmIteration"></xm-menu-age-dist>
<xm-menu-sort ref="xmMenuSort" :xm-product="xmProduct" :xm-project="xmProject" :xm-iteration="xmIteration"></xm-menu-sort>
<xm-task-day-trend ref="xmTaskDayTrend" :xm-product="xmProduct" :xm-project="xmProject" :xm-iteration="xmIteration"></xm-task-day-trend>
<xm-task-day-accumulate ref="xmTaskDayAccumulate" :xm-product="xmProduct" :xm-project="xmProject" :xm-iteration="xmIteration"></xm-task-day-accumulate>
<xm-task-att-dist ref="xmTaskAttDist" :xm-product="xmProduct" :xm-project="xmProject" :xm-iteration="xmIteration"></xm-task-att-dist>
<xm-task-age-dist ref="xmTaskAgeDist" :xm-product="xmProduct" :xm-project="xmProject" :xm-iteration="xmIteration"></xm-task-age-dist>
<xm-task-sort ref="xmTaskSort" :xm-product="xmProduct" :xm-project="xmProject" :xm-iteration="xmIteration"></xm-task-sort>
<xm-project-work-item-day-list ref="xmProjectWorkItemDayList" :xm-product="xmProduct" :xm-project="xmProject" ></xm-project-work-item-day-list>
<xm-project-workload-set-day-list ref="xmProjectWorkloadSetDayList" :xm-product="xmProduct" :xm-project="xmProject"></xm-project-workload-set-day-list>
<xm-project-workload-set-month-list ref="xmProjectWorkloadSetMonthList" :xm-product="xmProduct" :xm-project="xmProject"></xm-project-workload-set-month-list>
<xm-question-day-trend ref="xmQuestionDayTrend" :xm-product="xmProduct" :xm-project="xmProject"></xm-question-day-trend>
<xm-question-day-accumulate ref="xmQuestionDayAccumulate" :xm-product="xmProduct" :xm-project="xmProject"></xm-question-day-accumulate>
<xm-question-att-dist ref="xmQuestionAttDist" :xm-product="xmProduct" :xm-project="xmProject"></xm-question-att-dist>
<xm-question-age-dist ref="xmQuestionAgeDist" :xm-product="xmProduct" :xm-project="xmProject"></xm-question-age-dist>
<xm-question-sort ref="xmQuestionSort" :xm-product="xmProduct" :xm-project="xmProject"></xm-question-sort>
<xm-question-day-trend ref="xmQuestionDayTrend" :xm-product="xmProduct" :xm-project="xmProject" :xm-iteration="xmIteration"></xm-question-day-trend>
<xm-question-day-accumulate ref="xmQuestionDayAccumulate" :xm-product="xmProduct" :xm-project="xmProject" :xm-iteration="xmIteration"></xm-question-day-accumulate>
<xm-question-att-dist ref="xmQuestionAttDist" :xm-product="xmProduct" :xm-project="xmProject" :xm-iteration="xmIteration"></xm-question-att-dist>
<xm-question-age-dist ref="xmQuestionAgeDist" :xm-product="xmProduct" :xm-project="xmProject" :xm-iteration="xmIteration"></xm-question-age-dist>
<xm-question-sort ref="xmQuestionSort" :xm-product="xmProduct" :xm-project="xmProject" :xm-iteration="xmIteration"></xm-question-sort>
<xm-product-work-item-day-list ref="xmProductWorkItemDayList" :xm-product="xmProduct" :xm-project="xmProject"></xm-product-work-item-day-list>
</section>
</template>
@ -88,7 +88,7 @@
components: {
xmIterationBurnout,xmMenuDayTrend,xmMenuDayAccumulate,xmMenuAttDist,xmMenuAgeDist,xmMenuSort,xmProductWorkItemDayList,xmTaskDayTrend,xmTaskDayAccumulate,xmTaskAttDist,xmTaskAgeDist,xmTaskSort,xmProjectWorkItemDayList,xmProjectWorkloadSetDayList,xmProjectWorkloadSetMonthList,xmQuestionDayTrend,xmQuestionDayAccumulate,xmQuestionAttDist,xmQuestionAgeDist,xmQuestionSort,
},
props:['xmProduct','xmIteration','xmProject'],
props:['xmProduct','xmIteration','xmProject','xmTestCasedb'],
computed: {
...mapGetters([
'userInfo','roles'
@ -128,15 +128,33 @@
dateRanger:[],
maxTableHeight:300,
rptList:[/**{name:'报表名称',category:'报表分类,组织级、产品级、项目级、迭代级、需求、测试、任务',path:'路由路径',imgUrl:'图片路径',query:{参数}} */
//
{rptName:'迭代燃尽图',category:'迭代级',ref:'xmIterationBurnout',desc:'跟踪迭代的剩余工作量按日期变化趋势,识别迭代当前进度情况',img:ranjintu },
{rptName:'需求每日趋势',category:'迭代级',ref:'xmMenuDayTrend',desc:'跟踪未开始、执行中、已完成、已关闭状态的需求数量按日期变化趋势,识别需求工作情况',img:lineStack },
{rptName:'需求每日累积',category:'迭代级',ref:'xmMenuDayAccumulate',desc:'跟踪未开始、执行中、已完成、已关闭状态的需求数量按日期累积情况,识别需求工作的瓶颈',img:areaStack },
{rptName:'需求属性分布',category:'迭代级',ref:'xmMenuAttDist',desc:'统计所有需求任意属性数量分布情况(实时数据)',img:pieSimple },
{rptName:'需求年龄分布',category:'迭代级',ref:'xmMenuAgeDist',desc:'统计所有需求年龄分布情况(实时数据)',img:pieSimple },
{rptName:'需求排行榜',category:'迭代级',ref:'xmMenuSort',desc:'需求提出人、负责人的用户故事数量排行(实时数据)',img:bar },
{rptName:'缺陷每日趋势',category:'迭代级',ref:'xmQuestionDayTrend',desc:'跟踪新提出、执行中、已解决、已关闭状态的缺陷数量按日期变化趋势,识别缺陷处理工作情况',img:lineStack },
{rptName:'缺陷每日累积',category:'迭代级',ref:'xmQuestionDayAccumulate',desc:'跟踪新提出、执行中、已解决、已关闭状态的缺陷数量按日期累积情况,识别缺陷处理工作的瓶颈',img:areaStack },
{rptName:'缺陷属性分布',category:'迭代级',ref:'xmQuestionAttDist',desc:'统计所有缺陷任意属性数量分布情况(实时数据)',img:pieSimple },
{rptName:'缺陷年龄分布',category:'迭代级',ref:'xmQuestionAgeDist',desc:'统计所有缺陷年龄分布情况(实时数据)',img:pieSimple },
{rptName:'缺陷排行榜',category:'迭代级',ref:'xmQuestionSort',desc:'从缺陷提出人、创建人、负责人、故事等维度统计缺陷数量排行榜(实时数据)',img:bar },
//
{rptName:'需求每日趋势',category:'产品级',ref:'xmMenuDayTrend',desc:'跟踪未开始、执行中、已完成、已关闭状态的需求数量按日期变化趋势,识别需求工作情况',img:lineStack },
{rptName:'需求每日累积',category:'产品级',ref:'xmMenuDayAccumulate',desc:'跟踪未开始、执行中、已完成、已关闭状态的需求数量按日期累积情况,识别需求工作的瓶颈',img:areaStack },
{rptName:'需求属性分布',category:'产品级',ref:'xmMenuAttDist',desc:'统计所有需求任意属性数量分布情况(实时数据)',img:pieSimple },
{rptName:'需求年龄分布',category:'产品级',ref:'xmMenuAgeDist',desc:'统计所有需求年龄分布情况(实时数据)',img:pieSimple },
{rptName:'需求排行榜',category:'产品级',ref:'xmMenuSort',desc:'需求提出人、负责人的用户故事数量排行(实时数据)',img:bar },
{rptName:'产品工作项每日趋势',category:'产品级',ref:'xmProductWorkItemDayList',desc:'统计产品每日工作项数量分布情况',img:datasetLink },
{rptName:'缺陷每日趋势',category:'产品级',ref:'xmQuestionDayTrend',desc:'跟踪新提出、执行中、已解决、已关闭状态的缺陷数量按日期变化趋势,识别缺陷处理工作情况',img:lineStack },
{rptName:'缺陷每日累积',category:'产品级',ref:'xmQuestionDayAccumulate',desc:'跟踪新提出、执行中、已解决、已关闭状态的缺陷数量按日期累积情况,识别缺陷处理工作的瓶颈',img:areaStack },
{rptName:'缺陷属性分布',category:'产品级',ref:'xmQuestionAttDist',desc:'统计所有缺陷任意属性数量分布情况(实时数据)',img:pieSimple },
{rptName:'缺陷年龄分布',category:'产品级',ref:'xmQuestionAgeDist',desc:'统计所有缺陷年龄分布情况(实时数据)',img:pieSimple },
{rptName:'缺陷排行榜',category:'产品级',ref:'xmQuestionSort',desc:'从缺陷提出人、创建人、负责人、故事等维度统计缺陷数量排行榜(实时数据)',img:bar },
//
{rptName:'任务每日趋势',category:'项目级',ref:'xmTaskDayTrend',desc:'跟踪未开始、执行中、已完成、已关闭状态的任务数量按日期变化趋势,识别任务工作情况',img:lineStack },
{rptName:'任务每日累积',category:'项目级',ref:'xmTaskDayAccumulate',desc:'跟踪未开始、执行中、已完成、已关闭状态的任务数量按日期累积情况,识别任务工作的瓶颈',img:areaStack },
{rptName:'任务属性分布',category:'项目级',ref:'xmTaskAttDist',desc:'统计所有任务任意属性数量分布情况(实时数据)',img:pieSimple },
@ -146,12 +164,18 @@
{rptName:'项目结算工时每日趋势',category:'项目级',ref:'xmProjectWorkloadSetDayList',desc:'统计项目每日登记工时、结算工时数量分布情况',img:datasetLink },
{rptName:'项目结算工时每月趋势',category:'项目级',ref:'xmProjectWorkloadSetMonthList',desc:'统计项目每月登记工时、结算工时数量分布情况',img:datasetLink },
//
{rptName:'需求每日趋势',category:'测试库',ref:'xmMenuDayTrend',desc:'跟踪未开始、执行中、已完成、已关闭状态的需求数量按日期变化趋势,识别需求工作情况',img:lineStack },
{rptName:'需求每日累积',category:'测试库',ref:'xmMenuDayAccumulate',desc:'跟踪未开始、执行中、已完成、已关闭状态的需求数量按日期累积情况,识别需求工作的瓶颈',img:areaStack },
{rptName:'需求属性分布',category:'测试库',ref:'xmMenuAttDist',desc:'统计所有需求任意属性数量分布情况(实时数据)',img:pieSimple },
{rptName:'需求年龄分布',category:'测试库',ref:'xmMenuAgeDist',desc:'统计所有需求年龄分布情况(实时数据)',img:pieSimple },
{rptName:'需求排行榜',category:'测试库',ref:'xmMenuSort',desc:'需求提出人、负责人的用户故事数量排行(实时数据)',img:bar },
{rptName:'缺陷每日趋势',category:'测试库',ref:'xmQuestionDayTrend',desc:'跟踪新提出、执行中、已解决、已关闭状态的缺陷数量按日期变化趋势,识别缺陷处理工作情况',img:lineStack },
{rptName:'缺陷每日累积',category:'测试库',ref:'xmQuestionDayAccumulate',desc:'跟踪新提出、执行中、已解决、已关闭状态的缺陷数量按日期累积情况,识别缺陷处理工作的瓶颈',img:areaStack },
{rptName:'缺陷属性分布',category:'测试库',ref:'xmQuestionAttDist',desc:'统计所有缺陷任意属性数量分布情况(实时数据)',img:pieSimple },
{rptName:'缺陷年龄分布',category:'测试库',ref:'xmQuestionAgeDist',desc:'统计所有缺陷年龄分布情况(实时数据)',img:pieSimple },
{rptName:'缺陷排行榜',category:'测试库',ref:'xmQuestionSort',desc:'从缺陷提出人、创建人、负责人、故事等维度统计缺陷数量排行榜(实时数据)',img:bar },
{rptName:'缺陷每日趋势',category:'产品级',ref:'xmQuestionDayTrend',desc:'跟踪新提出、执行中、已解决、已关闭状态的缺陷数量按日期变化趋势,识别缺陷处理工作情况',img:lineStack },
{rptName:'缺陷每日累积',category:'产品级',ref:'xmQuestionDayAccumulate',desc:'跟踪新提出、执行中、已解决、已关闭状态的缺陷数量按日期累积情况,识别缺陷处理工作的瓶颈',img:areaStack },
{rptName:'缺陷属性分布',category:'产品级',ref:'xmQuestionAttDist',desc:'统计所有缺陷任意属性数量分布情况(实时数据)',img:pieSimple },
{rptName:'缺陷年龄分布',category:'产品级',ref:'xmQuestionAgeDist',desc:'统计所有缺陷年龄分布情况(实时数据)',img:pieSimple },
{rptName:'缺陷排行榜',category:'产品级',ref:'xmQuestionSort',desc:'从缺陷提出人、创建人、负责人、故事等维度统计缺陷数量排行榜(实时数据)',img:bar },
],
}//end return
},//end data
@ -161,6 +185,7 @@
params.xmProduct=this.xmProduct
params.xmProject=this.xmProject
params.xmIteration=this.xmIteration
params.xmTestCasedb=this.xmTestCasedb
this.$refs[row.ref].open(params);
},
@ -174,6 +199,8 @@
*/
if(this.xmIteration && this.xmIteration.id){
this.filters.category="迭代级"
}else if(this.xmTestCasedb && this.xmTestCasedb.id){
this.filters.category="测试库"
}else if(this.xmProject && this.xmProject.id){
this.filters.category="项目级"
}else if(this.xmProduct && this.xmProduct.id){

Loading…
Cancel
Save