细节完善
This commit is contained in:
@@ -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"
|
||||
>
|
||||
|
||||
Reference in New Issue
Block a user