Files
foton-laws-system-front/src/common/axiosV2/index.js
T

100 lines
3.0 KiB
JavaScript

import axios from 'axios'
import router from '@/router'
import store from '@/store'
import {Message} from 'element-ui'
import { baseUrl,webLoginType,ssoLoginUrlDev } from '@/sysConfig'
import isMobile from "../../store/isMobile";
import domMessage from '../messageOnce/messageOnce'
// import 'element-ui/lib/theme-chalk/index.css'
const messageOnce = new domMessage()
/**
* @description: FormData
* @author: xx
* @date: 2018-08-14 16:57:48
*/
let formData = (data) => {
let _formData = new FormData()
for (let i in data) {
_formData.append(i, data[i])
}
return _formData
}
const service = axios.create({
baseURL: process.env.NODE_ENV === 'production' ? baseUrl : '/'
})
service.defaults.timeout = 99999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999
service.defaults.headers['Content-type'] = 'application/json'
/**
* @description: axios请求拦截器
* liuyan
*/
service.interceptors.request.use(
config => {
if (config.params) {
// 解决IE请求不刷新
config.params._t = new Date().getTime()
}
let token = store.state.token;
if (!config.headers.hasOwnProperty('token') && token != null && token) {
config.headers.token = token;
}
return config
},
error => {
return Promise.reject(error.response)
})
/**
* @description: axios响应拦截器
* liuyan
*/
service.interceptors.response.use(
res => {
// IE 8-9
if (res.data == null && res.config.responseType === 'json' && res.request.responseText != null) {
try {
res.data = JSON.parse(res.request.responseText);
} catch (e) {
// ignored
}
}
if(res.data && res.data.respCode != undefined && res.data.respCode === 'LE505'){
if (isMobile()) {
localStorage.removeItem('token')
return router.push('/phoneIndex')
}else {
window.sessionStorage.clear()
messageOnce.warning({
message: '登录超时,请重新登录',
type: 'warning'
})
if(webLoginType != null && webLoginType === 'idm' ) {
// idm 统一认证登录页面
return window.location.href = ssoLoginUrlDev
}else if(webLoginType != null && webLoginType === 'dev'){
return router.push('/login')
}
}
}
return res.data
},
error => {
// 登录超时
if (error.response.data.path === '/a/login' && store.state.isTimeOut === false) {
for (let key in store.state) {
if (key !== 'isTimeOut' && key !== 'laws_urm' && key !== 'laws_prm') {
store.state[key] = ''
}
}
Message.warning('登录超时,请重新登录')
router.push('/login')
store.state.isTimeOut = true
}
})
export default service