113 lines
3.6 KiB
JavaScript
113 lines
3.6 KiB
JavaScript
/*jshint esversion: 9 */
|
||
/**
|
||
* http请求配置
|
||
*/
|
||
import axios from 'axios'
|
||
import { userDataStore } from '@/store/user'
|
||
import { encrypt, decrypt } from '@/utils/encrypt'
|
||
// import { useMessage } from 'naive-ui'
|
||
import router from '@/router'
|
||
import { createDiscreteApi } from 'naive-ui'
|
||
import { set } from 'lodash'
|
||
const { message } = createDiscreteApi(['message'])
|
||
|
||
let baseApiURL = import.meta.env.VITE_APP_baseApiURL //api原始链接
|
||
const timeout = 30000 //api请求超时时间
|
||
|
||
export const service = axios.create({
|
||
//可创建多个 axios实例
|
||
baseURL: baseApiURL, //设置公共的请求前缀
|
||
timeout: timeout, //超时终止请求
|
||
})
|
||
|
||
service.interceptors.request.use(
|
||
(config) => {
|
||
const userData = userDataStore()
|
||
config.headers = config.headers || {}
|
||
// config.headers['token'] = userData.userInfo.token
|
||
|
||
if (userData?.userInfo?.token) {
|
||
// config.headers['Authorization'] = 'Bearer ' + userData?.userInfo?.token
|
||
config.headers['Token'] = userData?.userInfo?.token
|
||
} else {
|
||
config.headers['Token'] = 'test'
|
||
}
|
||
return config
|
||
},
|
||
() => {
|
||
return Promise.reject({
|
||
msg: '请求发生错误,请稍后再试',
|
||
})
|
||
},
|
||
)
|
||
|
||
let modelShow = false
|
||
service.interceptors.response.use(
|
||
(response) => {
|
||
response.data = decrypt(response.data)
|
||
console.log(
|
||
'%c🔍-- 解密后出参 --',
|
||
'background: linear-gradient(90deg, #FF6B6B, #4ECDC4); color: white; padding: 5px 60px; border-radius: 5px; font-weight: bold;',
|
||
'',
|
||
)
|
||
console.log(
|
||
'%c原始数据:', //增加样式
|
||
'color: #FF6B6B; padding: 5px 0; border-radius: 5px; font-weight: bold;',
|
||
'',
|
||
'\n',
|
||
response.data,
|
||
)
|
||
console.log(
|
||
'%cJSON格式:',
|
||
'color: #4ECDC4; padding: 5px 0; border-radius: 5px; font-weight: bold;',
|
||
'\n',
|
||
JSON.stringify(response.data, null, 2),
|
||
)
|
||
|
||
const data = response.data
|
||
|
||
if (!data) {
|
||
return Promise.reject({
|
||
msg: '请求发生错误',
|
||
})
|
||
}
|
||
const status = data?.status || response.status
|
||
switch (status) {
|
||
case 200:
|
||
// return data
|
||
return Promise.resolve(response)
|
||
case 401: //表示需要重新登录
|
||
// if (!modelShow) {
|
||
// modelShow = true
|
||
// if (window.confirm('登录已经失效,是否重新登录?')) {
|
||
// router.push({
|
||
// path: '/login',
|
||
// })
|
||
// }
|
||
// modelShow = false
|
||
// }
|
||
|
||
setTimeout(() => {
|
||
message.error('登录已经失效,请重新登录')
|
||
// 清除所有localStorage
|
||
localStorage.clear()
|
||
window.location.href = 'http://sgwpdm.ah.sgcc.com.cn/iws/#/unified/'
|
||
}, 500)
|
||
return Promise.reject(data)
|
||
case 202: //表示失败,参数或其他原因
|
||
return Promise.reject(data)
|
||
case 500: //表示报错。未知原因
|
||
return Promise.reject(data)
|
||
default:
|
||
return Promise.reject(data)
|
||
}
|
||
},
|
||
(error) => {
|
||
//数据请求发生错误
|
||
message.error('请求发生错误,请稍后再试')
|
||
return Promise.reject({
|
||
msg: '请求发生错误,请稍后再试',
|
||
})
|
||
},
|
||
)
|