From 9132ea1e192c5a9ed52d9f98cfd1ea32085f6244 Mon Sep 17 00:00:00 2001 From: LyMysterious Date: Fri, 11 Apr 2025 21:22:35 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E6=88=91=E7=9A=84=E9=B1=BC=E7=AF=93/?= =?UTF-8?q?=E4=B8=80=E9=94=AE=E5=A4=84=E7=90=86/=E5=87=BA=E5=94=AE?= =?UTF-8?q?=E9=B1=BC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- package.json | 4 +- src/api/fishbaskets/fishbaskets.js | 21 ++++ src/main.js | 4 +- src/pages/fishbaskets/Fishbaskets.vue | 103 +++++++++++++++---- src/pages/fishing/Fishing.vue | 13 ++- src/pages/main/Home.vue | 142 +++++++++++++++++++------- src/utils/request.js | 51 +++++---- 7 files changed, 256 insertions(+), 82 deletions(-) diff --git a/package.json b/package.json index f1eecc1..cc4113c 100644 --- a/package.json +++ b/package.json @@ -11,8 +11,10 @@ "dependencies": { "axios": "^1.8.4", "element-plus": "^2.9.7", + "tsparticles": "^3.8.1", "vue": "^3.5.13", - "vue-router": "^4.5.0" + "vue-router": "^4.5.0", + "vue3-particles": "^2.12.0" }, "devDependencies": { "@vitejs/plugin-vue": "^5.2.1", diff --git a/src/api/fishbaskets/fishbaskets.js b/src/api/fishbaskets/fishbaskets.js index 46bbd6d..8f3bb71 100644 --- a/src/api/fishbaskets/fishbaskets.js +++ b/src/api/fishbaskets/fishbaskets.js @@ -6,4 +6,25 @@ import request from '@/utils/request' */ export function myFishBaskets () { return request.get('/Fishing/all-fish') +} + +/** + * 出售鱼 + */ +export function sellFish (data) { + return request.post('/Trade/sell', data) +} + +/** + * 处理指定鱼 + */ +export function handleFishById (fishId) { + return request.post(`/Trade/handle/${fishId}`) +} + +/** + * 自动处理鱼 + */ +export function autoHandleFish () { + return request.post(`/Trade/auto-handle`) } \ No newline at end of file diff --git a/src/main.js b/src/main.js index 6cead4b..2c2fe68 100644 --- a/src/main.js +++ b/src/main.js @@ -3,11 +3,11 @@ import App from './App.vue' import router from './router' import ElementPlus from 'element-plus' import 'element-plus/dist/index.css' - +import Particles from "vue3-particles" const app = createApp(App) app.use(router) app.use(ElementPlus) - +app.use(Particles) app.mount('#app') diff --git a/src/pages/fishbaskets/Fishbaskets.vue b/src/pages/fishbaskets/Fishbaskets.vue index 976ddd7..2bd1191 100644 --- a/src/pages/fishbaskets/Fishbaskets.vue +++ b/src/pages/fishbaskets/Fishbaskets.vue @@ -1,36 +1,50 @@ - diff --git a/src/utils/request.js b/src/utils/request.js index 7192f87..d0d6eaa 100644 --- a/src/utils/request.js +++ b/src/utils/request.js @@ -1,41 +1,54 @@ /* - * @Descripttion: + * @Descripttion: * @version: 1.0.0 * @Author: LyMy * @Date: 2025-04-11 15:56:12 * @LastEditors: LyMy - * @LastEditTime: 2025-04-11 16:19:14 - * @FilePath: \fish_game\src\utils\request.js + * @LastEditTime: 2025-04-11 20:26:22 + * @FilePath: \go_fish_web\src\utils\request.js */ import axios from 'axios' +import { ElMessage } from 'element-plus' +import router from '@/router' // 创建 axios 实例 const request = axios.create({ - baseURL: 'http://49.235.165.171:31001', // 你的基础地址 - timeout: 5000 + baseURL: 'http://49.235.165.171:31001', + timeout: 5000, }) +// 设置默认 Content-Type request.defaults.headers['Content-Type'] = 'application/json' -// 请求拦截器 +// 请求拦截器:添加 token request.interceptors.request.use( - config => { - const token = localStorage.getItem('token') - if (token) { - config.headers.Authorization = `Bearer ${token}` - } - return config - }, - error => Promise.reject(error) + (config) => { + const token = localStorage.getItem('token') + if (token) { + config.headers.Authorization = `Bearer ${token}` + } + return config + }, + (error) => Promise.reject(error) ) -// 响应拦截器 +// 响应拦截器:统一处理错误 request.interceptors.response.use( - response => response.data, - error => { - console.error('接口请求错误:', error) - return Promise.reject(error) + (response) => response.data, + (error) => { + const status = error.response?.status + + if (status === 401) { + // token 失效 + ElMessage.warning('登录已过期,请重新登录') + localStorage.removeItem('token') + router.push('/login') + } else { + ElMessage.error(error.response?.data?.message || '请求失败,请稍后再试') } + + return Promise.reject(error) + } ) export default request