完善比赛异常结束逻辑
This commit is contained in:
24
src/apis.js
24
src/apis.js
@@ -38,7 +38,6 @@ function request(method, url, data = {}) {
|
||||
if (message === "BIND_DEVICE") {
|
||||
resolve({ binded: true });
|
||||
return;
|
||||
|
||||
}
|
||||
if (message === "ERROR_ORDER_UNPAY") {
|
||||
uni.showToast({
|
||||
@@ -65,17 +64,17 @@ function request(method, url, data = {}) {
|
||||
|
||||
// 统一的错误处理函数
|
||||
function handleRequestError(err, url) {
|
||||
console.log('请求失败:', { err, url });
|
||||
|
||||
console.log("请求失败:", { err, url });
|
||||
|
||||
// 根据错误类型显示不同提示
|
||||
if (err.errMsg) {
|
||||
if (err.errMsg.includes('timeout')) {
|
||||
if (err.errMsg.includes("timeout")) {
|
||||
showCustomToast("请求超时,请稍后重试", "timeout");
|
||||
} else if (err.errMsg.includes('fail')) {
|
||||
} else if (err.errMsg.includes("fail")) {
|
||||
// 检查网络状态
|
||||
uni.getNetworkType({
|
||||
success: (res) => {
|
||||
if (res.networkType === 'none') {
|
||||
if (res.networkType === "none") {
|
||||
showCustomToast("网络连接已断开,请检查网络设置", "network");
|
||||
} else {
|
||||
showCustomToast("服务器连接失败,请稍后重试", "server");
|
||||
@@ -83,7 +82,7 @@ function handleRequestError(err, url) {
|
||||
},
|
||||
fail: () => {
|
||||
showCustomToast("网络异常,请检查网络连接", "unknown");
|
||||
}
|
||||
},
|
||||
});
|
||||
} else {
|
||||
showCustomToast("请求失败,请稍后重试", "general");
|
||||
@@ -98,21 +97,21 @@ function showCustomToast(message, type) {
|
||||
const config = {
|
||||
title: message,
|
||||
icon: "none",
|
||||
duration: 3000
|
||||
duration: 3000,
|
||||
};
|
||||
|
||||
|
||||
// 根据错误类型可以添加不同的处理逻辑
|
||||
switch (type) {
|
||||
case 'timeout':
|
||||
case "timeout":
|
||||
config.duration = 4000; // 超时提示显示更久
|
||||
break;
|
||||
case 'network':
|
||||
case "network":
|
||||
config.duration = 5000; // 网络问题提示显示更久
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
|
||||
|
||||
uni.showToast(config);
|
||||
}
|
||||
|
||||
@@ -228,6 +227,7 @@ export const getGameAPI = async (battleId) => {
|
||||
const result = await request("POST", "/user/battle/detail", {
|
||||
id: battleId,
|
||||
});
|
||||
if (!result.battleStats) return {};
|
||||
const {
|
||||
battleStats = {},
|
||||
playerStats = {},
|
||||
|
||||
26
src/util.js
26
src/util.js
@@ -1,5 +1,5 @@
|
||||
import websocket from "@/websocket";
|
||||
import { isGamingAPI } from "@/apis";
|
||||
import { isGamingAPI, getGameAPI } from "@/apis";
|
||||
|
||||
export const formatTimestamp = (timestamp) => {
|
||||
const date = new Date(timestamp * 1000);
|
||||
@@ -269,16 +269,20 @@ export const wxShare = async () => {
|
||||
export const isGameEnded = async (battleId) => {
|
||||
const isGaming = await isGamingAPI();
|
||||
if (!isGaming) {
|
||||
// uni.showToast({
|
||||
// title: "比赛已结束",
|
||||
// icon: "none",
|
||||
// });
|
||||
// setTimeout(() => {
|
||||
// uni.navigateBack();
|
||||
// }, 1000);
|
||||
uni.redirectTo({
|
||||
url: `/pages/battle-result?battleId=${battleId}`,
|
||||
});
|
||||
const result = await getGameAPI(battleId);
|
||||
if (result.mode) {
|
||||
uni.redirectTo({
|
||||
url: `/pages/battle-result?battleId=${battleId}`,
|
||||
});
|
||||
} else {
|
||||
uni.showToast({
|
||||
title: "比赛已结束",
|
||||
icon: "none",
|
||||
});
|
||||
setTimeout(() => {
|
||||
uni.navigateBack();
|
||||
}, 1000);
|
||||
}
|
||||
}
|
||||
return !isGaming;
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user