update:优化比赛

This commit is contained in:
2026-07-09 11:43:06 +08:00
parent af07d09ab6
commit f8efe4c4a4
9 changed files with 130 additions and 86 deletions
+42
View File
@@ -0,0 +1,42 @@
import { connectMatchWebSocket } from "@/matchWebsocket";
import useStore from "@/store";
export const MATCH_RETURN_SNAPSHOT_KEY = "match-return-snapshot";
function getMatchId(battleInfo) {
return battleInfo?.matchId || battleInfo?.id || "";
}
function getBattlePageUrl(battleInfo) {
return Number(battleInfo?.mode) <= 3
? "/pages/team-battle/index?fromReturn=1"
: "/pages/melee-battle?fromReturn=1";
}
export function takeMatchReturnSnapshot() {
const snapshot = uni.getStorageSync(MATCH_RETURN_SNAPSHOT_KEY);
if (snapshot) uni.removeStorageSync(MATCH_RETURN_SNAPSHOT_KEY);
return snapshot && typeof snapshot === "object" ? snapshot : null;
}
export async function returnToBattle(battleInfo, navigate) {
const matchId = getMatchId(battleInfo);
if (!battleInfo || !matchId || !battleInfo.serverAddr) {
uni.showToast({
title: "比赛连接信息异常",
icon: "none",
});
return false;
}
const store = useStore();
uni.setStorageSync(MATCH_RETURN_SNAPSHOT_KEY, battleInfo);
connectMatchWebSocket({
serverAddr: battleInfo.serverAddr,
matchId,
userId: store.user?.id,
});
await navigate(getBattlePageUrl(battleInfo));
return true;
}