From 9db31ce664c3a647d2a69098aa445f9bd30f059f Mon Sep 17 00:00:00 2001 From: kron Date: Thu, 29 May 2025 23:45:44 +0800 Subject: [PATCH] =?UTF-8?q?=E5=AE=8C=E6=88=90=E5=8D=95=E7=BB=84=E7=BB=83?= =?UTF-8?q?=E4=B9=A0=E6=8E=A5=E5=8F=A3=E8=B0=83=E8=AF=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/apis.js | 82 +++++++++++++++++++++++++++++++ src/components/BowTarget.vue | 51 +++++++++++++++++-- src/components/CoachComment.vue | 6 +-- src/components/IconButton.vue | 2 +- src/components/ScorePanel2.vue | 29 +++++------ src/components/ScoreResult.vue | 19 +++++-- src/components/ShootProgress.vue | 29 +++++++---- src/constants.js | 3 ++ src/pages/equipment-debug.vue | 37 +++----------- src/pages/practise-one.vue | 50 +++++++++++++++---- src/pages/user.vue | 2 +- src/static/hit-icon.png | Bin 0 -> 524 bytes src/store.js | 12 ++++- src/websocket.js | 82 ++++++++++++++----------------- 14 files changed, 282 insertions(+), 122 deletions(-) create mode 100644 src/constants.js create mode 100644 src/static/hit-icon.png diff --git a/src/apis.js b/src/apis.js index 406bb13..271a3af 100644 --- a/src/apis.js +++ b/src/apis.js @@ -1,5 +1,12 @@ const BASE_URL = "http://120.79.241.5:8000/api/shoot"; +function getAuthHeader() { + const token = uni.getStorageSync("token"); + return { + Authorization: `Bearer ${token}`, + }; +} + // 获取全局配置 export const getAppConfig = () => { return new Promise((resolve, reject) => { @@ -75,6 +82,8 @@ export const loginAPI = (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); } }, @@ -88,3 +97,76 @@ export const loginAPI = (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", + }); + }, + }); + }); +}; + +export const getMyDeviceAPI = () => { + 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) => { + resolve(res.data); + }, + fail: (err) => { + reject(err); + uni.showToast({ + title: "获取数据失败", + icon: "none", + }); + }, + }); + }); +}; + +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", + }); + }, + }); + }); +}; \ No newline at end of file diff --git a/src/components/BowTarget.vue b/src/components/BowTarget.vue index 791e239..5c2ceea 100644 --- a/src/components/BowTarget.vue +++ b/src/components/BowTarget.vue @@ -1,6 +1,6 @@