|
@@ -0,0 +1,75 @@
|
|
|
+import axios from 'axios'
|
|
|
+// import { ElMessage, ElMessageBox } from 'element-plus'
|
|
|
+// import { userStore } from '@/stores/userStore'
|
|
|
+import { getToken, removeToken } from '@/utils/auth'
|
|
|
+
|
|
|
+// create an axios instance
|
|
|
+const service = axios.create({
|
|
|
+ // Vite默认不支持process
|
|
|
+ // baseURL: process.env.VITE_BASE_URL,
|
|
|
+ baseURL: import.meta.env.VITE_BASE_URL,
|
|
|
+ timeout: 5000 // 请求超时
|
|
|
+})
|
|
|
+
|
|
|
+// 请求拦截器
|
|
|
+service.interceptors.request.use(
|
|
|
+ config => {
|
|
|
+
|
|
|
+ if (getToken()) {
|
|
|
+ // 设置请求带上token
|
|
|
+ config.headers['token'] = getToken()
|
|
|
+ }
|
|
|
+ return config
|
|
|
+ },
|
|
|
+ error => {
|
|
|
+ // 异常情况
|
|
|
+ console.log(error)
|
|
|
+ return Promise.reject(error)
|
|
|
+ }
|
|
|
+)
|
|
|
+
|
|
|
+// 返回拦截器
|
|
|
+service.interceptors.response.use(
|
|
|
+
|
|
|
+ response => {
|
|
|
+ const res = response.data
|
|
|
+
|
|
|
+ // code不等于200的处理
|
|
|
+ if (res.code !== 200) {
|
|
|
+ ElMessage({
|
|
|
+ showClose: true,
|
|
|
+ message: res.message,
|
|
|
+ type: 'error'
|
|
|
+ })
|
|
|
+
|
|
|
+ // code 701 未登录处理
|
|
|
+ if (res.code === 701) {
|
|
|
+ ElMessageBox.confirm('您已退出登录, 您可以点击取消留在当前页面, 或重新登录', '确认重新登录', {
|
|
|
+ confirmButtonText: '重新登录',
|
|
|
+ cancelButtonText: '取消',
|
|
|
+ type: 'warning',
|
|
|
+ center: true,
|
|
|
+ }
|
|
|
+ ).then(() => { // 确认重新登录
|
|
|
+ // userStore.removeToken();
|
|
|
+ removeToken();
|
|
|
+ window.location.href = 'http://127.0.0.1:9518/';
|
|
|
+ })
|
|
|
+ }
|
|
|
+ return Promise.reject(new Error(res.message || 'Error'))
|
|
|
+ } else {
|
|
|
+ return res
|
|
|
+ }
|
|
|
+ },
|
|
|
+ error => {
|
|
|
+ console.log('err' + error)
|
|
|
+ Message({
|
|
|
+ message: error.message,
|
|
|
+ type: 'error',
|
|
|
+ duration: 5 * 1000
|
|
|
+ })
|
|
|
+ return Promise.reject(error)
|
|
|
+ }
|
|
|
+)
|
|
|
+
|
|
|
+export default service
|