76 lines
1.9 KiB
JavaScript
76 lines
1.9 KiB
JavaScript
import Vue from 'vue'
|
|
|
|
import XDateFormatPlugin from './dayjs/x-date-format'
|
|
import XLodashPlugin from './lodash/x-lodash'
|
|
import XBomeventPlugin from './bomevent/x-bomevent'
|
|
import XRequestPlugin from './request/x-request'
|
|
|
|
import { SET_TOKEN } from '../store/auth.store'
|
|
import store from '../store'
|
|
|
|
const plugins = [XDateFormatPlugin, XLodashPlugin, XBomeventPlugin]
|
|
|
|
plugins.forEach((plugin) => {
|
|
Vue.use(plugin)
|
|
})
|
|
|
|
Vue.use(XRequestPlugin, {
|
|
baseURL: process.env.VUE_APP_BASE_DOMAIN,
|
|
headers: {
|
|
'Accept-Language': 'zh-CN'
|
|
},
|
|
needShowMessage: true,
|
|
businessErrorCatch: function(failRes, response, needShowMessage) {
|
|
// 通用业务错误处理
|
|
// console.log(failRes, response, needShowMessage)
|
|
if (failRes.code === 'error' && needShowMessage) {
|
|
Vue.prototype.$message({
|
|
message: failRes.message,
|
|
type: 'error'
|
|
})
|
|
}
|
|
},
|
|
errorCatch: function(err, needShowMessage) {
|
|
console.error(err)
|
|
}
|
|
})
|
|
|
|
// 添加request拦截器
|
|
Vue.addInterceptorsRequest('REQUEST_PARAMS_INTERCEPTOR', (e) => {
|
|
e.headers['xdaptimestamp'] = new Date().getTime()
|
|
|
|
const authStore = store.state.authModule
|
|
if (authStore.token) {
|
|
e.headers['xdaptoken'] = authStore.token
|
|
}
|
|
e.headers['xdaptenantid'] = process.env.VUE_APP_TENANT_ID
|
|
|
|
return e
|
|
})
|
|
|
|
// 添加response拦截器
|
|
Vue.addInterceptorsResponse('RESPONSE_SUCCESS_MSG_INTERCEPTOR', (e) => {
|
|
const token = e && e.headers && e.headers.xdaptoken
|
|
if (token) {
|
|
store.commit(`authModule/${SET_TOKEN}`, token)
|
|
}
|
|
if (e.data.code) {
|
|
if (e && e.status === 200 && e.data.code === 'ok' && !e.config.disableSuccessMsg) {
|
|
if (e.data.interval) {
|
|
Vue.prototype.$message({
|
|
message: e.data.message,
|
|
type: 'success',
|
|
durationTime: e.data.interval
|
|
})
|
|
} else {
|
|
Vue.prototype.$message({
|
|
message: e.data.message,
|
|
type: 'success'
|
|
})
|
|
}
|
|
}
|
|
}
|
|
|
|
return e
|
|
})
|