From 5cde67672bd022cac0b4d61483e10ce18ba58319 Mon Sep 17 00:00:00 2001 From: LyMysterious Date: Sat, 12 Apr 2025 14:19:40 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E6=8E=92=E8=A1=8C=E6=A6=9C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- index.html | 2 +- src/api/ranking/ranking.js | 24 ++++++++ src/pages/fishbaskets/Fishbaskets.vue | 9 ++- src/pages/market/Market.vue | 6 +- src/pages/ranking/Ranking.vue | 82 ++++++++++++++++++++++++--- src/router.js | 13 +++++ src/utils/request.js | 22 +++++-- vite.config.js | 13 +---- 8 files changed, 139 insertions(+), 32 deletions(-) create mode 100644 src/api/ranking/ranking.js diff --git a/index.html b/index.html index 8388c4b..4d74181 100644 --- a/index.html +++ b/index.html @@ -4,7 +4,7 @@ - Vite + Vue + 钓鱼
diff --git a/src/api/ranking/ranking.js b/src/api/ranking/ranking.js new file mode 100644 index 0000000..997ea45 --- /dev/null +++ b/src/api/ranking/ranking.js @@ -0,0 +1,24 @@ +/* + * @Descripttion: + * @version: 1.0.0 + * @Author: LyMy + * @Date: 2025-04-12 12:54:52 + * @LastEditors: LyMy + * @LastEditTime: 2025-04-12 14:14:19 + * @FilePath: \go_fish_web\src\api\ranking\ranking.js + */ +import request from '@/utils/request' + +/** + * 我的分数 + */ +export function myRanking () { + return request.get('/Rank/score') +} + +/** + * 全球分数 + */ +export function globalRanking () { + return request.get('/Rank/rankings') +} \ No newline at end of file diff --git a/src/pages/fishbaskets/Fishbaskets.vue b/src/pages/fishbaskets/Fishbaskets.vue index 795643e..d3eaef8 100644 --- a/src/pages/fishbaskets/Fishbaskets.vue +++ b/src/pages/fishbaskets/Fishbaskets.vue @@ -29,7 +29,7 @@ @@ -40,9 +40,10 @@ diff --git a/src/router.js b/src/router.js index afcd915..6cf9c3c 100644 --- a/src/router.js +++ b/src/router.js @@ -1,3 +1,12 @@ +/* + * @Descripttion: + * @version: 1.0.0 + * @Author: LyMy + * @Date: 2025-04-11 16:51:41 + * @LastEditors: LyMy + * @LastEditTime: 2025-04-12 12:34:29 + * @FilePath: \go_fish_web\src\router.js + */ import { createRouter, createWebHistory } from 'vue-router' import Login from './pages/login/Login.vue' import Home from './pages/main/Home.vue' @@ -71,4 +80,8 @@ router.beforeEach((to, from, next) => { } }) +router.afterEach((to) => { + document.title = "钓鱼" +}) + export default router diff --git a/src/utils/request.js b/src/utils/request.js index d0d6eaa..7c79616 100644 --- a/src/utils/request.js +++ b/src/utils/request.js @@ -4,13 +4,15 @@ * @Author: LyMy * @Date: 2025-04-11 15:56:12 * @LastEditors: LyMy - * @LastEditTime: 2025-04-11 20:26:22 + * @LastEditTime: 2025-04-12 14:17:15 * @FilePath: \go_fish_web\src\utils\request.js */ import axios from 'axios' import { ElMessage } from 'element-plus' import router from '@/router' +let isRefreshing = false + // 创建 axios 实例 const request = axios.create({ baseURL: 'http://49.235.165.171:31001', @@ -32,17 +34,25 @@ request.interceptors.request.use( (error) => Promise.reject(error) ) -// 响应拦截器:统一处理错误 +// 响应拦截器 request.interceptors.response.use( (response) => response.data, (error) => { const status = error.response?.status if (status === 401) { - // token 失效 - ElMessage.warning('登录已过期,请重新登录') - localStorage.removeItem('token') - router.push('/login') + // 避免重复处理 401 + if (!isRefreshing) { + isRefreshing = true + ElMessage.warning('登录已过期,请重新登录') + localStorage.removeItem('token') + router.push('/login') + + // 重置标志位,避免死锁 + setTimeout(() => { + isRefreshing = false + }, 3000) // 避免多次跳转,给 3 秒冷却时间 + } } else { ElMessage.error(error.response?.data?.message || '请求失败,请稍后再试') } diff --git a/vite.config.js b/vite.config.js index a28e1b7..f915607 100644 --- a/vite.config.js +++ b/vite.config.js @@ -1,21 +1,12 @@ -/* - * @Descripttion: - * @version: 1.0.0 - * @Author: LyMy - * @Date: 2025-04-11 15:43:49 - * @LastEditors: LyMy - * @LastEditTime: 2025-04-11 16:07:34 - * @FilePath: \fish_game\vite.config.js - */ import { defineConfig } from 'vite' import vue from '@vitejs/plugin-vue' -import path from 'path' // 需要导入 path 模块 +import path from 'path' export default defineConfig({ plugins: [vue()], resolve: { alias: { - '@': path.resolve(__dirname, 'src') // 加这行 + '@': path.resolve(__dirname, 'src') } } })