diff --git a/pages/mine/index.vue b/pages/mine/index.vue index 8a2f1a2..bc525c4 100644 --- a/pages/mine/index.vue +++ b/pages/mine/index.vue @@ -67,7 +67,8 @@ 奖衔,小区仅需 {{ - awards.sumRealPv + + sprintProgress.achieved }} @@ -124,7 +125,7 @@ :style="{ width: sprintProgress.percentageString }" > - 已完成 {{ sprintProgress.achieved }} / 目标 {{ sprintProgress.target }} + 已完成 {{ awards.sumRealPv }} / 目标 {{ sprintProgress.target }} @@ -481,17 +482,15 @@ export default { let achievedPv = 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) { // sumRealPv 是差距,所以已完成的是 targetPv - sumRealPv achievedPv = targetPv - (isNaN(sumRealPv) ? 0 : sumRealPv); - // 确保 achievedPv 不会小于0(如果 sumRealPv > targetPv,理论上不应发生) - // 且不会大于 targetPv (如果 sumRealPv 是负数,表示已超额) 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) { // 如果目标是0,且差距也是0或负数(表示已满足或超越0目标),则认为是100% achievedPv = 0; @@ -502,9 +501,9 @@ export default { const clampedPercentage = Math.min(100, Math.max(0, percentage)); return { - percentageString: `${clampedPercentage.toFixed(0)}%`, - achieved: achievedPv.toFixed(2), - target: displayTargetPv, + percentageString: `${Math.floor(clampedPercentage)}%`, + achieved: (Math.floor(achievedPv * 100) / 100).toFixed(2), + target: numericTargetPv.toFixed(2), rawPercentage: clampedPercentage }; }