Browse Source

优化

master
陈裕财 4 years ago
parent
commit
e77116fd43
  1. 37
      src/views/xm/core/xmTestCasedb/XmTestCasedbInfo.vue
  2. 89
      src/views/xm/core/xmTestPlan/XmTestPlanInfo.vue

37
src/views/xm/core/xmTestCasedb/XmTestCasedbInfo.vue

@ -1,11 +1,35 @@
<template>
<section>
<el-row class="center">
<el-menu :default-active="activeIndex" mode="horizontal" @select="handleSelect">
<el-row >
<el-menu :default-active="activeIndex" mode="horizontal" @select="handleSelect"
background-color="rgb(48, 65, 86)"
text-color="rgb(191, 203, 217)"
active-text-color="#409eff"
>
<el-menu-item index="测试库">
<span
slot="title"
style="font-size: 18px; color: #409eff"
:title="xmTestCasedb.name"
>
测试库:<strong>&nbsp;{{ xmTestCasedb.name }}</strong>
</span>
</el-menu-item>
<el-menu-item index="testCase">用例管理</el-menu-item>
<el-menu-item index="caseFlow">用例评审</el-menu-item>
<el-menu-item index="testPlan">测试计划</el-menu-item>
<el-menu-item index="testRpt">统计报表</el-menu-item>
<el-menu-item index="首页" @click.native="goHome">
<span slot="title"
><i class="el-icon-s-home"></i></span
>
</el-menu-item>
<el-menu-item index="上一页" class="hidden-md-and-down" @click.native="goBack">
<span slot="title"
><i class="el-icon-back"></i></span
>
</el-menu-item>
</el-menu>
</el-row>
<el-row ref="xmTestCasedbTable">
@ -263,7 +287,14 @@ export default {
})
}
}
},
goBack() {
this.$router.back(-1);
},
goHome(){
this.$router.push({path:'/'})
},
},//end methods
mounted() {
this.$nextTick(() => {

89
src/views/xm/core/xmTestPlan/XmTestPlanInfo.vue

@ -4,7 +4,38 @@
</el-row>
<el-row>
<xm-test-plan-case-mng v-if="activeIndex=='testPlanCase'&& xmTestPlan && xmTestPlan.id" :xm-test-plan="xmTestPlan" :xm-test-casedb="xmTestCasedb"></xm-test-plan-case-mng>
<el-row v-if="activeIndex=='testPlanCase'&& xmTestPlan && xmTestPlan.id">
<el-row class="border padding-left padding-right">
<el-button icon="el-icon-back" @click="activeIndex=testPlan" type="text"></el-button>
<el-divider direction="vertical"></el-divider>
{{xmTestPlan.name}}
<el-divider direction="vertical"></el-divider>
<el-link :type="subPage=='testPlanCase'?'primary':''" @click="subPage='testPlanCase'">执行测试</el-link>
<el-divider direction="vertical"></el-divider>
<el-link :type="subPage=='testBug'?'primary':''" @click="subPage='testBug'">缺陷</el-link>
<span style="float:right;">
<span >
<el-tag style="margin-top:5px;" v-for="(item,index) in formatDictsWithClass(dicts,'testPlanStatus',xmTestPlan.status)" :key="index" :type="item.className">{{item.name}}</el-tag>
<span style="color:#C0C4CC;">&nbsp;通过率&nbsp;</span>{{calcTongGuoRate}}&nbsp;&nbsp;<span style="color:#C0C4CC;">&nbsp;已测&nbsp;</span>{{calcYiCeshiCases}}&nbsp;/&nbsp;{{calcTotalCases}}&nbsp;&nbsp;
<div style="display:inline-flex"><el-progress style="width:100px;" :stroke-width="22" :text-inside="true" :status="calcYiCeshiCases>0 && xmTestPlan.errCases<=0 ?'success':'exception'" :percentage="calcProgress"></el-progress>
</div>
</span>
<el-divider direction="vertical">
</el-divider>
<el-link><span><i class="el-icon-pie-chart"></i>&nbsp;报告</span></el-link>
<el-divider direction="vertical"></el-divider>
</span>
</el-row>
<el-row v-if="subPage=='testPlanCase'">
<xm-test-plan-case-mng :xm-test-plan="xmTestPlan" :xm-test-casedb="xmTestCasedb"></xm-test-plan-case-mng>
</el-row>
<el-row v-if="subPage=='testBug'">
<xm-question-mng :xm-test-plan="xmTestPlan" :xm-test-casedb="xmTestCasedb" :xm-product="{id:xmTestPlan.productId,productName:xmTestPlan.productName}" :sel-project="{id:xmTestPlan.projectId,name:xmTestPlan.projectName}"></xm-question-mng>
</el-row>
</el-row>
<xm-test-plan-mng v-else @select="onTestPlanSelect" :xm-test-casedb="xmTestCasedb"> </xm-test-plan-mng>
</el-row>
</section>
@ -19,15 +50,60 @@ import XmTestPlanMng from '../xmTestPlan/XmTestPlanMng';//新增修改界面
import XmTestPlanCaseMng from '../xmTestPlanCase/XmTestPlanCaseMng';//
import { mapGetters } from 'vuex'
import XmProductSelect from '@/views/xm/core/components/XmProductSelect';//
import XmQuestionMng from '@/views/xm/core/xmQuestion/XmQuestionMng';//
import { initDicts } from '@/api/xm/core/xmTestPlan';
export default {
name:'xmTestCasedbMng',
components: {
XmProductSelect, XmTestPlanMng,XmTestPlanCaseMng
XmProductSelect, XmTestPlanMng,XmTestPlanCaseMng,XmQuestionMng,
},
props:['visible','xmTestCasedb'],
computed: {
...mapGetters(['userInfo']),
calcProgress(){
if(!this.xmTestPlan || !this.xmTestPlan.id){
return 0;
}
var totalCases= parseInt(this.xmTestPlan.totalCases?this.xmTestPlan.totalCases:0)
var yiCeshiCases= parseInt(this.xmTestPlan.okCases?this.xmTestPlan.okCases:0)+parseInt(this.xmTestPlan.errCases?this.xmTestPlan.errCases:0)+parseInt(this.xmTestPlan.igCases?this.xmTestPlan.igCases:0)+parseInt(this.xmTestPlan.blCases?this.xmTestPlan.blCases:0)
if(totalCases>0){
return parseInt(yiCeshiCases*100/totalCases)
}else if(yiCeshiCases>0){
return 100
}else{
return 0;
}
},
calcTongGuoRate(){
if(!this.xmTestPlan || !this.xmTestPlan.id){
return 0;
}
var tongGuoCases=parseInt(this.xmTestPlan.okCases?this.xmTestPlan.okCases:0)
var totalCases=parseInt(this.xmTestPlan.totalCases?this.xmTestPlan.totalCases:0)
if(tongGuoCases>0){
if(totalCases>0){
return parseInt( tongGuoCases*100/totalCases)
}else{
return 100;
}
}else{
return 0;
}
},
calcTotalCases(){
if(!this.xmTestPlan || !this.xmTestPlan.id){
return 0;
}
return parseInt(this.xmTestPlan.totalCases?this.xmTestPlan.totalCases:0)
},
calcYiCeshiCases(){
if(!this.xmTestPlan || !this.xmTestPlan.id){
return 0;
}
return parseInt(this.xmTestPlan.okCases?this.xmTestPlan.okCases:0)+parseInt(this.xmTestPlan.errCases?this.xmTestPlan.errCases:0)+parseInt(this.xmTestPlan.igCases?this.xmTestPlan.igCases:0)+parseInt(this.xmTestPlan.blCases?this.xmTestPlan.blCases:0)
},
},
watch:{
@ -38,9 +114,12 @@ export default {
},
data() {
return {
activeIndex:'testPlan',
dicts:{
testPlanStatus:[],
},
activeIndex:'testPlan',//testPlanCase,testPlan
xmTestPlan:null,
subPage:'testPlanCase',//testPlanCase,testBug
}
},//end data
methods: {
@ -54,7 +133,7 @@ export default {
},//end methods
mounted() {
this.$nextTick(() => {
initDicts(this)
});
}

Loading…
Cancel
Save