diff --git a/module/block/lang/zh-cn.php b/module/block/lang/zh-cn.php
index dee0724386..c0f153b909 100644
--- a/module/block/lang/zh-cn.php
+++ b/module/block/lang/zh-cn.php
@@ -589,7 +589,7 @@ $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->totalProgressTip = "项目总进度=按项目统计的任务消耗工时数/(按项目统计的任务消耗工时数+按项目统计的任务剩余工时数)
按项目统计的任务消耗工时数:项目中任务的消耗工时数求和,过滤已删除的任务,过滤父任务,过滤已删除执行的任务。
按项目统计的任务剩余工时数:项目中任务的剩余工时数求和,过滤已删除的任务,过滤父任务,过滤已删除执行的任务。";
$lang->block->projectstatistic->currentCost = '当前成本';
$lang->block->projectstatistic->sv = '进度偏差率(SV)';
$lang->block->projectstatistic->pv = '计划完成(PV)';
@@ -710,9 +710,8 @@ $lang->block->tooltips['effectiveStory'] = '按产品统计的研发需求总
$lang->block->tooltips['deliveredStory'] = '按产品统计的已交付研发需求数:产品中研发需求个数求和,所处阶段为已发布或关闭原因为已完成,过滤已删除的研发需求,过滤已删除的产品。';
$lang->block->tooltips['costs'] = '已投入=已消耗工时/每日可用工时';
$lang->block->tooltips['sv'] = '进度偏差率=(EV-PV)/PV*100% ';
-$lang->block->tooltips['ev'] = "实际完成=按项目统计的任务预计工时数*按项目统计的任务进度,过滤已删除的任务,过滤已取消的任务,过滤已删除执行下的任务,过滤已删除的项目。\n 按项目统计的任务预计工时数:项目中任务的预计工时数求和,过滤已删除的任务,过滤父任务,过滤已删除执行的任务,过滤已删除的项目。";
+$lang->block->tooltips['ev'] = '实际完成=按项目统计的任务预计工时数*按项目统计的任务进度,过滤已删除的任务,过滤已取消的任务,过滤已删除执行下的任务,过滤已删除的项目。\n 按项目统计的任务预计工时数:项目中任务的预计工时数求和,过滤已删除的任务,过滤父任务,过滤已删除执行的任务,过滤已删除的项目。';
$lang->block->tooltips['pv'] = '计划完成:瀑布项目中所有任务的预计工时之和,过滤已删除的任务,过滤已取消的任务,过滤已删除的执行的任务,过滤已删除的项目。';
$lang->block->tooltips['cv'] = '成本偏差率=(EV-AC)/AC*100%';
$lang->block->tooltips['ac'] = '实际花费:瀑布项目中所有日志记录的工时之和,过滤已删除的项目。';
-$lang->block->tooltips['executionProgress'] = "执行进度=按执行统计的任务消耗工时数/(按执行统计的任务消耗工时数+按执行统计的任务剩余工时数)
按执行统计的任务消耗工时数:执行中任务的消耗工时数求和,过滤已删除的任务,过滤父任务,过滤已删除的执行,过滤已删除的项目。
按执行统计的任务剩余工时数:执行中任务的剩余工时数求和,过滤已删除的任务,过滤父任务,过滤已删除的执行,过滤已删除的项目。";
-$lang->block->tooltips['closedBugRate'] = "Bug修复率=按产品统计的已修复Bug数/按产品统计的有效Bug数。
按产品统计的已修复Bug数:产品中Bug的个数求和,解决方案为已解决,状态为已关闭,过滤已删除的Bug,过滤已删除的产品。
按产品统计的有效Bug数:产品中所有Bug个数求和,解决方案为已解决、延期处理或状态为激活,过滤已删除的Bug,过滤已删除的产品。";
+$lang->block->tooltips['executionProgress'] = '执行进度=按执行统计的任务消耗工时数/(按执行统计的任务消耗工时数+按执行统计的任务剩余工时数)
按执行统计的任务消耗工时数:执行中任务的消耗工时数求和,过滤已删除的任务,过滤父任务,过滤已删除的执行,过滤已删除的项目。
按执行统计的任务剩余工时数:执行中任务的剩余工时数求和,过滤已删除的任务,过滤父任务,过滤已删除的执行,过滤已删除的项目。';
diff --git a/module/block/ui/qastatisticblock.html.php b/module/block/ui/qastatisticblock.html.php
index 8bcd90f27d..97e9fbe4f9 100644
--- a/module/block/ui/qastatisticblock.html.php
+++ b/module/block/ui/qastatisticblock.html.php
@@ -166,23 +166,8 @@ statisticBlock
div(span(setClass('text-2xl font-bold'), $product->closedBugRate), '%'),
div
(
- setClass('row text-sm text-gray items-center gap-1'),
- $lang->block->qastatistic->closedBugRate,
- icon
- (
- 'help',
- setClass('text-light text-sm'),
- toggle::tooltip
- (
- array
- (
- 'content' => array('html' => $lang->block->tooltips['closedBugRate']),
- 'placement' => 'bottom',
- 'type' => 'white',
- 'className' => 'text-dark border border-light leading-5'
- )
- )
- )
+ setClass('row text-gray items-center gap-1'),
+ $lang->block->qastatistic->closedBugRate
)
),
row
diff --git a/module/block/ui/singlebugstatisticblock.html.php b/module/block/ui/singlebugstatisticblock.html.php
index a46d92f2dc..3cc29db592 100644
--- a/module/block/ui/singlebugstatisticblock.html.php
+++ b/module/block/ui/singlebugstatisticblock.html.php
@@ -28,30 +28,19 @@ panel
div
(
setClass('flex justify-center w-full'),
- zui::progressCircle
+ progressCircle
(
- set('percent', $resolvedRate),
- set('size', 112),
- set('circleWidth', 6),
- set('text', $resolvedRate . '%'),
- set('textY', 50),
- set('textStyle', 'font-size: 30px;')
- )
- ),
- div
- (
- setClass('flex justify-center w-full h-0'),
- span
- (
- setClass('text-gray text-sm progress-text'),
- $lang->block->qastatistic->fixBugRate,
- icon
+ set::percent($resolvedRate),
+ set::size(112),
+ set::text(false),
+ set::circleWidth(0.06),
+ div(span(setClass('text-2xl font-bold'), $resolvedRate), '%'),
+ div
(
- setClass('pl-0.5'),
- toggle::tooltip(array('title' => '提示文本')),
- 'help'
+ setClass('row text-gray items-center gap-1'),
+ $lang->block->qastatistic->closedBugRate
)
- )
+ ),
),
cell
(
diff --git a/module/block/ui/singlestatisticblock.html.php b/module/block/ui/singlestatisticblock.html.php
index d2c50a7a6f..591cc4aed2 100644
--- a/module/block/ui/singlestatisticblock.html.php
+++ b/module/block/ui/singlestatisticblock.html.php
@@ -50,118 +50,110 @@ panel
setClass('flex h-full ' . ($longBlock ? '' : 'col')),
cell
(
- $longBlock ? set('width', '40%') : null,
+ $longBlock ? set::width('40%') : setClass('my-4'),
+ setClass('flex items-center'),
setClass($longBlock ? 'p-4' : 'px-4'),
- div
+ center
(
- setClass('chart pie-chart ' . ($longBlock ? 'py-6' : 'py-1')),
- echarts
+ setClass('flex-1 gap-4'),
+ progressCircle
(
- set::color(array('#2B80FF', '#E3E4E9')),
- set::series
+ set::percent($product->storyDeliveryRate),
+ set::size(112),
+ set::text(false),
+ set::circleWidth(0.06),
+ div(span(setClass('text-2xl font-bold'), $product->storyDeliveryRate), '%'),
+ div
(
- array
+ setClass('row text-sm text-gray items-center gap-1'),
+ $lang->block->productstatistic->deliveryRate,
+ icon
(
- array
+ setClass('text-light text-sm'),
+ toggle::tooltip
(
- 'type' => 'pie',
- 'radius' => array('80%', '90%'),
- 'itemStyle' => array('borderRadius' => '40'),
- 'label' => array('show' => false),
- 'data' => array($product->storyDeliveryRate, 100 - $product->storyDeliveryRate)
- )
+ array
+ (
+ 'title' => $lang->block->tooltips['deliveryRate'],
+ 'placement' => 'bottom',
+ 'type' => 'white',
+ 'className' => 'text-dark border border-light leading-5'
+ )
+ ),
+ 'help'
)
)
- )->size('100%', 120),
+ ),
div
(
- set::className('pie-chart-title text-center h-0'),
- div(span(set::className('text-2xl font-bold'), $product->storyDeliveryRate . '%')),
- div
+ setClass('flex h-full story-num w-44'),
+ cell
(
- span
+ setClass('flex-1 text-center'),
+ div
(
- setClass('text-sm text-gray'),
- $lang->block->productstatistic->deliveryRate,
- icon
+ common::hasPriv('product', 'browse') && $product->totalStories ? a
(
- 'help',
- setClass('text-light'),
- toggle::tooltip(array('title' => '提示文本'))
+ set('href', helper::createLink('product', 'browse', "productID={$product->id}&branch=all&browseType=allStory¶m=0&storyType=story")),
+ $product->totalStories
+ ) : span
+ (
+ $product->totalStories
+ )
+ ),
+ div
+ (
+ span
+ (
+ setClass('text-sm text-gray'),
+ $lang->block->productstatistic->effectiveStory
)
)
- )
- )
- ),
- div
- (
- setClass('flex h-full story-num w-44'),
- cell
- (
- setClass('flex-1 text-center'),
- div
+ ),
+ cell
(
- common::hasPriv('product', 'browse') && $product->totalStories ? a
+ setClass('flex-1 text-center'),
+ div
(
- set('href', helper::createLink('product', 'browse', "productID={$product->id}&branch=all&browseType=allStory¶m=0&storyType=story")),
- $product->totalStories
- ) : span
+ common::hasPriv('product', 'browse') && $product->closedStories ? a
+ (
+ set('href', helper::createLink('product', 'browse', "productID={$product->id}&branch=all&browseType=closedstory¶m=0&storyType=story")),
+ $product->closedStories
+ ) : span
+ (
+ $product->closedStories
+ )
+ ),
+ div
(
- $product->totalStories
+ span
+ (
+ setClass('text-sm text-gray'),
+ $lang->block->productstatistic->delivered
+ )
)
),
- div
+ cell
(
- span
+ setClass('flex-1 text-center'),
+ div
(
- setClass('text-sm text-gray'),
- $lang->block->productstatistic->effectiveStory
- )
- )
- ),
- cell
- (
- setClass('flex-1 text-center'),
- div
- (
- common::hasPriv('product', 'browse') && $product->closedStories ? a
+ common::hasPriv('product', 'browse') && $product->unclosedStories ? a
+ (
+ set('href', helper::createLink('product', 'browse', "productID={$product->id}&branch=all&browseType=unclosed¶m=0&storyType=story")),
+ $product->unclosedStories
+ ) : span
+ (
+ $product->unclosedStories
+ )
+ ),
+ div
(
- set('href', helper::createLink('product', 'browse', "productID={$product->id}&branch=all&browseType=closedstory¶m=0&storyType=story")),
- $product->closedStories
- ) : span
- (
- $product->closedStories
- )
- ),
- div
- (
- span
- (
- setClass('text-sm text-gray'),
- $lang->block->productstatistic->delivered
- )
- )
- ),
- cell
- (
- setClass('flex-1 text-center'),
- div
- (
- common::hasPriv('product', 'browse') && $product->unclosedStories ? a
- (
- set('href', helper::createLink('product', 'browse', "productID={$product->id}&branch=all&browseType=unclosed¶m=0&storyType=story")),
- $product->unclosedStories
- ) : span
- (
- $product->unclosedStories
- )
- ),
- div
- (
- span
- (
- setClass('text-sm text-gray'),
- $lang->block->productstatistic->unclosed
+ span
+ (
+ setClass('text-sm text-gray'),
+ $lang->block->productstatistic->unclosed
+ )
)
)
)