代码优化

This commit is contained in:
kron
2025-05-31 17:59:36 +08:00
parent ca182daaae
commit 50168486ba
5 changed files with 80 additions and 278 deletions

View File

@@ -1,332 +1,130 @@
const BASE_URL = "http://120.79.241.5:8000/api/shoot";
function getAuthHeader() {
function request(method, url, data = {}) {
const token = uni.getStorageSync("token");
return {
Authorization: `Bearer ${token}`,
};
return new Promise((resolve, reject) => {
uni.request({
url: `${BASE_URL}${url}`,
method,
header: {
Authorization: `Bearer ${token || ""}`,
},
data,
success: (res) => {
if (res.data.code === 0) resolve(res.data.data);
},
fail: (err) => {
reject(err);
uni.showToast({
title: "接口调用失败",
icon: "none",
});
},
});
});
}
// 获取全局配置
export const getAppConfig = () => {
return new Promise((resolve, reject) => {
uni.request({
url: `${BASE_URL}/index/appConfig`,
method: "GET",
success: (res) => {
const { code, data } = res.data;
if (code === 0) resolve(data);
},
fail: (err) => {
reject(err);
uni.showToast({
title: "获取数据失败",
icon: "none",
});
},
});
});
return request("GET", "/index/appConfig");
};
export const getHomeData = () => {
return new Promise((resolve, reject) => {
uni.request({
url: `${BASE_URL}/user/myHome`,
method: "GET",
success: (res) => {
const { code, data } = res.data;
if (code === 0) resolve(data);
},
fail: (err) => {
reject(err);
uni.showToast({
title: "获取数据失败",
icon: "none",
});
},
});
});
return request("GET", "/user/myHome");
};
// 获取省份及下属城市列表
export const getProvinceData = () => {
return new Promise((resolve, reject) => {
uni.request({
url: `${BASE_URL}/index/provinces/list`,
method: "GET",
success: (res) => {
const { code, data } = res.data;
if (code === 0) resolve(data);
},
fail: (err) => {
reject(err);
uni.showToast({
title: "获取数据失败",
icon: "none",
});
},
});
});
return request("GET", "/index/provinces/list");
};
// 获取省份及下属城市列表
export const loginAPI = (nickName, avatarUrl, code) => {
return new Promise((resolve, reject) => {
uni.request({
url: `${BASE_URL}/index/code`,
method: "POST",
data: {
appName: "shoot",
appId: "wxa8f5989dcd45cc23",
nickName,
avatarUrl,
code,
},
success: (res) => {
const { code, data } = res.data;
if (code === 0) {
uni.setStorageSync("token", data.token);
uni.setStorageSync("tokenExpire", data.expires + Date.now());
resolve(data);
}
},
fail: (err) => {
reject(err);
uni.showToast({
title: "获取数据失败",
icon: "none",
});
},
});
return request("POST", "/index/code", {
appName: "shoot",
appId: "wxa8f5989dcd45cc23",
nickName,
avatarUrl,
code,
});
};
export const bindDeviceAPI = (device) => {
return new Promise((resolve, reject) => {
uni.request({
url: `${BASE_URL}/user/device/bindDevice`,
method: "POST",
header: getAuthHeader(),
data: {
device,
},
success: (res) => {
const { code, data } = res.data;
if (code === 0) resolve(data);
},
fail: (err) => {
reject(err);
uni.showToast({
title: "获取数据失败",
icon: "none",
});
},
});
return request("POST", "/user/device/bindDevice", {
device,
});
};
export const unbindDeviceAPI = (deviceId) => {
return new Promise((resolve, reject) => {
uni.request({
url: `${BASE_URL}/user/device/unbindDevice`,
method: "POST",
header: getAuthHeader(),
data: {
deviceId,
},
success: (res) => {
const { code, data } = res.data;
if (code === 0) resolve(data);
},
fail: (err) => {
reject(err);
uni.showToast({
title: "获取数据失败",
icon: "none",
});
},
});
return request("POST", "/user/device/unbindDevice", {
deviceId,
});
};
export const getMyDevicesAPI = () => {
return new Promise((resolve, reject) => {
uni.request({
// url: `${BASE_URL}/user/device/getBinding?deviceId=9ZF9oVXs`,
url: `${BASE_URL}/user/device/getBindings`,
method: "GET",
header: getAuthHeader(),
success: (res) => {
const { code, data } = res.data;
if (code === 0) resolve(data);
},
fail: (err) => {
reject(err);
uni.showToast({
title: "获取数据失败",
icon: "none",
});
},
});
// "/user/device/getBinding?deviceId=9ZF9oVXs"
return request("GET", "/user/device/getBindings", {
deviceId,
});
};
export const createPractiseAPI = (arrows) => {
return new Promise((resolve, reject) => {
uni.request({
url: `${BASE_URL}/user/practice/create`,
method: "POST",
header: getAuthHeader(),
data: {
arrows,
},
success: (res) => {
const { code, data } = res.data;
if (code === 0) resolve(data);
},
fail: (err) => {
reject(err);
uni.showToast({
title: "获取数据失败",
icon: "none",
});
},
});
return request("POST", "/user/practice/create", {
arrows,
});
};
export const createRoomAPI = (gameType, teamSize) => {
return new Promise((resolve, reject) => {
uni.request({
url: `${BASE_URL}/user/createroom`,
method: "POST",
header: getAuthHeader(),
data: {
gameType,
teamSize,
},
success: (res) => {
const { code, data } = res.data;
if (code === 0) resolve(data);
},
fail: (err) => {
reject(err);
uni.showToast({
title: "获取数据失败",
icon: "none",
});
},
});
return request("POST", "/user/createroom", {
gameType,
teamSize,
});
};
export const getRoomAPI = (number) => {
return new Promise((resolve, reject) => {
uni.request({
url: `${BASE_URL}/user/room?number=${number}`,
method: "GET",
header: getAuthHeader(),
success: (res) => {
const { code, data } = res.data;
if (code === 0) resolve(data);
},
fail: (err) => {
reject(err);
uni.showToast({
title: "获取数据失败",
icon: "none",
});
},
});
});
return request("GET", `/user/room?number=${number}`);
};
export const destroyRoomAPI = (roomNumber) => {
return new Promise((resolve, reject) => {
uni.request({
url: `${BASE_URL}/user/room/destroyRoom`,
method: "POST",
header: getAuthHeader(),
data: {
roomNumber,
},
success: (res) => {
const { code, data } = res.data;
if (code === 0) resolve(data);
},
fail: (err) => {
reject(err);
uni.showToast({
title: "获取数据失败",
icon: "none",
});
},
});
return request("POST", "/user/room/destroyRoom", {
roomNumber,
});
};
export const exitRoomAPI = (number) => {
return new Promise((resolve, reject) => {
uni.request({
url: `${BASE_URL}/user/room/exitRoom`,
method: "POST",
header: getAuthHeader(),
data: {
number,
},
success: (res) => {
const { code, data } = res.data;
if (code === 0) resolve(data);
},
fail: (err) => {
reject(err);
uni.showToast({
title: "获取数据失败",
icon: "none",
});
},
});
return request("POST", "/user/room/exitRoom", {
number,
});
};
export const startRoomAPI = (number) => {
return new Promise((resolve, reject) => {
uni.request({
url: `${BASE_URL}/user/room/start?number=${number}`,
method: "GET",
header: getAuthHeader(),
success: (res) => {
const { code, data } = res.data;
if (code === 0) resolve(data);
},
fail: (err) => {
reject(err);
uni.showToast({
title: "获取数据失败",
icon: "none",
});
},
});
});
return request("GET", `/user/room/start?number=${number}`);
};
export const getPractiseResultListAPI = (page = 1, page_size = 10) => {
return new Promise((resolve, reject) => {
uni.request({
url: `${BASE_URL}/user/practice/list?page=${page}&page_size=${page_size}`,
method: "GET",
header: getAuthHeader(),
success: (res) => {
const { code, data } = res.data;
if (code === 0) resolve(data);
},
fail: (err) => {
reject(err);
uni.showToast({
title: "获取数据失败",
icon: "none",
});
},
});
return request(
"GET",
`/user/practice/list?page=${page}&page_size=${page_size}`
);
};
export const matchGameAPI = (match, gameType, teamSize) => {
return request("POST", "/user/game/match", {
match,
gameType,
teamSize,
});
};
export const readyGameAPI = (battleId) => {
return request("POST", "/user/game/prepare", {
battleId,
});
};
export const finishGameAPI = (battleId, arrow) => {
return request("POST", "/user/game/shoot", {
battleId,
arrow,
});
};

View File

@@ -50,7 +50,7 @@ function calcRealY(num) {
"/" +
totalRound
}}</text>
<BowPower v-if="power > 0" :power="power" />
<BowPower :power="power" />
</view>
<view class="target">
<image

View File

@@ -132,7 +132,7 @@ const startGame = async () => {
<view v-if="step === 3">
<ShootProgress tips="请红队射箭-第一轮" />
<PlayersRow :blueTeam="teams" :redTeam="teams" />
<BowTarget :power="45" currentRound="1" totalRound="3" debug />
<BowTarget :power="45" currentRound="1" :totalRound="3" debug />
<BattleFooter :blueTeam="[6, 2, 3]" :redTeam="[4, 5, 2]" />
</view>
</Container>

View File

@@ -19,7 +19,7 @@ const teams = [
<view>
<ShootProgress tips="请红队射箭-第一轮" />
<PlayersRow :blueTeam="teams" :redTeam="teams" />
<BowTarget :power="45" currentRound="1" totalRound="3" debug />
<BowTarget :power="45" currentRound="1" :totalRound="3" debug />
<PlayerScore
name="某某选手"
avatar="../static/avatar.png"

View File

@@ -58,7 +58,11 @@ onUnmounted(() => {
<AppBackground :type="1" />
<Header title="个人单组练习" />
<ShootProgress
:tips="`请开始射箭第${roundsName[Math.ceil((scores.length + 1) / 4)]}轮`"
:tips="`${
scores.length === 12
? ''
: `请开始射箭第${roundsName[Math.ceil((scores.length + 1) / 4)]}轮`
}`"
:start="start"
:total="120"
/>