|
|
|
@ -1,6 +1,44 @@ |
|
|
|
<template> |
|
|
|
<section> |
|
|
|
<el-row :style="{overflowX: 'hidden',height:maxTableHeight+'px'}" ref="table"> |
|
|
|
<el-row class="padding" :style="{overflowX: 'hidden',height:maxTableHeight+'px'}" ref="table"> |
|
|
|
<el-row class="row_1" style="margin-bottom:20px;"> |
|
|
|
<div class="r r1"> |
|
|
|
<span style="color: #4779F6">{{formatNum(xmBranch.projectCnt,0) || 0}}</span> |
|
|
|
<p>项目数</p> |
|
|
|
</div> |
|
|
|
<div class="r r2"> |
|
|
|
<span style="color: #4779F6">{{formatNum(xmBranch.budgetWorkload,0) || 0}}</span> |
|
|
|
<p>项目总工时</p> |
|
|
|
</div> |
|
|
|
<div class="r r3"> |
|
|
|
<span style="color: #F6AE47">{{formatNum(xmBranch.productCnt,0) || 0}}</span> |
|
|
|
<p>产品数</p> |
|
|
|
</div> |
|
|
|
<div class="r r4"> |
|
|
|
<span style="color: #F6AE47">{{formatNum(xmBranch.productBudgetWorkload,0) || 0}}</span> |
|
|
|
<p>产品总工时</p> |
|
|
|
</div> |
|
|
|
<div class="r r5"> |
|
|
|
<span style="color: #47CBF6">{{formatNum(xmBranch.phaseCnt,0) || 0}}</span> |
|
|
|
<p>计划数</p> |
|
|
|
</div> |
|
|
|
<div class="r r6"> |
|
|
|
<span style="color: #47CBF6">{{formatNum(xmBranch.iterationCnt,0) || 0}}</span> |
|
|
|
<p>迭代数</p> |
|
|
|
</div> |
|
|
|
<div class="r r7"> |
|
|
|
<span style="color: #F68D47">{{formatNum(xmBranch.planWorkerCnt,0) || 0}}</span> |
|
|
|
<p>总人数</p> |
|
|
|
</div> |
|
|
|
<div class="r r8"> |
|
|
|
<span style="color: #7D7D7D">{{formatNum(xmBranch.taskCnt,0) || 0}}</span> |
|
|
|
<p>任务数</p> |
|
|
|
</div> |
|
|
|
<div class="r r9"> |
|
|
|
<span style="color: #7D7D7D">{{formatNum(xmBranch.menuCnt,0) || 0}}</span> |
|
|
|
<p>需求数</p> |
|
|
|
</div> |
|
|
|
</el-row> |
|
|
|
<el-row :gutter="10"> |
|
|
|
<el-col :span="8" > |
|
|
|
<el-card class="box-card" style="padding:0px ;height:425px"> |
|
|
|
@ -956,6 +994,15 @@ export default { |
|
|
|
this.$notify({position:'bottom-left',showClose:true,message: tips.msg, type: tips.isOk?'success':'error'}); |
|
|
|
}).catch( err => this.load.calcProject=false ); |
|
|
|
}, |
|
|
|
|
|
|
|
|
|
|
|
formatNum(num,defVal){ |
|
|
|
if(num){ |
|
|
|
return parseInt(num) |
|
|
|
}else{ |
|
|
|
return defVal |
|
|
|
} |
|
|
|
}, |
|
|
|
}, |
|
|
|
|
|
|
|
mounted() { |
|
|
|
@ -1096,5 +1143,30 @@ export default { |
|
|
|
display: flex; |
|
|
|
justify-content: flex-start; |
|
|
|
} |
|
|
|
.row_1 { |
|
|
|
background-color: #fff; |
|
|
|
display: flex; |
|
|
|
flex-direction: row; |
|
|
|
height: 120px; |
|
|
|
margin-top: 10px; |
|
|
|
.r { |
|
|
|
flex: 1; |
|
|
|
display: flex; |
|
|
|
flex-direction: column; |
|
|
|
justify-content: center; |
|
|
|
align-items: center; |
|
|
|
span { |
|
|
|
margin-bottom: 14px; |
|
|
|
font-size: 24px; |
|
|
|
font-weight: bold; |
|
|
|
} |
|
|
|
p { |
|
|
|
font-size: 18px; |
|
|
|
color: #7D7D7D; |
|
|
|
font-weight: bold; |
|
|
|
opacity: 0.55; |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
</style> |
|
|
|
|