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