/* eslint-disable */
|
import axios from 'axios'
|
import qs from 'qs'
|
import { Notification } from 'element-ui'
|
import router from '@/router'
|
|
const Axios = axios.create({
|
responseType: 'json',
|
withCredentials: true // 是否允许带cookie这些
|
})
|
|
/* //POST传参序列化(添加请求拦截器) */
|
Axios.interceptors.request.use(
|
config => {
|
console.log(9898);
|
console.log(config);
|
|
|
if (
|
config.method === "post" &&
|
sessionStorage.getItem('clusterId') ||
|
sessionStorage.getItem('devId')
|
) {
|
if( !config.data ) {
|
config.data = {}
|
}
|
|
if(typeof config.data == 'object' ) {
|
config.data.clusterId = sessionStorage.getItem('clusterId')
|
config.data.devId = sessionStorage.getItem('devId')
|
}
|
|
if(config.url === '/saas/api-s/camera/rule/getLinkRulesByCameraIds') {
|
config.data.devId = sessionStorage.getItem('cameraDevId')
|
}
|
|
//后门
|
if(config.url === '/saas/api-d/device/userClusterInfo') {
|
config.data.clusterId = ''
|
}
|
|
}
|
|
// 若是有做鉴权token , 就给头部带上token
|
|
let token =
|
sessionStorage.getItem('loginedInfo') &&
|
JSON.parse(sessionStorage.getItem('loginedInfo')).access_token
|
if (token != undefined) {
|
config.headers.Authorization = token
|
}
|
return config
|
},
|
error => {
|
console.log('请求错误');
|
console.log(error);
|
|
|
/* Message({
|
showClose: true,
|
message: "提交出错,请联系管理员!",
|
type: "error"
|
}); */
|
return Promise.reject(error)
|
}
|
)
|
|
/* //返回状态判断(添加响应拦截器) */
|
Axios.interceptors.response.use(
|
res => {
|
/* //对响应数据做些事 */
|
if (res.data && res.statusText !== 'OK' && res.status !== 200) {
|
Notification({
|
title: '',
|
message: res.data.message,
|
type: 'error'
|
})
|
return Promise.reject(res.data)
|
}
|
|
// 登陆超时判断
|
// if ((res.data && !res.data.policeCameravideoIsLoginTimeout) || !res.data.data.policeCameravideoIsLoginTimeout) {
|
// Message({
|
// message: '登录状态信息过期,请重新登录',
|
// type: 'error'
|
// })
|
// router.push({
|
// path: '/'
|
// })
|
// return Promise.reject(res.data)
|
// } else {
|
// window.sessionStorage.setItem('policeCameravideoIsLoginTimeout', JSON.stringify(true))
|
// }
|
|
var disposition = res.headers["content-disposition"];
|
if(disposition) {
|
var fileName = disposition.substring(disposition.indexOf("=") + 1);
|
console.log(res);
|
|
return {
|
fileName:fileName,
|
body:res
|
}
|
}
|
|
return res.data ? res.data : {}
|
|
|
|
/* //return res.data ? res.data : {}; */
|
},
|
error => {
|
console.log('响应错误');
|
console.log(error);
|
let errJson: any = {
|
success: false
|
}
|
if(error && error.response&&error.response.status == 404) {
|
return
|
}
|
// 下面是接口回调的satus ,因为我做了一些错误页面,所以都会指向对应的报错页面
|
if (error && error.response) {
|
switch (error.response.status) {
|
case 400:
|
errJson.status = error.response.status
|
errJson.message = '请求错误(400)'
|
break
|
case 401:
|
errJson.status = error.response.status
|
errJson.message = '未授权,请重新登录(401)'
|
router.push({
|
path: '/login'
|
})
|
// if (!AuthData.isLoginout) {
|
// Notification({
|
// title:"",
|
// showClose: true,
|
// message: "登录信息失效,请重新登录!",
|
// type: "error"
|
// });
|
// }
|
// AuthData.isLoginout = true
|
|
// todo 返回到登录页
|
// router.push({
|
// path: '/'
|
// })
|
break
|
case 403:
|
errJson.status = error.response.status
|
errJson.message = '拒绝访问(403)'
|
break
|
case 404:
|
errJson.status = error.response.status
|
errJson.message = '找不到请求路径(404)'
|
break
|
case 408:
|
errJson.status = error.response.status
|
errJson.message = '请求超时(408)'
|
break
|
case 500:
|
errJson = error.response.data
|
break
|
|
default:
|
errJson.status = error.response.status
|
errJson.message = `连接出错(${error.response.status})!`
|
}
|
|
} else {
|
errJson.message = '连接服务器失败!'
|
|
// router.push({
|
// path: '/login'
|
// });
|
}
|
|
if(error.response&&error.response.data&&!error.response.data.success ) {
|
errJson.message =error.response.data.msg
|
}
|
|
if(error.response.status == 401) {
|
return
|
}
|
|
Notification({
|
title: '错误',
|
showClose: true,
|
message:errJson.message,
|
type: 'error'
|
})
|
// 返回 response 里的错误信息
|
return Promise.reject(errJson)
|
}
|
)
|
|
Axios.defaults.timeout = 10000
|
export default Axios
|