diff --git a/src/components/ShootProgress2.vue b/src/components/ShootProgress2.vue index 260837f..0c7a07f 100644 --- a/src/components/ShootProgress2.vue +++ b/src/components/ShootProgress2.vue @@ -36,7 +36,12 @@ const updateRemain = (value) => { if (value.team === 'blue') barColor.value = "linear-gradient( 180deg, #9AB3FF 0%, #4288FF 100%)"; if (value.reset) { + // 重置时瞬间跳满格,禁用 CSS 过渡避免从旧值「涨到满」的动画 + transitionStyle.value = "none"; remain.value = value.value; + setTimeout(() => { + transitionStyle.value = "all 1s linear"; + }, 50); return; } const newVal = Math.round(value.value); diff --git a/src/pages/team-battle.vue b/src/pages/team-battle.vue index 074bc3b..49cecb7 100644 --- a/src/pages/team-battle.vue +++ b/src/pages/team-battle.vue @@ -89,7 +89,8 @@ const recoverData = (battleInfo, {force = false, arrowOnly = false} = {}) => { } tips.value = nextTips; uni.$emit("update-tips", nextTips); - uni.$emit("update-remain", {reset: true, value: 15, team: redTeam?'red':'blue'}); + // redPlayer 已在上方 find() 确认:不为 null 则当前射手在红队 + uni.$emit("update-remain", {reset: true, value: 15, team: redPlayer?'red':'blue'}); if (force) { const remain = (Date.now() - battleInfo.current.startTime) / 1000; console.log(`当前轮已进行${remain}秒`);