@ -4,7 +4,38 @@
< / e l - r o w >
< 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" > < / e l - b u t t o n >
< el -divider direction = "vertical" > < / e l - d i v i d e r >
{ { xmTestPlan . name } }
< el -divider direction = "vertical" > < / e l - d i v i d e r >
< el -link :type ="subPage=='testPlanCase'?'primary':''" @click ="subPage='testPlanCase'" > 执行测试 < / el -link >
< el -divider direction = "vertical" > < / e l - d i v i d e r >
< 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 ; / & n b s p ; { { c a l c T o t a l C a s e s } } & n b s p ; & n b s p ;
< 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" > < / e l - p r o g r e s s >
< / div >
< / span >
< el -divider direction = "vertical" >
< / e l - d i v i d e r >
< el -link > < span > < i class = "el-icon-pie-chart" > < / i > & nbsp ; 报告 < / span > < / e l - l i n k >
< el -divider direction = "vertical" > < / e l - d i v i d e r >
< / span >
< / e l - r o w >
< el -row v-if ="subPage=='testPlanCase'" >
< xm -test -plan -case -mng :xm-test-plan ="xmTestPlan" :xm-test-casedb ="xmTestCasedb" > < / x m - t e s t - p l a n - c a s e - m n g >
< / e l - r o w >
< 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}" > < / x m - q u e s t i o n - m n g >
< / e l - r o w >
< / e l - r o w >
< xm -test -plan -mng v -else @select ="onTestPlanSelect" :xm-test-casedb ="xmTestCasedb" > < / x m - t e s t - p l a n - m n g >
< / e l - r o w >
< / 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' , / / t e s t P l a n C a s e , t e s t P l a n
xmTestPlan : null ,
subPage : 'testPlanCase' , / / t e s t P l a n C a s e , t e s t B u g
}
} , / / e n d d a t a
methods : {
@ -54,7 +133,7 @@ export default {
} , / / e n d m e t h o d s
mounted ( ) {
this . $nextTick ( ( ) => {
initDicts ( this )
} ) ;
}