From 6565553231cb678e9d31b85cad89b6ca5a5b6001 Mon Sep 17 00:00:00 2001 From: fanfpy Date: Mon, 21 Jul 2025 13:41:33 +0800 Subject: [PATCH] =?UTF-8?q?refactor(frontend):=20=E7=A7=BB=E9=99=A4?= =?UTF-8?q?=E6=9C=AA=E4=BD=BF=E7=94=A8=E7=9A=84=E8=A7=86=E5=9B=BE=E7=BB=84?= =?UTF-8?q?=E4=BB=B6=E5=92=8CAPI=E6=A8=A1=E5=9D=97?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 移除未使用的股票市场、交易新闻、收益预测和历史记录视图组件 删除未使用的API模块和首页组件 在Dockerfile中添加缓存破坏机制 --- services/frontend/Dockerfile | 2 +- services/frontend/src/api/index.js | 92 ---- .../src/views/private/EarningsPrediction.vue | 12 - .../frontend/src/views/private/History.vue | 12 - .../src/views/private/StockMarket.vue | 12 - .../src/views/private/TradingNews.vue | 12 - services/frontend/src/views/public/Index.vue | 489 ------------------ 7 files changed, 1 insertion(+), 630 deletions(-) delete mode 100644 services/frontend/src/views/private/EarningsPrediction.vue delete mode 100644 services/frontend/src/views/private/History.vue delete mode 100644 services/frontend/src/views/private/StockMarket.vue delete mode 100644 services/frontend/src/views/private/TradingNews.vue delete mode 100644 services/frontend/src/views/public/Index.vue diff --git a/services/frontend/Dockerfile b/services/frontend/Dockerfile index fc9f0ef..28f6302 100644 --- a/services/frontend/Dockerfile +++ b/services/frontend/Dockerfile @@ -3,7 +3,7 @@ WORKDIR /app COPY package*.json ./ RUN npm install COPY . . -RUN npm run build +RUN echo "Cachebust: $CACHEBUST" && npm run build FROM nginx:stable-alpine as production-stage COPY --from=build-stage /app/dist /usr/share/nginx/html diff --git a/services/frontend/src/api/index.js b/services/frontend/src/api/index.js index f44ba04..e69de29 100644 --- a/services/frontend/src/api/index.js +++ b/services/frontend/src/api/index.js @@ -1,92 +0,0 @@ -import axios from 'axios'; -import { ElMessage } from 'element-plus'; -import jwt from './jwt'; - -// 创建axios实例 -const apiClient = axios.create({ - baseURL: process.env.VUE_APP_API_BASE_URL || '/api', - timeout: 10000, - headers: { - 'Content-Type': 'application/json' - } -}); - -// 请求拦截器 -apiClient.interceptors.request.use( - (config) => { - // 添加JWT token - const token = jwt.getToken(); - if (token) { - config.headers.Authorization = `Bearer ${token}`; - } - return config; - }, - (error) => { - // 请求错误处理 - ElMessage.error('请求参数错误: ' + error.message); - return Promise.reject(error); - } -); - -// 响应拦截器 -apiClient.interceptors.response.use( - (response) => { - // 处理成功响应 - return response.data; - }, - async (error) => { - // 处理错误响应 - const originalRequest = error.config; - - // 401未授权且不是刷新token请求 - if (error.response?.status === 401 && !originalRequest._retry) { - originalRequest._retry = true; - try { - // 尝试刷新token - const refreshToken = jwt.getRefreshToken(); - if (!refreshToken) { - // 无刷新token,需要重新登录 - jwt.clearTokens(); - window.location.href = '/login'; - return Promise.reject(error); - } - - // 调用刷新token接口 - const response = await axios.post('/api/auth/refresh-token', { - refreshToken - }); - - // 保存新token - const { token, refreshToken: newRefreshToken } = response.data; - jwt.setToken(token); - jwt.setRefreshToken(newRefreshToken); - - // 重试原请求 - originalRequest.headers.Authorization = `Bearer ${token}`; - return apiClient(originalRequest); - } catch (refreshError) { - // 刷新token失败,需要重新登录 - jwt.clearTokens(); - window.location.href = '/login'; - ElMessage.error('登录已过期,请重新登录'); - return Promise.reject(refreshError); - } - } - - // 其他错误处理 - const errorMessage = error.response?.data?.message || '请求失败,请稍后重试'; - ElMessage.error(errorMessage); - return Promise.reject(error); - } -); - -// 封装常用请求方法 -export const api = { - get: (url, params = {}) => apiClient.get(url, { params }), - post: (url, data = {}) => apiClient.post(url, data), - put: (url, data = {}) => apiClient.put(url, data), - delete: (url, params = {}) => apiClient.delete(url, { params }), - patch: (url, data = {}) => apiClient.patch(url, data) -}; - -export default apiClient; \ No newline at end of file diff --git a/services/frontend/src/views/private/EarningsPrediction.vue b/services/frontend/src/views/private/EarningsPrediction.vue deleted file mode 100644 index cf3303d..0000000 --- a/services/frontend/src/views/private/EarningsPrediction.vue +++ /dev/null @@ -1,12 +0,0 @@ - - - \ No newline at end of file diff --git a/services/frontend/src/views/private/History.vue b/services/frontend/src/views/private/History.vue deleted file mode 100644 index d1af0b0..0000000 --- a/services/frontend/src/views/private/History.vue +++ /dev/null @@ -1,12 +0,0 @@ - - - \ No newline at end of file diff --git a/services/frontend/src/views/private/StockMarket.vue b/services/frontend/src/views/private/StockMarket.vue deleted file mode 100644 index bc3ada3..0000000 --- a/services/frontend/src/views/private/StockMarket.vue +++ /dev/null @@ -1,12 +0,0 @@ - - - \ No newline at end of file diff --git a/services/frontend/src/views/private/TradingNews.vue b/services/frontend/src/views/private/TradingNews.vue deleted file mode 100644 index 532c54a..0000000 --- a/services/frontend/src/views/private/TradingNews.vue +++ /dev/null @@ -1,12 +0,0 @@ - - - \ No newline at end of file diff --git a/services/frontend/src/views/public/Index.vue b/services/frontend/src/views/public/Index.vue deleted file mode 100644 index 00589bf..0000000 --- a/services/frontend/src/views/public/Index.vue +++ /dev/null @@ -1,489 +0,0 @@ - - - \ No newline at end of file