Initial commit: 商品售卖网站

This commit is contained in:
2026-04-13 07:20:09 +08:00
commit c6154273f2
865 changed files with 26573 additions and 0 deletions
+41
View File
@@ -0,0 +1,41 @@
import axios from 'axios'
import { ElMessage } from 'element-plus'
const api = axios.create({
baseURL: import.meta.env.VITE_API_BASE_URL || 'http://localhost:8080/api',
timeout: 30000,
headers: {
'Content-Type': 'application/json',
},
})
api.interceptors.request.use(
(config) => {
const token = localStorage.getItem('token')
if (token) {
config.headers.Authorization = `Bearer ${token}`
}
return config
},
(error) => Promise.reject(error),
)
api.interceptors.response.use(
(response) => response.data,
(error) => {
const message = error.response?.data?.error || error.message || 'Request failed'
if (error.response?.status === 401) {
const hadToken = !!localStorage.getItem('token')
localStorage.removeItem('token')
localStorage.removeItem('user')
if (hadToken) {
window.location.href = '/login'
}
} else {
ElMessage.error(message)
}
return Promise.reject(error)
},
)
export default api