diff --git a/index.html b/index.html index a6507ff..af20025 100644 --- a/index.html +++ b/index.html @@ -1,5 +1,5 @@ - +
diff --git a/src/api/request.js b/src/api/request.js index 1b8eff6..ce78618 100644 --- a/src/api/request.js +++ b/src/api/request.js @@ -14,13 +14,13 @@ const request = axios.create({ // 请求拦截器 request.interceptors.request.use( config => { - // 如果不是登录请求,就添加token - if (!config.url.includes('/user/login') && !config.url.includes('/user/register')) { - const token = JSON.parse(localStorage.getItem('token')).token + // 如果是访客页面的请求,不需要添加 token + if (!config.url.startsWith('/visitor')) { + const token = localStorage.getItem('token') if (token) { - config.headers.Authorization = `Bearer ${token}` + const tokenData = JSON.parse(token) + config.headers.Authorization = `Bearer ${tokenData.token}` } - console.log('Request Headers:', config.headers.Authorization) } return config }, @@ -38,11 +38,9 @@ request.interceptors.response.use( if (data.retcode === 0) { return data } - // 显示错误消息对话框 - ElMessageBox.alert(data.message || '操作失败', '错误', { - type: 'error', - confirmButtonText: '确定' - }) + + // 显示错误消息 + ElMessage.error(data.message || '操作失败') return Promise.reject(new Error(data.message || '操作失败')) }, error => { @@ -51,9 +49,12 @@ request.interceptors.response.use( if (error.response) { switch (error.response.status) { case 401: - localStorage.removeItem('token') - localStorage.removeItem('userRole') - router.push('/login') + // 只有非访客页面才需要清除登录状态并跳转 + if (!router.currentRoute.value.path.startsWith('/visitor')) { + localStorage.removeItem('token') + localStorage.removeItem('userRole') + router.push('/login') + } break case 403: ElMessage.error('没有权限访问') @@ -62,10 +63,8 @@ request.interceptors.response.use( ElMessage.error(error.response.data?.message || '请求失败') } } else if (error.request) { - // 请求已发出但没有收到响应 ElMessage.error('服务器无响应,请检查后端服务是否启动') } else { - // 请求配置出错 ElMessage.error('请求配置错误') } return Promise.reject(error) diff --git a/src/api/visitor.js b/src/api/visitor.js new file mode 100644 index 0000000..3bf5a2b --- /dev/null +++ b/src/api/visitor.js @@ -0,0 +1,49 @@ +import request from './request' + +export const VisitorAPI = { + /** + * 获取服务器负载信息 + */ + getServerLoad() { + return request.get('/GetServerLoad', { + headers: { + 'Content-Type': 'application/x-www-form-urlencoded' + } + }) + }, + + /** + * 添加离线下载任务 + * @param {string} url 下载链接 + */ + addOfflineTask(url) { + return request.post('/AddOfflineTask', null, { + params: { url }, + headers: { + 'Content-Type': 'application/x-www-form-urlencoded' + } + }) + }, + + /** + * 获取我的任务列表 + */ + getMyTasks() { + return request.get('/GetMyTasks', { + headers: { + 'Content-Type': 'application/x-www-form-urlencoded' + } + }) + }, + + /** + * 删除访客信息 + */ + deleteVisitorInfo() { + return request.delete('/VisitorManagement/DeleteInfo', { + headers: { + 'Content-Type': 'application/x-www-form-urlencoded' + } + }) + } +} \ No newline at end of file diff --git a/src/layout/Layout.vue b/src/layout/Layout.vue index 1b92365..36d2a31 100644 --- a/src/layout/Layout.vue +++ b/src/layout/Layout.vue @@ -1,9 +1,9 @@