* Refactor project statistic block of waterfall project.

This commit is contained in:
liumengyi
2023-07-04 16:45:21 +08:00
parent bb40f6a988
commit 47d59f1772
6 changed files with 312 additions and 4 deletions
@@ -5,6 +5,11 @@
.projectstatistic-block .project-statistic-table table {width: 100%; border-collapse: separate; border-spacing: 0 1rem; padding-right: 1rem;}
.projectstatistic-block .project-statistic-table table tr:first-child {background: url(static/svg/arrow-step1-grey.svg) center no-repeat; background-size: cover;}
.projectstatistic-block .project-statistic-table table th {padding-right: 0px; width: 50%; margin-top: 1rem;}
.projectstatistic-block .project-statistic-table table td {padding-left: 0px; width: 50%; margin-top: 1rem;}
.projectstatistic-block .project-statistic-table table th {padding-right: 0px; margin-top: 1rem;}
.projectstatistic-block .project-statistic-table table td {padding-left: 0px; margin-top: 1rem;}
.projectstatistic-block .tab-pane .nav-tabs>.nav-item>a:after {border-bottom: none;}
.projectstatistic-block .scrum table th, .projectstatistic-block .scrum table td {width: 50%}
.projectstatistic-block .progress-circle text {font-size: 35px;}
.projectstatistic-block .progress-circle .progress-text {position: relative;}
.projectstatistic-block.block-long .progress-circle .progress-text {top: -65px;}
.projectstatistic-block.block-sm .progress-circle .progress-text {top: -60px;}
+7
View File
@@ -557,6 +557,13 @@ $lang->block->projectstatistic->existIssues = 'Existing Issues:';
$lang->block->projectstatistic->lastestExecution = 'Lastest Execution';
$lang->block->projectstatistic->projectClosed = "{$lang->projectCommon} has been closed.";
$lang->block->projectstatistic->longTimeProject = "Long Time {$lang->projectCommon}";
$lang->block->projectstatistic->totalProgress = 'Total Progress';
$lang->block->projectstatistic->totalProgressTip = 'Total Progress = Consumed Man Hours/(Consumed Man Hours + Left Man Hours)';
$lang->block->projectstatistic->sv = 'Schedule Variance(SV)';
$lang->block->projectstatistic->pv = 'Planned Value(PV)';
$lang->block->projectstatistic->ev = 'Earned Value(EV)';
$lang->block->projectstatistic->cv = 'Cost Variance(CV)';
$lang->block->projectstatistic->ac = 'Actual Cost(AC)';
$lang->block->productoverview = new stdclass();
$lang->block->productoverview->totalProductCount = 'Total Product Count';
+7
View File
@@ -557,6 +557,13 @@ $lang->block->projectstatistic->existIssues = 'Existing Issues:';
$lang->block->projectstatistic->lastestExecution = 'Lastest Execution';
$lang->block->projectstatistic->projectClosed = "{$lang->projectCommon} has been closed.";
$lang->block->projectstatistic->longTimeProject = "Long Time {$lang->projectCommon}";
$lang->block->projectstatistic->totalProgress = 'Total Progress';
$lang->block->projectstatistic->totalProgressTip = 'Total Progress = Consumed Man Hours/(Consumed Man Hours + Left Man Hours)';
$lang->block->projectstatistic->sv = 'Schedule Variance(SV)';
$lang->block->projectstatistic->pv = 'Planned Value(PV)';
$lang->block->projectstatistic->ev = 'Earned Value(EV)';
$lang->block->projectstatistic->cv = 'Cost Variance(CV)';
$lang->block->projectstatistic->ac = 'Actual Cost(AC)';
$lang->block->productoverview = new stdclass();
$lang->block->productoverview->totalProductCount = 'Total Product Count';
+7
View File
@@ -557,6 +557,13 @@ $lang->block->projectstatistic->existIssues = 'Existing Issues:';
$lang->block->projectstatistic->lastestExecution = 'Lastest Execution';
$lang->block->projectstatistic->projectClosed = "{$lang->projectCommon} has been closed.";
$lang->block->projectstatistic->longTimeProject = "Long Time {$lang->projectCommon}";
$lang->block->projectstatistic->totalProgress = 'Total Progress';
$lang->block->projectstatistic->totalProgressTip = 'Total Progress = Consumed Man Hours/(Consumed Man Hours + Left Man Hours)';
$lang->block->projectstatistic->sv = 'Schedule Variance(SV)';
$lang->block->projectstatistic->pv = 'Planned Value(PV)';
$lang->block->projectstatistic->ev = 'Earned Value(EV)';
$lang->block->projectstatistic->cv = 'Cost Variance(CV)';
$lang->block->projectstatistic->ac = 'Actual Cost(AC)';
$lang->block->productoverview = new stdclass();
$lang->block->productoverview->totalProductCount = 'Total Product Count';
+7
View File
@@ -559,6 +559,13 @@ $lang->block->projectstatistic->existIssues = '存在问题:';
$lang->block->projectstatistic->lastestExecution = '最新执行';
$lang->block->projectstatistic->projectClosed = "{$lang->projectCommon}已关闭";
$lang->block->projectstatistic->longTimeProject = "长期{$lang->projectCommon}";
$lang->block->projectstatistic->totalProgress = '总进度';
$lang->block->projectstatistic->totalProgressTip = '总进度=已消耗工时/(已消耗工时+剩余工时)';
$lang->block->projectstatistic->sv = '进度偏差率(SV)';
$lang->block->projectstatistic->pv = '计划完成(PV)';
$lang->block->projectstatistic->ev = '实际完成(EV)';
$lang->block->projectstatistic->cv = '成本偏差率(CV)';
$lang->block->projectstatistic->ac = '实际花费(AC)';
$lang->block->productoverview = new stdclass();
$lang->block->productoverview->totalProductCount = '产品总数';
+277 -2
View File
@@ -113,7 +113,7 @@ foreach($projects as $project)
}
$cells[] = cell
(
setClass('flex-1 pt-4 project-statistic-table' . (($module != 'cost' && $longBlock) || ($module != 'task' && $module != 'cost' && !$longBlock) ? ' border-l pl-4 ' : '') . (!$longBlock && $module != 'cost' && $module != 'story'? ' border-t' : '')),
setClass('flex-1 pt-4 project-statistic-table scrum' . (($module != 'cost' && $longBlock) || ($module != 'task' && $module != 'cost' && !$longBlock) ? ' border-l pl-4 ' : '') . (!$longBlock && $module != 'cost' && $module != 'story'? ' border-t' : '')),
set::width($longBlock ? '25%' : '50%'),
div
(
@@ -124,10 +124,285 @@ foreach($projects as $project)
$lang->block->projectstatistic->{$module}
),
),
tableData($cellItems),
tableData
(
set::width('100%'),
$cellItems
),
);
}
}
else
{
$cells[] = cell
(
setClass('flex flex-wrap items-center progress-circle pt-6'),
set::width($longBlock ? '36%' : '100%'),
div
(
setClass('flex justify-center w-full'),
zui::progressCircle
(
set('percent', $project->progress),
set('size', 150),
set('circleWidth', 10),
set('text', "{$project->progress}%"),
set('textY', 70),
set('textStyle', 'font-size: 35px;'),
),
),
div
(
setClass('flex justify-center w-full'),
span
(
setClass('text-gray text-md progress-text'),
$lang->block->projectstatistic->totalProgress,
icon
(
setClass('pl-1'),
set('data-toggle', 'tooltip'),
set('href', 'totalProgressTooltip'),
'help'
),
),
div
(
setClass('tooltip z-50 shadow bg-white text-gray leading-6'),
set::id('totalProgressTooltip'),
$lang->block->projectstatistic->totalProgressTip
),
)
);
$cells[] = cell
(
setClass('flex-1 pt-4 project-statistic-table px-4' . ($longBlock ? ' border-l' : '')),
set::width($longBlock ? '32%' : '50%'),
div
(
setClass('px-2'),
span
(
setClass('font-bold'),
$lang->project->progress
),
),
h::table
(
setClass('table-data'),
h::tbody
(
h::tr
(
h::th
(
setClass('py-1.5 pr-2 font-normal nowrap items-center text-right'),
$lang->block->projectstatistic->sv,
icon
(
setClass('pl-1.5'),
set('data-toggle', 'tooltip'),
set('href', 'svTooltip'),
'help'
),
':',
div
(
setClass('tooltip z-50 shadow bg-white text-gray leading-6'),
set::id('svTooltip'),
'svTooltip'
),
),
h::td
(
setClass('py-1.5 pl-2'),
span
(
setClass('font-bold text-black mr-1'),
zget($project, 'sv', 0) . $lang->percent,
),
),
),
h::tr
(
h::th
(
setClass('py-1.5 pr-2 font-normal nowrap items-center text-right'),
$lang->block->projectstatistic->pv,
icon
(
setClass('pl-1.5'),
set('data-toggle', 'tooltip'),
set('href', 'pvTooltip'),
'help'
),
':',
div
(
setClass('tooltip z-50 shadow bg-white text-gray leading-6'),
set::id('pvTooltip'),
'pvTooltip'
),
),
h::td
(
setClass('py-1.5 pl-2'),
span
(
setClass('font-bold text-black mr-1'),
zget($project, 'pv', 0) . $lang->percent,
),
),
),
h::tr
(
h::th
(
setClass('py-1.5 pr-2 font-normal nowrap items-center text-right'),
$lang->block->projectstatistic->ev,
icon
(
setClass('pl-1.5'),
set('data-toggle', 'tooltip'),
set('href', 'evTooltip'),
'help'
),
':',
div
(
setClass('tooltip z-50 shadow bg-white text-gray leading-6'),
set::id('evTooltip'),
'evTooltip'
),
),
h::td
(
setClass('py-1.5 pl-2'),
span
(
setClass('font-bold text-black mr-1'),
zget($project, 'ev', 0) . $lang->percent,
),
),
),
),
),
);
$cells[] = cell
(
setClass('flex-1 pt-4 project-statistic-table px-4 border-l'),
set::width($longBlock ? '32%' : '50%'),
div
(
setClass('px-2'),
span
(
setClass('font-bold'),
$lang->project->progress
),
),
h::table
(
setClass('table-data'),
h::tbody
(
h::tr
(
h::th
(
setClass('py-1.5 pr-2 font-normal nowrap items-center text-right'),
$lang->block->projectstatistic->cv,
icon
(
setClass('pl-1.5'),
set('data-toggle', 'tooltip'),
set('href', 'cvTooltip'),
'help'
),
':',
div
(
setClass('tooltip z-50 shadow bg-white text-gray leading-6'),
set::id('cvTooltip'),
'cvTooltip'
),
),
h::td
(
setClass('py-1.5 pl-2'),
span
(
setClass('font-bold text-black mr-1'),
zget($project, 'cv', 0) . $lang->percent,
),
),
),
h::tr
(
h::th
(
setClass('py-1.5 pr-2 font-normal nowrap items-center text-right'),
$lang->block->projectstatistic->ev,
icon
(
setClass('pl-1.5'),
set('data-toggle', 'tooltip'),
set('href', 'evTooltip'),
'help'
),
':',
div
(
setClass('tooltip z-50 shadow bg-white text-gray leading-6'),
set::id('evTooltip'),
'evTooltip'
),
),
h::td
(
setClass('py-1.5 pl-2'),
span
(
setClass('font-bold text-black mr-1'),
zget($project, 'ev', 0) . $lang->percent,
),
),
),
h::tr
(
h::th
(
setClass('py-1.5 pr-2 font-normal nowrap items-center text-right'),
$lang->block->projectstatistic->ac,
icon
(
setClass('pl-1.5'),
set('data-toggle', 'tooltip'),
set('href', 'acTooltip'),
'help'
),
':',
div
(
setClass('tooltip z-50 shadow bg-white text-gray leading-6'),
set::id('acTooltip'),
'acTooltip'
),
),
h::td
(
setClass('py-1.5 pl-2'),
span
(
setClass('font-bold text-black mr-1'),
zget($project, 'ac', 0) . $lang->percent,
),
),
),
),
),
);
}
$projectInfo = div
(