Browse Source

优化

master
陈裕财 3 years ago
parent
commit
57013b9749
  1. 57
      src/views/xm/rpt/index/CompsCard.vue
  2. 17
      src/views/xm/rpt/index/CompsCardHisDetail.vue
  3. 119
      src/views/xm/rpt/index/CompsSet.vue
  4. 2
      src/views/xm/rpt/index/indexForTest.vue

57
src/views/xm/rpt/index/CompsCard.vue

@ -2,7 +2,7 @@
<section>
<el-row class="padding-left padding-right">
<el-col :span="6">
<comps-set :comp-ids="compIds" :category="category" @row-click="onCompSelect" ref="compsSet" :show-checked-only="isRptShow||showCheckedOnly"></comps-set>
<comps-set :category="category" @row-click="onCompSelect" ref="compsSet" :show-checked-only="isRptShow||showCheckedOnly" @sort="onSort"></comps-set>
</el-col>
<el-col :span="18">
<el-row class="padding">
@ -29,7 +29,7 @@
<el-empty description="暂未选择报表,请至少选择一个报表"></el-empty>
</div>
<div v-else id="printBody" ref="rptBox">
<component style="margin-bottom:80px;" v-for="(item,index) in compCfgList" :key="index" :is="item.compId" :xm-test-plan="xmTestPlan" :xm-product="xmProduct" :xm-project="xmProject" :xm-iteration="xmIteration" :xm-test-casedb="xmTestCasedb" :category="category" :cfg="item.cfg" :ref="item.id" @delete="doDelete(item)" :init-group-by="item.initGroupBy" :show-tool-bar="false" :id="item.id" :rpt-datas="item.rawDatas" :is-rpt-cfg="isRptCfg" :show-params="paramsVisible"></component>
<component style="margin-bottom:80px;" v-for="(item,index) in compCfgList" :key="item.compId" :is="item.compId" :xm-test-plan="xmTestPlan" :xm-product="xmProduct" :xm-project="xmProject" :xm-iteration="xmIteration" :xm-test-casedb="xmTestCasedb" :category="category" :cfg="item.cfg" :ref="item.id" @delete="doDelete(item)" :init-group-by="item.initGroupBy" :show-tool-bar="false" :id="item.id" :rpt-datas="item.rawDatas" :is-rpt-cfg="isRptCfg" :show-params="paramsVisible"></component>
</div>
</el-row>
@ -77,7 +77,7 @@ import { addXmRptData } from '@/api/xm/core/xmRptData';
import { listXmRptConfig,editXmRptConfig,addXmRptConfig } from '@/api/xm/core/xmRptConfig';
import rptComps from './comps.js';//
import rptComps from './comps.js';//
export default {
components: {
@ -90,9 +90,6 @@ export default {
props:['xmTestCasedb','xmTestPlan','xmProduct','xmProject','xmIteration','category','showParams','showCheckedOnly'],
computed: {
...mapGetters(['userInfo']),
compIds(){
return this.compCfgList.map(k=>k.compId)
},
rptConfigParamsCpd(){
//1-2-3-4-5-
var params={bizType:'5',bizId:this.userInfo.branchId,name:this.userInfo.branchName}
@ -112,16 +109,15 @@ export default {
params.bizType='4';
params.bizId=this.xmProject.id
params.name=this.xmProject.name
}else if(this.category=='测试级'){
if(this.xmTestPlan && this.xmTestPlan.id){
params.bizType='3';
params.bizId=this.xmTestPlan.id
params.name=this.xmTestPlan.name
}else{
}else if(this.category=='测试库级'){
params.bizType='6';
params.bizId=this.xmTestCasedb.id
params.name=this.xmTestCasedb.name
}
}else if(this.category=='测试计划级'){
params.bizType='3';
params.bizId=this.xmTestPlan.id
params.name=this.xmTestPlan.name
}
return params;
},
@ -160,7 +156,7 @@ export default {
xmRptConfig:{id:'',name:'',bizType:'',bizId:'',cfg:[]},
xmRptData:{id:'',rptName:'',bizId:'',bizType:'',bizDate:'',rptData:[]},
xmRptDataInit:{id:'',rptName:'',bizId:'',bizType:'',bizDate:'',rptData:[]},
compCfgList:[],
compCfgList:[],
maxTableHeight:300,
//
layoutColNum: 12,
@ -301,17 +297,19 @@ export default {
if(this.xmRptConfig && this.xmRptConfig.id && this.xmRptConfig.cfg){
var cfgJson=JSON.parse(this.xmRptConfig.cfg)
cfgJson.forEach(k=>k.id=k.compId+seq.sn())
this.compCfgList=cfgJson;
this.compCfgList=cfgJson;
this.$refs.compsSet.setCheckeds(this.compCfgList.map(k=>k.compId),true)
}else{
var defList=this.$refs['compsSet'].rptListCpd
if(defList && defList.length>3){
defList=defList.slice(0,3);
}
defList.forEach(k=>k.id=k.compId+seq.sn())
this.compCfgList=JSON.parse(JSON.stringify(defList))
this.compCfgList=JSON.parse(JSON.stringify(defList))
this.$refs.compsSet.setCheckeds(this.compCfgList.map(k=>k.compId),true)
}
},
onCompSelect(comp){
onCompSelect(comp){
if(this.compCfgList.some(k=>k.compId==comp.compId)){
var compCfg=this.compCfgList.find(k=>k.compId==comp.compId)
this.$nextTick(()=>{
@ -391,8 +389,9 @@ export default {
doDelete(compCfg){
var index=this.compCfgList.findIndex(k=>k.id==compCfg.id)
if(index>=0){
this.compCfgList.splice(index,1)
}
this.compCfgList.splice(index,1)
}
this.$refs.compsSet.setChecked(compCfg.compId,false)
},
sizeAutoChange(k){
@ -406,7 +405,8 @@ export default {
this.xmRptConfig.name=this.xmRptData.rptName
var cfgList=JSON.parse(this.xmRptData.rptData)
cfgList.forEach(k=>k.id=k.compId+seq.sn())
this.compCfgList=cfgList
this.compCfgList=cfgList
this.$refs.compsSet.setCheckeds(this.compCfgList.map(k=>k.compId),true)
}
}
},
@ -417,6 +417,23 @@ export default {
})
},
onSort(evt,datas){
datas.forEach((d,index)=>{
var comp=this.compCfgList.find(k=>k.compId==d.compId)
if(comp){
comp.index=index
}
})
this.compCfgList.sort((i1,i2)=>{
return i1.index-i2.index
})
var compCfg=this.compCfgList.find(k=>k.compId==datas[evt.newIndex].compId)
this.$nextTick(()=>{
setTimeout(()=>{
this.scrollToComp(compCfg)
},200)
})
}
},

17
src/views/xm/rpt/index/CompsCardHisDetail.vue

@ -2,7 +2,7 @@
<section>
<el-row class="padding-left padding-right">
<el-col :span="6">
<comps-set v-if="compIds && compIds.length>0" :comp-ids="compIds" :category="category" @row-click="onCompSelect" ref="compsSet" :show-checked-only="true"></comps-set>
<comps-set :category="category" @row-click="onCompSelect" ref="compsSet" :show-checked-only="true"></comps-set>
</el-col>
<el-col :span="18">
<el-row class="padding">
@ -20,7 +20,7 @@
<el-empty description="暂未选择报表,请至少选择一个报表"></el-empty>
</div>
<div v-else id="printBody" ref="rptBox">
<component style="margin-bottom:80px;" v-for="(item,index) in compCfgList" :key="index" :is="item.compId" :cfg="item" :init-group-by="item.initGroupBy" :show-tool-bar="false" :id="item.id" :rpt-datas="item.rawDatas" :is-rpt-cfg="false" :show-params="paramsVisible"></component>
<component style="margin-bottom:80px;" v-for="(item,index) in compCfgList" :key="item.compId" :is="item.compId" :cfg="item" :init-group-by="item.initGroupBy" :show-tool-bar="false" :id="item.id" :rpt-datas="item.rawDatas" :is-rpt-cfg="false" :show-params="paramsVisible"></component>
</div>
</el-row>
</el-col>
@ -45,10 +45,7 @@ export default {
},
props:['showParams','xmRptData'],
computed: {
...mapGetters(['userInfo']),
compIds(){
return this.compCfgList.map(k=>k.compId)
},
...mapGetters(['userInfo']),
//1-2-3-4-5-6-
category(){
if( !this.xmRptData || !this.xmRptData.id){
@ -62,7 +59,7 @@ export default {
return "迭代级"
}
if(this.xmRptData.bizType=='3'){
return "测试级"
return "测试计划级"
}
if(this.xmRptData.bizType=='4'){
return "项目级"
@ -71,7 +68,7 @@ export default {
return "企业级"
}
if(this.xmRptData.bizType=='6'){
return "测试计划级"
return "测试级"
}
}
@ -118,9 +115,11 @@ export default {
if(this.xmRptData && this.xmRptData.rptData){
var cfgJson=JSON.parse(this.xmRptData.rptData)
cfgJson.forEach(k=>k.id=k.compId+seq.sn())
this.compCfgList=cfgJson;
this.compCfgList=cfgJson;
this.$refs.compsSet.setCheckeds(this.compCfgList.map(k=>k.compId),true)
}else{
this.compCfgList=[]
this.$refs.compsSet.setCheckeds([],true)
}
},
onCompSelect(comp){

119
src/views/xm/rpt/index/CompsSet.vue

@ -8,21 +8,27 @@
<el-row ref="table" :style="{height:maxTableHeight+'px',overflow:'auto'}">
<div class="moduleset-lg hidden-md-and-down">
<div class="nav">
<div class="nav_item" :class="{itemActive: item.isChecked,curr:item.isCurr}" v-for="(item, index) in compsCpd" :key="index" @click="selectItem(item, index)">
<img :src="item.img" alt="">
<div class="desc">
<p>{{index+1}} {{item.rptName}}</p>
<span>
{{item.desc}}
</span>
</div>
<i v-if="item.isChecked" class="el-icon-success"></i>
</div>
<draggable @update="datadragEnd" v-model="datas" style='sort: false' >
   <transition-group >
<div class="nav_item" :class="{itemActive: item.isChecked,curr:item.isCurr}" v-for="(item, index) in datas" :key="index" @click="selectItem(item, index)">
<img :src="item.img" alt="">
<div class="desc">
<p>{{index+1}} {{item.rptName}}</p>
<span>
{{item.desc}}
</span>
</div>
<i v-if="item.isChecked" class="el-icon-success"></i>
</div>
   </transition-group>
</draggable>
</div>
</div>
<div class="moduleset-sm hidden-lg-and-up">
<div class="nav">
<div class="nav_item" :class="{itemActive: item.isChecked,curr:item.isCurr}" v-for="(item, index) in compsCpd" :key="index" @click="selectItem(item, index)">
<draggable @update="datadragEnd" v-model="datas" style='sort: false' >
   <transition-group >
<div class="nav_item" :class="{itemActive: item.isChecked,curr:item.isCurr}" v-for="(item, index) in datas" :key="index" @click="selectItem(item, index)">
<div class="title"><p>{{index+1}} {{item.rptName}}</p></div>
<div class="context">
<img :src="item.img" alt=""></img>
@ -32,6 +38,8 @@
</div>
<i v-if="item.isChecked" class="el-icon-success"></i>
</div>
   </transition-group>
</draggable>
</div>
</div>
</el-row>
@ -47,24 +55,26 @@ import areaStack from '../images/area-stack.png'
import ranjintu from '../images/ranjintu.png'
import datasetLink from '../images/dataset-link.png'
import bar from '../images/bar.png'
import draggable from 'vuedraggable'
import { mapGetters } from 'vuex'
import store from '@/store'
export default {
props: ['compIds','category','showCheckedOnly'],
props: ['category','showCheckedOnly'],
components:{
draggable
},
computed: {
...mapGetters(['userInfo']),
compsCpd(){
var comps=this.rptListCpd;
if(this.compIds && this.compIds.length>0){
comps.forEach(i=>{
i.isChecked=this.compIds.some(k=>k==i.compId)
})
}
var comps=this.rptListCpd;
if(this.showCheckedOnly){
comps=comps.filter(k=>k.isChecked)
}
}
comps.sort((i1,i2)=>{
return i1.index-i2.index
})
return comps;
},
rptListCpd(){
@ -94,7 +104,9 @@ export default {
},
watch: {
compsCpd(){
this.datas= this.compsCpd;
}
},
data() {
@ -104,6 +116,7 @@ export default {
filters:{
category:'企业级'
},
datas:[],
comps: [
{isChecked:false,isCurr:false,rptName:'迭代总结',category:'迭代级',compId:'xmIterationRptOverview',desc:'显示迭代总体情况',img:pieSimple },
{isChecked:false,isCurr:false,rptName:'迭代燃尽图',category:'迭代级',compId:'xmIterationBurnout',desc:'跟踪迭代的剩余工作量按日期变化趋势,识别迭代当前进度情况',img:ranjintu },
@ -148,28 +161,28 @@ export default {
{isChecked:false,isCurr:false,rptName:'项目结算工时每月趋势',category:'项目级',compId:'xmProjectWorkloadSetMonthList',desc:'统计项目每月登记工时、结算工时数量分布情况',img:datasetLink },
//
//
{isChecked:false,isCurr:false,rptName:'测试计划总结',category:'测试计划级',compId:'xmTestPlanRptOverview',desc:'显示测试计划总体情况',img:pieSimple },
{isChecked:false,isCurr:false,rptName:'测试库总体测试总结',category:'测试级',compId:'xmTestCasedbRptOverview',desc:'显示测试库总体情况',img:pieSimple },
{isChecked:false,isCurr:false,rptName:'测试库总体测试总结',category:'测试级',compId:'xmTestCasedbRptOverview',desc:'显示测试库总体情况',img:pieSimple },
{isChecked:false,isCurr:false,rptName:'测试用例规划分析',category:'测试计划级,测试级,项目级,产品级,迭代级,企业级',compId:'xmTestCaseToPlanCalc',desc:'显示用例被规划到测试计划中的次数统计',img:pieSimple },
{isChecked:false,isCurr:false,rptName:'测试用例需求覆盖分析',category:'测试计划级,测试级,项目级,产品级,迭代级,企业级',compId:'xmTestCaseMenuSort',initGroupBy:'menu_id',desc:'统计测试用例需求覆盖情况',img:bar },
{isChecked:false,isCurr:false,rptName:'测试用例模块覆盖分析',category:'测试计划级,测试级,项目级,产品级,迭代级,企业级',compId:'xmTestCaseFuncSort',initGroupBy:'func_id',desc:'统计测试用例覆盖各个模块的情况',img:bar },
{isChecked:false,isCurr:false,rptName:'测试用例负责人排行榜',category:'测试计划级,测试级,项目级,产品级,迭代级,企业级',compId:'xmTestCaseCuserSort',initGroupBy:'cuserid',desc:'统计测试团队每个人负责的测试用例数并进行排序',img:bar },
{isChecked:false,isCurr:false,rptName:'测试用例规划分析',category:'测试计划级,测试级,项目级,产品级,迭代级,企业级',compId:'xmTestCaseToPlanCalc',desc:'显示用例被规划到测试计划中的次数统计',img:pieSimple },
{isChecked:false,isCurr:false,rptName:'测试用例需求覆盖分析',category:'测试计划级,测试级,项目级,产品级,迭代级,企业级',compId:'xmTestCaseMenuSort',initGroupBy:'menu_id',desc:'统计测试用例需求覆盖情况',img:bar },
{isChecked:false,isCurr:false,rptName:'测试用例模块覆盖分析',category:'测试计划级,测试级,项目级,产品级,迭代级,企业级',compId:'xmTestCaseFuncSort',initGroupBy:'func_id',desc:'统计测试用例覆盖各个模块的情况',img:bar },
{isChecked:false,isCurr:false,rptName:'测试用例负责人排行榜',category:'测试计划级,测试级,项目级,产品级,迭代级,企业级',compId:'xmTestCaseCuserSort',initGroupBy:'cuserid',desc:'统计测试团队每个人负责的测试用例数并进行排序',img:bar },
{isChecked:false,isCurr:false,rptName:'测试用例执行状态分布',category:'测试计划级,测试级,项目级,产品级,迭代级,企业级',compId:'xmTestPlanCaseExecStatusDist',desc:'按测试用例执行结果统计,通过、失败、忽略、阻塞',img:pieSimple },
{isChecked:false,isCurr:false,rptName:'测试用例执行用户分布',category:'测试计划级,测试级,项目级,产品级,迭代级,企业级',compId:'xmTestPlanCaseUserDist',desc:'统计测试用例负责人用例执行情况',img:bar },
{isChecked:false,isCurr:false,rptName:'缺陷回归分布',category:'测试计划级,测试级,项目级,产品级,迭代级,企业级',compId:'xmQuestionRetestDist',desc:'统计项目中缺陷在回归测试中分布情况,跟踪缺陷的重新打开率;',img:pieSimple },
{isChecked:false,isCurr:false,rptName:'测试次数每日统计',category:'测试计划级,测试级,项目级,产品级,迭代级,企业级',compId:'xmTestDayTimesCalc',desc:'统计每日测试用例执行数量',img:bar },
{isChecked:false,isCurr:false,rptName:'缺陷状态分布',category:'测试计划级,测试级,项目级,产品级,迭代级,企业级',compId:'xmQuestionStateDist',desc:'跟踪新提出、执行中、已解决、已关闭状态的缺陷数量按日期变化趋势,识别缺陷处理工作情况',img:pieSimple },
{isChecked:false,isCurr:false,rptName:'测试用例执行状态分布',category:'测试计划级,测试级,项目级,产品级,迭代级,企业级',compId:'xmTestPlanCaseExecStatusDist',desc:'按测试用例执行结果统计,通过、失败、忽略、阻塞',img:pieSimple },
{isChecked:false,isCurr:false,rptName:'测试用例执行用户分布',category:'测试计划级,测试级,项目级,产品级,迭代级,企业级',compId:'xmTestPlanCaseUserDist',desc:'统计测试用例负责人用例执行情况',img:bar },
{isChecked:false,isCurr:false,rptName:'缺陷回归分布',category:'测试计划级,测试级,项目级,产品级,迭代级,企业级',compId:'xmQuestionRetestDist',desc:'统计项目中缺陷在回归测试中分布情况,跟踪缺陷的重新打开率;',img:pieSimple },
{isChecked:false,isCurr:false,rptName:'测试次数每日统计',category:'测试计划级,测试级,项目级,产品级,迭代级,企业级',compId:'xmTestDayTimesCalc',desc:'统计每日测试用例执行数量',img:bar },
{isChecked:false,isCurr:false,rptName:'缺陷状态分布',category:'测试计划级,测试级,项目级,产品级,迭代级,企业级',compId:'xmQuestionStateDist',desc:'跟踪新提出、执行中、已解决、已关闭状态的缺陷数量按日期变化趋势,识别缺陷处理工作情况',img:pieSimple },
{isChecked:false,isCurr:false,rptName:'缺陷排行榜',category:'测试计划级,测试级,项目级,产品级,迭代级,企业级',compId:'xmQuestionSort',desc:'从缺陷提出人、创建人、负责人、故事等维度统计缺陷数量排行榜(实时数据)',img:bar },
{isChecked:false,isCurr:false,rptName:'缺陷提出人排行榜',category:'测试计划级,测试级,项目级,产品级,迭代级,企业级',compId:'xmQuestionAskUserSort',initGroupBy:'ask_userid',desc:'从缺陷提出人、创建人、负责人、故事等维度统计缺陷数量排行榜(实时数据)',img:bar },
{isChecked:false,isCurr:false,rptName:'缺陷负责人排行榜',category:'测试计划级,测试级,项目级,产品级,迭代级,企业级',compId:'xmQuestionHandlerUserSort',initGroupBy:'handler_userid',desc:'从缺陷提出人、创建人、负责人、故事等维度统计缺陷数量排行榜(实时数据)',img:bar },
{isChecked:false,isCurr:false,rptName:'缺陷模块排行榜',category:'测试计划级,测试级,项目级,产品级,迭代级,企业级',compId:'xmQuestionFuncSort',initGroupBy:'func_id',desc:'从缺陷提出人、创建人、负责人、故事等维度统计缺陷数量排行榜(实时数据)',img:bar },
{isChecked:false,isCurr:false,rptName:'缺陷需求排行榜',category:'测试计划级,测试级,项目级,产品级,迭代级,企业级',compId:'xmQuestionMenuSort',initGroupBy:'menu_id',desc:'从缺陷提出人、创建人、负责人、故事等维度统计缺陷数量排行榜(实时数据)',img:bar },
{isChecked:false,isCurr:false,rptName:'缺陷属性分布',category:'测试计划级,测试级,项目级,产品级,迭代级,企业级',compId:'xmQuestionAttDist',desc:'统计所有缺陷任意属性数量分布情况(实时数据)',img:pieSimple },
{isChecked:false,isCurr:false,rptName:'缺陷年龄分布',category:'测试计划级,测试级,项目级,产品级,迭代级,企业级',compId:'xmQuestionAgeDist',desc:'统计所有缺陷按照年龄的分布情况,跟踪缺陷的生命周期和响应情况',img:pieSimple },
{isChecked:false,isCurr:false,rptName:'缺陷排行榜',category:'测试计划级,测试级,项目级,产品级,迭代级,企业级',compId:'xmQuestionSort',desc:'从缺陷提出人、创建人、负责人、故事等维度统计缺陷数量排行榜(实时数据)',img:bar },
{isChecked:false,isCurr:false,rptName:'缺陷提出人排行榜',category:'测试计划级,测试级,项目级,产品级,迭代级,企业级',compId:'xmQuestionAskUserSort',initGroupBy:'ask_userid',desc:'从缺陷提出人、创建人、负责人、故事等维度统计缺陷数量排行榜(实时数据)',img:bar },
{isChecked:false,isCurr:false,rptName:'缺陷负责人排行榜',category:'测试计划级,测试级,项目级,产品级,迭代级,企业级',compId:'xmQuestionHandlerUserSort',initGroupBy:'handler_userid',desc:'从缺陷提出人、创建人、负责人、故事等维度统计缺陷数量排行榜(实时数据)',img:bar },
{isChecked:false,isCurr:false,rptName:'缺陷模块排行榜',category:'测试计划级,测试级,项目级,产品级,迭代级,企业级',compId:'xmQuestionFuncSort',initGroupBy:'func_id',desc:'从缺陷提出人、创建人、负责人、故事等维度统计缺陷数量排行榜(实时数据)',img:bar },
{isChecked:false,isCurr:false,rptName:'缺陷需求排行榜',category:'测试计划级,测试级,项目级,产品级,迭代级,企业级',compId:'xmQuestionMenuSort',initGroupBy:'menu_id',desc:'从缺陷提出人、创建人、负责人、故事等维度统计缺陷数量排行榜(实时数据)',img:bar },
{isChecked:false,isCurr:false,rptName:'缺陷属性分布',category:'测试计划级,测试级,项目级,产品级,迭代级,企业级',compId:'xmQuestionAttDist',desc:'统计所有缺陷任意属性数量分布情况(实时数据)',img:pieSimple },
{isChecked:false,isCurr:false,rptName:'缺陷年龄分布',category:'测试计划级,测试级,项目级,产品级,迭代级,企业级',compId:'xmQuestionAgeDist',desc:'统计所有缺陷按照年龄的分布情况,跟踪缺陷的生命周期和响应情况',img:pieSimple },
],
maxTableHeight:300,
@ -178,21 +191,45 @@ export default {
},
methods: {
setChecked(compId,checked){
var com=this.comps.find(c=>c.compId==compId)
if(com){
com.isChecked=checked
}
},
setCheckeds(compIds,checked){
debugger;
this.comps.forEach(k=>{
if(compIds.some(c=>c==k.compId)){
k.isChecked=checked
}else{
k.isChecked=!checked
}
})
},
onCategroySelect(){
this.selectItem(this.rptListCpd[0])
},
selectItem(item){
selectItem(item){
debugger;
this.comps.forEach(k=>k.isCurr=false)
item.isCurr=true
item.isChecked=true;
this.$emit("row-click",item)
},
datadragEnd(evt){
debugger;
evt.preventDefault();
console.log('拖动前的索引 :' + evt.oldIndex)
console.log('拖动后的索引 :' + evt.newIndex)
this.$emit('sort',evt,this.datas)
}
},
mounted(){
store.dispatch("toggleSideBar",false)
this.comps.forEach((k,index)=>k.index=index)
//this.comps.forEach(k=>k.id=k.id?k.id:k.compId)
this.maxTableHeight = util.calcTableMaxHeight(this.$refs.table.$el)
if(this.category){
@ -203,7 +240,7 @@ export default {
}else if(this.xmIteration && this.xmIteration.id){
this.filters.category="迭代级"
}else if(this.xmTestCasedb && this.xmTestCasedb.id){
this.filters.category="测试级"
this.filters.category="测试级"
}else if(this.xmProject && this.xmProject.id){
this.filters.category="项目级"
}else if(this.xmProduct && this.xmProduct.id){

2
src/views/xm/rpt/index/indexForTest.vue

@ -1,6 +1,6 @@
<template>
<section>
<rpt-index :xm-product="xmProduct" :xm-test-casedb="testCasedb" category="测试级"></rpt-index>
<rpt-index :xm-product="xmProduct" :xm-test-casedb="testCasedb" category="测试级"></rpt-index>
</section>
</template>

Loading…
Cancel
Save