diff --git a/src/components/BowTarget.vue b/src/components/BowTarget.vue
index a57f83e..c583cc0 100644
--- a/src/components/BowTarget.vue
+++ b/src/components/BowTarget.vue
@@ -30,6 +30,10 @@ const props = defineProps({
type: Array,
default: () => [],
},
+ blueScores: {
+ type: Array,
+ default: () => [],
+ },
showE: {
type: Boolean,
default: true,
@@ -88,13 +92,27 @@ function calcRealY(num) {
+
@@ -116,6 +114,7 @@ setTimeout(() => {
top: 0;
left: 0;
background-color: rgba(0, 0, 0, 0.6);
+ z-index: 5;
}
.container-header {
margin-top: 20vh;
diff --git a/src/components/TeamResult.vue b/src/components/TeamResult.vue
index 615071d..f65f4a5 100644
--- a/src/components/TeamResult.vue
+++ b/src/components/TeamResult.vue
@@ -18,21 +18,40 @@ const props = defineProps({
},
});
const selected = ref(0);
-const scores = ref([]);
+const redScores = ref([]);
+const blueScores = ref([]);
const tabs = ref(["所有轮次"]);
const players = ref([]);
const onClickTab = (index) => {
selected.value = index;
- scores.value = [];
+ redScores.value = [];
+ blueScores.value = [];
+ const { bluePlayers, redPlayers, roundsData } = props.data;
if (index === 0) {
- Object.values(props.data.roundsData).forEach((round) => {
- Object.values(round).forEach((arrows) => {
- scores.value = [...scores.value, ...Object.values(arrows)];
+ Object.keys(bluePlayers).forEach((p) => {
+ Object.values(roundsData).forEach((round) => {
+ round[p].forEach((arrow) => {
+ blueScores.value.push(arrow);
+ });
+ });
+ });
+ Object.keys(redPlayers).forEach((p) => {
+ Object.values(roundsData).forEach((round) => {
+ round[p].forEach((arrow) => {
+ redScores.value.push(arrow);
+ });
});
});
} else {
- Object.values(props.data.roundsData[index]).forEach((arrows) => {
- scores.value = [...scores.value, ...Object.values(arrows)];
+ Object.keys(bluePlayers).forEach((p) => {
+ roundsData[index][p].forEach((arrow) => {
+ blueScores.value.push(arrow);
+ });
+ });
+ Object.keys(redPlayers).forEach((p) => {
+ roundsData[index][p].forEach((arrow) => {
+ redScores.value.push(arrow);
+ });
});
}
};
@@ -54,7 +73,8 @@ watch(
tabs.value.push(`第${roundsName[key]}轮`);
});
onClickTab(0);
- }
+ },
+ { deep: true, immediate: true }
);
@@ -77,7 +97,7 @@ watch(
-
+
{
if (options.id) {
- const result = await getBattleDetailAPI(options.id);
- console.log(11111, result);
+ const result = await getGameAPI(options.id);
+ data.value = result;
+ if (result.mode === 1) {
+ blueTeam.value = Object.values(result.bluePlayers || {});
+ redTeam.value = Object.values(result.redPlayers || {});
+ Object.values(result.roundsData).forEach((item) => {
+ let blueId = Object.keys(item)[0];
+ let redId = Object.keys(item)[1];
+ if (!result.bluePlayers[blueId]) {
+ blueId = Object.keys(item)[1];
+ redId = Object.keys(item)[0];
+ }
+ roundsData.value.push({
+ blue: {
+ name: result.bluePlayers[blueId].name,
+ avatar: result.bluePlayers[blueId].avatar,
+ arrows: item[blueId],
+ totalRing: item[blueId].reduce((a, b) => a + b.ringScore, 0),
+ totalScore: item[blueId].reduce((a, b) => a + b.ringScore, 0),
+ },
+ red: {
+ name: result.redPlayers[redId].name,
+ avatar: result.redPlayers[redId].avatar,
+ arrows: item[redId],
+ totalRing: item[redId].reduce((a, b) => a + b.ringScore, 0),
+ totalScore: item[redId].reduce((a, b) => a + b.ringScore, 0),
+ },
+ });
+ });
+ } else if (result.mode === 2) {
+ players.value = result.players;
+ }
}
});
@@ -55,12 +57,11 @@ onLoad(async (options) => {
-
diff --git a/src/static/hit-icon-blue.png b/src/static/hit-icon-blue.png
new file mode 100644
index 0000000..d354907
Binary files /dev/null and b/src/static/hit-icon-blue.png differ