fix(mine): 字段展示逻辑变更, 小区仅需字段含义变为需要计算获得
This commit is contained in:
parent
5970497069
commit
7d9d9e2bf3
|
@ -67,7 +67,8 @@
|
||||||
<span class="descriptive-text">奖衔,小区仅需</span>
|
<span class="descriptive-text">奖衔,小区仅需</span>
|
||||||
<span class="highlight-pv">
|
<span class="highlight-pv">
|
||||||
{{
|
{{
|
||||||
awards.sumRealPv
|
|
||||||
|
sprintProgress.achieved
|
||||||
}}</span>
|
}}</span>
|
||||||
</view>
|
</view>
|
||||||
|
|
||||||
|
@ -124,7 +125,7 @@
|
||||||
:style="{ width: sprintProgress.percentageString }"
|
:style="{ width: sprintProgress.percentageString }"
|
||||||
></view>
|
></view>
|
||||||
<view class="cha sprint-progress-text">
|
<view class="cha sprint-progress-text">
|
||||||
已完成 {{ sprintProgress.achieved }} / 目标 {{ sprintProgress.target }}
|
已完成 {{ awards.sumRealPv }} / 目标 {{ sprintProgress.target }}
|
||||||
</view>
|
</view>
|
||||||
</view>
|
</view>
|
||||||
</view>
|
</view>
|
||||||
|
@ -481,17 +482,15 @@ export default {
|
||||||
|
|
||||||
let achievedPv = 0;
|
let achievedPv = 0;
|
||||||
let percentage = 0;
|
let percentage = 0;
|
||||||
let displayTargetPv = (isNaN(targetPv) ? 0 : targetPv).toFixed(2);
|
const numericTargetPv = Math.floor((isNaN(targetPv) ? 0 : targetPv) * 100) / 100;
|
||||||
|
|
||||||
if (!isNaN(targetPv) && targetPv > 0) {
|
if (!isNaN(targetPv) && targetPv > 0) {
|
||||||
// sumRealPv 是差距,所以已完成的是 targetPv - sumRealPv
|
// sumRealPv 是差距,所以已完成的是 targetPv - sumRealPv
|
||||||
achievedPv = targetPv - (isNaN(sumRealPv) ? 0 : sumRealPv);
|
achievedPv = targetPv - (isNaN(sumRealPv) ? 0 : sumRealPv);
|
||||||
|
|
||||||
// 确保 achievedPv 不会小于0(如果 sumRealPv > targetPv,理论上不应发生)
|
|
||||||
// 且不会大于 targetPv (如果 sumRealPv 是负数,表示已超额)
|
|
||||||
achievedPv = Math.max(0, Math.min(achievedPv, targetPv));
|
achievedPv = Math.max(0, Math.min(achievedPv, targetPv));
|
||||||
|
|
||||||
percentage = (achievedPv / targetPv) * 100;
|
percentage = (sumRealPvStr / targetPv) * 100;
|
||||||
} else if (!isNaN(targetPv) && targetPv === 0 && !isNaN(sumRealPv) && sumRealPv <=0) {
|
} else if (!isNaN(targetPv) && targetPv === 0 && !isNaN(sumRealPv) && sumRealPv <=0) {
|
||||||
// 如果目标是0,且差距也是0或负数(表示已满足或超越0目标),则认为是100%
|
// 如果目标是0,且差距也是0或负数(表示已满足或超越0目标),则认为是100%
|
||||||
achievedPv = 0;
|
achievedPv = 0;
|
||||||
|
@ -502,9 +501,9 @@ export default {
|
||||||
const clampedPercentage = Math.min(100, Math.max(0, percentage));
|
const clampedPercentage = Math.min(100, Math.max(0, percentage));
|
||||||
|
|
||||||
return {
|
return {
|
||||||
percentageString: `${clampedPercentage.toFixed(0)}%`,
|
percentageString: `${Math.floor(clampedPercentage)}%`,
|
||||||
achieved: achievedPv.toFixed(2),
|
achieved: (Math.floor(achievedPv * 100) / 100).toFixed(2),
|
||||||
target: displayTargetPv,
|
target: numericTargetPv.toFixed(2),
|
||||||
rawPercentage: clampedPercentage
|
rawPercentage: clampedPercentage
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue