import axios from 'axios' import ENV_CONFIG from '@/config/env' // 创建axios实例 const api = axios.create({ baseURL: ENV_CONFIG.API_BASE_URL, timeout: ENV_CONFIG.REQUEST_TIMEOUT, headers: { 'Content-Type': 'application/json' } }) // 请求拦截器 - 添加token api.interceptors.request.use( (config) => { const token = localStorage.getItem(ENV_CONFIG.TOKEN_KEY) if (token) { config.headers.Authorization = `Bearer ${token}` } return config }, (error) => { return Promise.reject(error) } ) // 响应拦截器 - 处理错误 api.interceptors.response.use( (response) => { const data = response.data // 检查后端返回的状态码 if (data.code === 0) { // 成功,返回data字段的内容 return data.data } else { // 失败,抛出错误 return Promise.reject(new Error(data.msg || '请求失败')) } }, (error) => { if (error.response?.status === 401) { // token过期,清除本地存储 localStorage.removeItem(ENV_CONFIG.TOKEN_KEY) localStorage.removeItem(ENV_CONFIG.USER_INFO_KEY) window.location.href = '/#/login' } return Promise.reject(error) } ) // 用户登录接口 export const login = (data: { account: string; password: string }) => { return api.post('/admin/login', data) } // 获取管理员信息接口 export const getUserInfo = () => { return api.get('/admin/info') } // 管理员登出接口 export const logout = () => { return api.post('/admin/logout') } // 修改密码接口 export const changePassword = (data: { oldPassword: string; newPassword: string }) => { return api.post('/admin/change-password', data) } export default api