From 1796d4aa4087f1686b21b80c3d15f5c3eb38a9cf Mon Sep 17 00:00:00 2001
From: zhangyibo95 <690096405@qq.com>
Date: Fri, 10 Jul 2026 18:13:41 +0800
Subject: [PATCH] =?UTF-8?q?update:=E6=88=BF=E9=97=B4=E6=96=B0=E5=A2=9Evip?=
=?UTF-8?q?=E7=89=B9=E6=95=88?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
src/components/BowTarget.vue | 16 +++--
src/components/PlayerScore.vue | 2 +-
src/components/PlayerSeats.vue | 36 ++++++++--
src/pages/battle-room.vue | 128 +++++++++++++++++++++++++--------
src/pages/melee-battle.vue | 1 +
5 files changed, 143 insertions(+), 40 deletions(-)
diff --git a/src/components/BowTarget.vue b/src/components/BowTarget.vue
index e7558a9..7da471d 100644
--- a/src/components/BowTarget.vue
+++ b/src/components/BowTarget.vue
@@ -43,6 +43,10 @@ const props = defineProps({
type: String,
default: "solo", // solo 单排,team 双排
},
+ missAsZero: {
+ type: Boolean,
+ default: false,
+ },
stop: {
type: Boolean,
default: false,
@@ -78,6 +82,12 @@ const instance = getCurrentInstance();
const ROUND_TIP_OFFSET_Y = -32;
const EXPERIENCE_TIP_OFFSET_Y = -68;
+function getRoundText(shot) {
+ if (shot?.ringX) return "X环";
+ if (shot?.ring) return `${shot.ring}环`;
+ return props.missAsZero ? "0环" : "未上靶";
+}
+
function buildShotEffectKey(team, shot, index) {
return [
team,
@@ -433,8 +443,7 @@ onBeforeUnmount(() => {
v-if="latestOne"
class="round-tip fade-in-out"
:style="getRoundTipStyle(latestOne)"
- >{{ latestOne.ringX ? "X" : latestOne.ring || "未上靶"
- }}环
+ >{{ getRoundText(latestOne) }}
{{ bluelatestOne.ringX ? "X" : bluelatestOne.ring || "未上靶"
- }}环{{ getRoundText(bluelatestOne) }}
{
if (!arrow) return "-";
if (arrow.ringX && arrow.ring) return "X环";
- return arrow.ring ? `${arrow.ring}环` : "-";
+ return `${Number(arrow.ring) || 0}环`;
};
const isMember = (player = {}) => player.vip === true || player.sVip === true;
diff --git a/src/components/PlayerSeats.vue b/src/components/PlayerSeats.vue
index 5b029f8..5c38d56 100644
--- a/src/components/PlayerSeats.vue
+++ b/src/components/PlayerSeats.vue
@@ -20,6 +20,15 @@ const props = defineProps({
default: false,
},
});
+
+const isMember = (player = {}) => player.vip === true || player.sVip === true;
+
+const getMemberNicknameClass = (player = {}) => [
+ "member-nickname",
+ player.vip === true && player.sVip !== true ? "member-nickname--vip" : "",
+ player.sVip === true ? "member-nickname--svip" : "",
+];
+
const seats = new Array(props.total).fill(1);
@@ -40,10 +49,27 @@ const seats = new Array(props.total).fill(1);
- {{
- players[index].name
- }}
- 虚位以待
+
+ {{ players[index].name }}
+
+ {{ players[index].name }}
+
+
+
+ {{ players[index].name }}
+
+
+ 虚位以待
+
管理员