You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
248 lines
5.9 KiB
248 lines
5.9 KiB
import axios from 'axios'
|
|
import router from '@/router'
|
|
import { Message } from 'element-ui'
|
|
import { removeToken, getToken } from '@/utils/auth'
|
|
// 统一请求路径前缀
|
|
const base = process.env.VUE_APP_BASE_API
|
|
// 超时设定
|
|
axios.defaults.timeout = 120000
|
|
|
|
axios.interceptors.request.use(
|
|
config => {
|
|
// console.log('请求拦截器数据', config)
|
|
return config
|
|
},
|
|
err => {
|
|
Message.error('请求超时')
|
|
return Promise.resolve(err)
|
|
}
|
|
)
|
|
|
|
// http response 拦截器
|
|
axios.interceptors.response.use(
|
|
response => {
|
|
const data = response.data
|
|
// console.log('响应拦截器数据', response)
|
|
// console.log('data.code:' + data.code)
|
|
// 根据返回的code值来做不同的处理(和后端约定)
|
|
switch (data.code) {
|
|
case 401:
|
|
// Message.error('登录失效,请重新登录!')
|
|
console.log('登录失效,请重新登录!')
|
|
// 未登录
|
|
// removeToken().then(() => { // 清除已登录状态
|
|
// router.push('/login')
|
|
// })
|
|
// if (router.history.current.name !== 'login') {
|
|
// console.log(router.history.current.name)
|
|
// if (data.msg !== null) {
|
|
// Message.error(data.msg)
|
|
// } else {
|
|
// Message.error('未知错误,请重新登录')
|
|
// }
|
|
// }
|
|
break
|
|
case 403:
|
|
// 没有权限
|
|
if (data.msg !== null) {
|
|
Message.error(data.msg)
|
|
} else {
|
|
Message.error('未知错误')
|
|
}
|
|
break
|
|
case 500:
|
|
// 错误
|
|
if (data.msg !== null) {
|
|
Message.error(data.msg)
|
|
} else {
|
|
Message.error('未知错误')
|
|
}
|
|
break
|
|
case 99:
|
|
if (data.msg !== null) {
|
|
if (data.msg == '登录状态已过期') {
|
|
// 未登录
|
|
// removeToken().then(() => { // 清除已登录状态
|
|
// router.push('/login')
|
|
// })
|
|
} else {
|
|
// Message.error(data.msg)
|
|
return data
|
|
}
|
|
} else {
|
|
Message.error('未知错误')
|
|
}
|
|
break
|
|
default:
|
|
return data
|
|
}
|
|
return Promise.reject(new Error(response.msg || 'Error'))
|
|
},
|
|
error => {
|
|
// 返回状态码不为200时候的错误处理
|
|
Message.error(error.toString())
|
|
if (error.request.responseURL.indexOf('/sys/security/needLogin')) {
|
|
// removeToken().then(() => { // 清除已登录状态
|
|
// router.push('/login')
|
|
// })
|
|
}
|
|
// return err
|
|
return Promise.reject(error)
|
|
}
|
|
)
|
|
|
|
export const getRequest = (url, params) => {
|
|
const accessToken = getToken()
|
|
console.log(`-------------------${base}${url}`)
|
|
return axios({
|
|
method: 'get',
|
|
url: `${base}${url}`,
|
|
params: params,
|
|
headers: {
|
|
accessToken: accessToken
|
|
}
|
|
})
|
|
}
|
|
|
|
export const postRequest = (url, params) => {
|
|
const accessToken = getToken()
|
|
return axios({
|
|
method: 'post',
|
|
url: `${base}${url}`,
|
|
data: params,
|
|
transformRequest: [
|
|
function(data) {
|
|
let ret = ''
|
|
for (const it in data) {
|
|
ret +=
|
|
encodeURIComponent(it) + '=' + encodeURIComponent(data[it]) + '&'
|
|
}
|
|
return ret
|
|
}
|
|
],
|
|
headers: {
|
|
'Content-Type': 'application/x-www-form-urlencoded',
|
|
accessToken: accessToken
|
|
}
|
|
})
|
|
}
|
|
|
|
export const post = (url, params) => {
|
|
const accessToken = getToken()
|
|
return axios({
|
|
method: 'post',
|
|
url: `${base}${url}`,
|
|
data: params,
|
|
headers: {
|
|
'Content-Type': 'application/json;charset=utf-8',
|
|
// 'Content-Type': 'multipart/form-data',
|
|
accessToken: accessToken
|
|
}
|
|
})
|
|
}
|
|
|
|
// export const postExport = (url, params) => {
|
|
// const accessToken = getToken()
|
|
// return axios({
|
|
// method: 'post',
|
|
// url: `${base}${url}`,
|
|
// data: params,
|
|
// headers: {
|
|
// 'Content-Type': 'application/json;charset=utf-8',
|
|
// // 'Content-Type': 'multipart/form-data',
|
|
// accessToken: accessToken
|
|
// },
|
|
// responseType: 'blob' // 表明返回服务器返回的数据类型
|
|
// })
|
|
// }
|
|
|
|
export const putRequest = (url, params) => {
|
|
const accessToken = getToken()
|
|
return axios({
|
|
method: 'put',
|
|
url: `${base}${url}`,
|
|
data: params,
|
|
transformRequest: [
|
|
function(data) {
|
|
let ret = ''
|
|
for (const it in data) {
|
|
ret +=
|
|
encodeURIComponent(it) + '=' + encodeURIComponent(data[it]) + '&'
|
|
}
|
|
return ret
|
|
}
|
|
],
|
|
headers: {
|
|
'Content-Type': 'application/x-www-form-urlencoded',
|
|
accessToken: accessToken
|
|
}
|
|
})
|
|
}
|
|
|
|
export const deleteRequest = (url, params) => {
|
|
const accessToken = getToken()
|
|
return axios({
|
|
method: 'delete',
|
|
url: `${base}${url}`,
|
|
params: params,
|
|
headers: {
|
|
accessToken: accessToken
|
|
}
|
|
})
|
|
}
|
|
|
|
export const importRequest = (url, params) => {
|
|
const accessToken = getToken()
|
|
return axios({
|
|
method: 'post',
|
|
url: `${base}${url}`,
|
|
data: params,
|
|
headers: {
|
|
accessToken: accessToken
|
|
}
|
|
})
|
|
}
|
|
|
|
export const uploadFileRequest = (url, params) => {
|
|
const accessToken = getToken()
|
|
return axios({
|
|
method: 'post',
|
|
url: `${base}${url}`,
|
|
params: params,
|
|
headers: {
|
|
accessToken: accessToken
|
|
}
|
|
})
|
|
}
|
|
|
|
export const getDownLoadUrl = (url) => {
|
|
const accessToken = getToken()
|
|
return base + url + '?accessToken=' + accessToken
|
|
}
|
|
|
|
export const uploadFileRequestJianCai = (url, params) => {
|
|
const accessToken = getToken()
|
|
return axios({
|
|
method: 'post',
|
|
url: `${base}${url}`,
|
|
data: params,
|
|
headers: {
|
|
'Content-Type': 'multipart/form-data',
|
|
contentType: false,
|
|
processData: false,
|
|
accessToken: accessToken
|
|
}
|
|
})
|
|
}
|
|
|
|
export const postBodyRequest = (url, params) => {
|
|
const accessToken = getToken()
|
|
return axios({
|
|
method: 'post',
|
|
url: `${base}${url}`,
|
|
data: params,
|
|
headers: {
|
|
accessToken: accessToken
|
|
}
|
|
})
|
|
}
|
|
|