From e6f9b1d475d9380a5e3cf5fd4c6dfb78e97a10dc Mon Sep 17 00:00:00 2001 From: wangxiangwen4 <1906413238@qq.com> Date: Thu, 17 Jul 2025 11:37:01 +0800 Subject: [PATCH] =?UTF-8?q?=E5=88=9D=E4=BB=A3-=E7=AE=80=E5=8D=95=E7=9A=84?= =?UTF-8?q?=E5=B0=81=E8=A3=85=E5=B7=A5=E5=85=B7=E8=AF=B7=E6=B1=82=E7=B1=BB?= =?UTF-8?q?request?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- activitylink/.env.development | 2 +- activitylink/package-lock.json | 12 ++ activitylink/package.json | 1 + activitylink/src/api/manage/level.js | 10 ++ activitylink/src/main.js | 2 +- activitylink/src/utils/request.js | 140 ++++------------------- activitylink/src/views/zhongchou/level/index.vue | 20 ++-- activitylink/vite.config.js | 8 +- 8 files changed, 59 insertions(+), 136 deletions(-) create mode 100644 activitylink/src/api/manage/level.js diff --git a/activitylink/.env.development b/activitylink/.env.development index 555fc75..7aa3ef5 100644 --- a/activitylink/.env.development +++ b/activitylink/.env.development @@ -6,7 +6,7 @@ VITE_PUBLIC_PATH = / #新数据接口 # VITE_APP_API_BASE_URL = "http://39.101.133.168:8828/link" - +VITE_APP_BASE_API = 'http://47.92.148.30:3003/mock/3267' # Whether to open mock VITE_USE_MOCK = true diff --git a/activitylink/package-lock.json b/activitylink/package-lock.json index 15035c0..c0eadc8 100644 --- a/activitylink/package-lock.json +++ b/activitylink/package-lock.json @@ -11,6 +11,7 @@ "@vitejs/plugin-vue": "^4.6.2", "axios": "^1.10.0", "element-plus": "^2.10.4", + "file-saver": "^2.0.5", "pinia": "^3.0.3", "vite": "^4.5.3", "vue": "^3.5.17", @@ -966,6 +967,12 @@ "integrity": "sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==", "license": "MIT" }, + "node_modules/file-saver": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/file-saver/-/file-saver-2.0.5.tgz", + "integrity": "sha512-P9bmyZ3h/PRG+Nzga+rbdI4OEpNDzAVyy74uVO9ATgzLK6VtAsYybF/+TOCvrc0MO793d6+42lLyZTw7/ArVzA==", + "license": "MIT" + }, "node_modules/follow-redirects": { "version": "1.15.9", "resolved": "https://mirrors.huaweicloud.com/repository/npm/follow-redirects/-/follow-redirects-1.15.9.tgz", @@ -2001,6 +2008,11 @@ "resolved": "https://mirrors.huaweicloud.com/repository/npm/estree-walker/-/estree-walker-2.0.2.tgz", "integrity": "sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==" }, + "file-saver": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/file-saver/-/file-saver-2.0.5.tgz", + "integrity": "sha512-P9bmyZ3h/PRG+Nzga+rbdI4OEpNDzAVyy74uVO9ATgzLK6VtAsYybF/+TOCvrc0MO793d6+42lLyZTw7/ArVzA==" + }, "follow-redirects": { "version": "1.15.9", "resolved": "https://mirrors.huaweicloud.com/repository/npm/follow-redirects/-/follow-redirects-1.15.9.tgz", diff --git a/activitylink/package.json b/activitylink/package.json index 8071e89..9e2dbdd 100644 --- a/activitylink/package.json +++ b/activitylink/package.json @@ -12,6 +12,7 @@ "@vitejs/plugin-vue": "^4.6.2", "axios": "^1.10.0", "element-plus": "^2.10.4", + "file-saver": "^2.0.5", "pinia": "^3.0.3", "vite": "^4.5.3", "vue": "^3.5.17", diff --git a/activitylink/src/api/manage/level.js b/activitylink/src/api/manage/level.js new file mode 100644 index 0000000..199d6bc --- /dev/null +++ b/activitylink/src/api/manage/level.js @@ -0,0 +1,10 @@ + +import request from '@/utils/request' + +export function deleteUser(id) { + return request({ + url: '/admin/user/delete', + method: 'post', + params: { id } + }) +} \ No newline at end of file diff --git a/activitylink/src/main.js b/activitylink/src/main.js index 7dcb1de..cfb1058 100644 --- a/activitylink/src/main.js +++ b/activitylink/src/main.js @@ -11,7 +11,7 @@ import axios from 'axios' const app = createApp(App) const pinia = createPinia() window.axios = axios -axios.defaults.baseURL = 'http://47.92.148.30:3003/mock/3267' +// axios.defaults.baseURL = 'http://47.92.148.30:3003/mock/3267' app.use(router) app.use(pinia) app.use(ElementPlus, { diff --git a/activitylink/src/utils/request.js b/activitylink/src/utils/request.js index e4f8432..e5b31e6 100644 --- a/activitylink/src/utils/request.js +++ b/activitylink/src/utils/request.js @@ -1,130 +1,30 @@ + import axios from 'axios' import { ElMessage } from 'element-plus' -import { config } from '@/config' - -const ERROR_MESSAGES = { - badRequest: '请求错误(400)', - unauthorized: '未授权,请登录(401)', - forbidden: '拒绝访问(403)', - notFound: `请求地址出错: ${'[具体 URL 将在这里被替换]'}`, - methodNotAllowed: '请求方法未允许(405)', - requestTimeout: '请求超时(408)', - internalServerError: '服务器内部错误(500)', - notImplemented: '服务未实现(501)', - badGateway: '网络错误(502)', - serviceUnavailable: '服务不可用(503)', - gatewayTimeout: '网络超时(504)', - httpVersionNotSupported: 'HTTP 版本不受支持(505)', - defaultConnectionError: '连接错误: [原始错误消息]', - networkError: '网络异常,请检查后重试!', - serverFailure: '连接到服务器失败,请联系管理员' -} +// 创建基础实例 const service = axios.create({ - baseURL: '', // url = base url + request url+ - // timeout: 50000, - withCredentials: false // send cookies when cross-domain requests - // headers: { - // // clear cors - // 'Cache-Control': 'no-cache', - // Pragma: 'no-cache' - // } + baseURL: import.meta.env.VITE_APP_BASE_API, + timeout: 10000 }) -const setErrorMsg = (error) => { - if (error && error.response) { - switch (error.response.status) { - case 400: - error.message = ERROR_MESSAGES.badRequest - break - case 401: - error.message = ERROR_MESSAGES.unauthorized - break - case 403: - error.message = ERROR_MESSAGES.forbidden - break - case 404: - error.message = ERROR_MESSAGES.notFound.replace( - '[具体 URL 将在这里被替换]', - error.response.config.url - ) - break - case 405: - error.message = ERROR_MESSAGES.methodNotAllowed - break - case 408: - error.message = ERROR_MESSAGES.requestTimeout - break - case 500: - error.message = ERROR_MESSAGES.internalServerError - break - case 501: - error.message = ERROR_MESSAGES.notImplemented - break - case 502: - error.message = ERROR_MESSAGES.badGateway - break - case 503: - error.message = ERROR_MESSAGES.serviceUnavailable - break - case 504: - error.message = ERROR_MESSAGES.gatewayTimeout - break - case 505: - error.message = ERROR_MESSAGES.httpVersionNotSupported - break - default: - error.message = ERROR_MESSAGES.defaultConnectionError.replace( - '[原始错误消息]', - error.message - ) - } - } else { - if (error.message === 'Network Error') { - error.message = ERROR_MESSAGES.networkError - } else { - error.message = ERROR_MESSAGES.serverFailure - } - } - return error.message -} - -// Request interceptors -service.interceptors.request.use( - (config) => { - // 在此处添加请求头等,如添加 token - // if (store.state.token) { - // config.headers['Authorization'] = `Bearer ${store.state.token}` - // } - return config - }, - (error) => { - return Promise.reject(error) - } -) +// 请求拦截器(简化版) +service.interceptors.request.use(config => { + // 添加token逻辑(如果存在) + const token = localStorage.getItem('token') + if (token) { + config.headers['Authorization'] = 'Bearer ' + token + } + return config +}) -// Response interceptors +// 响应拦截器(简化版) service.interceptors.response.use( - async (response) => { - // await new Promise(resovle => setTimeout(resovle, 3000)); - // if (response.config.loadingInstance) { - // response.config.loadingInstance.close(); - // } - const res = response.data - if (res.code !== 200) { - const errorMsg = res.msg || 'Unkonw error' - // ElMessage.error(errorMsg) - // return Promise.reject(new Error(res.msg || 'Error')) - return response.data - } else { - return response.data - } - }, - (error) => { - const errorMessage = setErrorMsg(error) - ElMessage.error(errorMessage) - return Promise.reject(error) - } + response => response.data, + error => { + ElMessage.error(error.message || '请求错误') + return Promise.reject(error) + } ) -export default service +export default service \ No newline at end of file diff --git a/activitylink/src/views/zhongchou/level/index.vue b/activitylink/src/views/zhongchou/level/index.vue index bcd749c..4f7ee28 100644 --- a/activitylink/src/views/zhongchou/level/index.vue +++ b/activitylink/src/views/zhongchou/level/index.vue @@ -94,7 +94,9 @@