Browse Source

优化

master
陈裕财 4 years ago
parent
commit
fd3ee44230
  1. 130
      src/views/xm/XmOverview.vue

130
src/views/xm/XmOverview.vue

@ -2,7 +2,7 @@
<section class="page-container padding"> <section class="page-container padding">
<el-row class="page-main " :style="{overflowX: 'hidden',height:maxTableHeight+'px'}" ref="table"> <el-row class="page-main " :style="{overflowX: 'hidden',height:maxTableHeight+'px'}" ref="table">
<el-row :gutter="10" style="margin-bottom:10px"> <el-row :gutter="10" style="margin-bottom:10px">
<el-col :span="8" >
<el-col :span="12" >
<el-card class="box-card" style="padding:0px ;height:425px"> <el-card class="box-card" style="padding:0px ;height:425px">
<div slot="header" class="clearfix"> <div slot="header" class="clearfix">
<span>数据汇总</span> <span>数据汇总</span>
@ -25,7 +25,7 @@
<i class="el-icon-alarm-clock"></i> <i class="el-icon-alarm-clock"></i>
</div> </div>
<div class="info"> <div class="info">
<div v-text="xmBranchState.totalPhaseCnt">
<div v-text="xmBranchState.productBudgetWorkload">
</div> </div>
<div class="title">产品总工时</div> <div class="title">产品总工时</div>
</div> </div>
@ -124,50 +124,18 @@
</el-row> </el-row>
</el-card> </el-card>
</el-col> </el-col>
<el-col :span="8" >
<el-card class="box-card" style="height:425px">
<div slot="header" class="clearfix">
<span>所有工作项数量分布</span>
</div>
<div>
<div id="allChart" :style="{width: '100%', height: '350px'}"></div>
</div>
</el-card>
</el-col>
<el-col :span="8" >
<el-card class="box-card" style="height:425px">
<div slot="header" class="clearfix">
<span>缺陷情况</span>
</div>
<div>
<div id="bugPieChart" :style="{width: '100%', height: '410px'}"></div>
</div>
</el-card>
</el-col>
</el-row>
<el-row :gutter="10" style="margin-bottom:10px">
<el-col :span="12" >
<el-card class="box-card" style="padding:0px ;height:425px">
<div slot="header" class="clearfix">
<span>任务每日状态趋势</span>
</div>
<div>
<div id="taskChart" :style="{width: '100%', height: '320px'}"></div>
</div>
</el-card>
</el-col>
<el-col :span="12" > <el-col :span="12" >
<el-card class="box-card" style="padding:0px ;height:425px"> <el-card class="box-card" style="padding:0px ;height:425px">
<div slot="header" class="clearfix"> <div slot="header" class="clearfix">
<span>项目工时</span>
<span>项目进度</span>
</div> </div>
<div> <div>
<el-row style="padding:25px;">
<el-row style="padding-top:15px;padding-left:25px;">
<div class="item"> <div class="item">
<el-col :span="8"> <el-col :span="8">
<div> <div>
<div style="text-align:center;"> <div style="text-align:center;">
<span style="font-size:24px;" v-text="this.xmBranchState.totalPlanWorkload"></span>
<span style="font-size:24px;" v-text="this.xmBranchState.estimateWorkload"></span>
<span style="font-size:5px;">h</span> <span style="font-size:5px;">h</span>
</div> </div>
<div style="text-align:center;font-size:5px;">预估工时</div> <div style="text-align:center;font-size:5px;">预估工时</div>
@ -193,7 +161,7 @@
</el-col> </el-col>
</div> </div>
</el-row> </el-row>
<el-row style="padding:25px;">
<el-row style="padding-top:15px;padding-left:25px;">
<div class="item"> <div class="item">
<el-col :span="8"> <el-col :span="8">
<div> <div>
@ -237,6 +205,50 @@
</el-card> </el-card>
</el-col> </el-col>
</el-row> </el-row>
<el-row :gutter="10" style="margin-bottom:10px">
<el-col :span="8" >
<el-card class="box-card" style="height:425px">
<div slot="header" class="clearfix">
<span>工作量分布</span>
</div>
<div>
<div id="workloadDistribution" :style="{width: '100%', height: '410px'}"></div>
</div>
</el-card>
</el-col>
<el-col :span="8" >
<el-card class="box-card" style="height:425px">
<div slot="header" class="clearfix">
<span>工作项数量分布</span>
</div>
<div>
<div id="allChart" :style="{width: '100%', height: '350px'}"></div>
</div>
</el-card>
</el-col>
<el-col :span="8" >
<el-card class="box-card" style="height:425px">
<div slot="header" class="clearfix">
<span>缺陷情况</span>
</div>
<div>
<div id="bugPieChart" :style="{width: '100%', height: '410px'}"></div>
</div>
</el-card>
</el-col>
</el-row>
<el-row :gutter="10" style="margin-bottom:10px">
<el-col :span="12" >
<el-card class="box-card" style="padding:0px ;height:425px">
<div slot="header" class="clearfix">
<span>任务每日状态趋势</span>
</div>
<div>
<div id="taskChart" :style="{width: '100%', height: '320px'}"></div>
</div>
</el-card>
</el-col>
</el-row>
<el-row :gutter="10" style="margin-bottom:10px"> <el-row :gutter="10" style="margin-bottom:10px">
<el-col :span="8" > <el-col :span="8" >
<el-card class="box-card" style="height:425px"> <el-card class="box-card" style="height:425px">
@ -248,16 +260,6 @@
</div> </div>
</el-card> </el-card>
</el-col> </el-col>
<el-col :span="8" >
<el-card class="box-card" style="height:425px">
<div slot="header" class="clearfix">
<span>工作量分布</span>
</div>
<div>
<div id="workloadDistribution" :style="{width: '100%', height: '410px'}"></div>
</div>
</el-card>
</el-col>
<el-col :span="8" > <el-col :span="8" >
<el-card class="box-card" style="height:425px"> <el-card class="box-card" style="height:425px">
<div slot="header" class="clearfix"> <div slot="header" class="clearfix">
@ -303,37 +305,27 @@ export default {
return this.xmBranchState.createUsername; return this.xmBranchState.createUsername;
}, },
workloadProgress:function (){ workloadProgress:function (){
return Math.round(this.xmBranchState.totalActWorkload/this.xmBranchState.totalPlanWorkload*100);
return Math.round(this.xmBranchState.totalActWorkload/this.xmBranchState.estimateWorkload*100);
}, },
deviation:function (){ deviation:function (){
let now = new Date();
let taskStartTime = new Date(this.xmBranchState.startTime);
let taskEndTime = new Date(this.xmBranchState.endTime);
if(now<=taskEndTime){
let allDays=taskEndTime-taskStartTime;
return this.xmBranchState.totalActWorkload - Math.round((now-taskStartTime)/allDays*this.xmBranchState.totalPlanWorkload)
}else{
return this.xmBranchState.totalActWorkload - this.xmBranchState.totalPlanWorkload;
}
return Math.round(this.xmBranchState.totalActWorkload-this.xmBranchState.estimateWorkload);
}, },
deviationRate:function (){ deviationRate:function (){
return Math.round(this.deviation/this.xmBranchState.totalPlanWorkload*100);
return Math.round((this.xmBranchState.totalActWorkload-this.xmBranchState.estimateWorkload)/this.xmBranchState.estimateWorkload*100);
}, },
remainWorkload:function (){ remainWorkload:function (){
return this.xmBranchState.totalPlanWorkload - this.xmBranchState.totalActWorkload; return this.xmBranchState.totalPlanWorkload - this.xmBranchState.totalActWorkload;
}, },
planProgress:function (){ planProgress:function (){
let now = new Date();
let taskStartTime = new Date(this.xmBranchState.startTime);
let taskEndTime = new Date(this.xmBranchState.endTime);
if(now<=taskEndTime){
let allDays=taskEndTime-taskStartTime;
return Math.round((now-taskStartTime)/allDays*100)
}else{
return 100;
if(!this.xmBranchState.totalPlanWorkload){
return 0;
} }
return parseInt( this.xmBranchState.estimateWorkload/this.xmBranchState.totalPlanWorkload*100)
}, },
realProgress:function (){ realProgress:function (){
if(!this.xmBranchState.totalPlanWorkload){
return 0;
}
if(this.xmBranchState.totalActWorkload < this.xmBranchState.totalPlanWorkload){ if(this.xmBranchState.totalActWorkload < this.xmBranchState.totalPlanWorkload){
return Math.round(this.xmBranchState.totalActWorkload/this.xmBranchState.totalPlanWorkload*100) return Math.round(this.xmBranchState.totalActWorkload/this.xmBranchState.totalPlanWorkload*100)
}else{ }else{
@ -685,14 +677,14 @@ export default {
} }
}, },
data: [ data: [
{value: this.xmBranchState.planInnerUserWorkload,
{value: this.xmBranchState.totalPlanInnerUserWorkload,
itemStyle: { itemStyle: {
normal:{ normal:{
color: '#91CC75' color: '#91CC75'
} }
}, },
name: '内部人力'}, name: '内部人力'},
{value: this.xmBranchState.planOutUserWorkload,
{value: this.xmBranchState.totalPlanOutUserWorkload,
itemStyle: { itemStyle: {
normal:{ normal:{
color: '#3BA272' color: '#3BA272'

Loading…
Cancel
Save