细节完善

This commit is contained in:
kron
2025-07-25 16:47:07 +08:00
parent 10af25c254
commit caef627ce4
3 changed files with 63 additions and 57 deletions

View File

@@ -77,7 +77,7 @@ onUnmounted(() => {
v-if="bluePoint === 0 && redPoint === 0"
:style="{ marginTop: '20px' }"
>
连续3个来回无人射箭比赛取消
连续3个来回双方均无人射箭比赛取消
</text>
<text v-if="bluePoint !== 0 && bluePoint === redPoint">
红队蓝队各得<text :style="{ color: '#fed847', margin: '0 5px' }">{{

View File

@@ -82,7 +82,7 @@ onUnmounted(() => {
<text>大人请射箭</text>
</block>
</view>
<view class="debug-text">{{ debugInfo }}</view>
<!-- <view class="debug-text">{{ debugInfo }}</view> -->
<view>
<view class="simul" @click="simulShoot" :style="{ color: '#fff' }">
模拟射箭

View File

@@ -218,63 +218,56 @@ function recoverData(battleInfo) {
}
}
onLoad(async (options) => {
if (options.battleId) {
const battleInfo = uni.getStorageSync("current-battle");
if (battleInfo) recoverData(battleInfo);
setTimeout(getCurrentGameAPI, 2000);
}
if (options.roomNumber) {
roomNumber.value = options.roomNumber;
const result = await getRoomAPI(options.roomNumber);
room.value = result;
battleType.value = result.battleType;
result.members.some((m) => {
if (m.userInfo.id === result.creator) {
owner.value = {
id: m.userInfo.id,
name: m.userInfo.name,
avatar: m.userInfo.avatar,
};
return true;
}
return false;
});
if (result.battleType === 1) {
if (user.value.id !== owner.value.id) {
opponent.value = {
id: user.value.id,
name: user.value.nickName,
avatar: user.value.avatar,
};
} else if (result.members.length > 1) {
result.members.some((m) => {
if (m.userInfo.id !== owner.value.id) {
opponent.value = {
id: m.userInfo.id,
name: m.userInfo.name,
avatar: m.userInfo.avatar,
};
return true;
}
return false;
});
}
} else if (result.battleType === 2) {
const ownerIndex = result.members.findIndex(
(m) => m.userInfo.id === result.creator
);
if (ownerIndex !== -1) {
players.value.push(result.members[ownerIndex].userInfo);
} else {
players.value.push({});
}
result.members.forEach((m, index) => {
if (ownerIndex !== index) players.value.push(m.userInfo);
async function refreshRoomData() {
if (!roomNumber.value) return;
const result = await getRoomAPI(roomNumber.value);
room.value = result;
battleType.value = result.battleType;
result.members.some((m) => {
if (m.userInfo.id === result.creator) {
owner.value = {
id: m.userInfo.id,
name: m.userInfo.name,
avatar: m.userInfo.avatar,
};
return true;
}
return false;
});
if (result.battleType === 1) {
if (user.value.id !== owner.value.id) {
opponent.value = {
id: user.value.id,
name: user.value.nickName,
avatar: user.value.avatar,
};
} else if (result.members.length > 1) {
result.members.some((m) => {
if (m.userInfo.id !== owner.value.id) {
opponent.value = {
id: m.userInfo.id,
name: m.userInfo.name,
avatar: m.userInfo.avatar,
};
return true;
}
return false;
});
}
} else if (result.battleType === 2) {
const ownerIndex = result.members.findIndex(
(m) => m.userInfo.id === result.creator
);
if (ownerIndex !== -1) {
players.value.push(result.members[ownerIndex].userInfo);
} else {
players.value.push({});
}
result.members.forEach((m, index) => {
if (ownerIndex !== index) players.value.push(m.userInfo);
});
}
});
}
const startGame = async () => {
const result = await startRoomAPI(room.value.number);
@@ -531,6 +524,17 @@ const onBack = () => {
}
};
onLoad(async (options) => {
if (options.battleId) {
const battleInfo = uni.getStorageSync("current-battle");
if (battleInfo) recoverData(battleInfo);
setTimeout(getCurrentGameAPI, 2000);
} else if (options.roomNumber) {
roomNumber.value = options.roomNumber;
refreshRoomData();
}
});
onMounted(() => {
uni.setKeepScreenOn({
keepScreenOn: true,
@@ -562,6 +566,8 @@ onShow(async () => {
}
};
refreshTimer.value = setInterval(refreshData, 2000);
} else {
refreshRoomData();
}
});
onHide(() => {
@@ -572,7 +578,7 @@ onHide(() => {
<template>
<Container
:title="`好友约战 - ${roomNumber}`"
:title="`好友约战 ${battleId ? '' : '- ' + roomNumber}`"
:onBack="onBack"
:bgType="battleId ? 1 : 0"
>