100 lines
3.0 KiB
JavaScript
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
|