| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596 |
- // +---------------------------------------------------------------------
- // | CRMEB [ CRMEB赋能开发者,助力企业发展 ]
- // +---------------------------------------------------------------------
- // | Copyright (c) 2016~2023 https://www.crmeb.com All rights reserved.
- // +---------------------------------------------------------------------
- // | Licensed CRMEB并不是自由软件,未经许可不能去掉CRMEB相关版权
- // +---------------------------------------------------------------------
- // | Author: CRMEB Team <admin@crmeb.com>
- // +---------------------------------------------------------------------
- import axios from 'axios';
- import { Message } from 'iview';
- import { getCookies, removeCookies } from '@/libs/util';
- import Setting from '@/setting';
- import router from '@/router';
- const service = axios.create({
- baseURL: Setting.apiBaseURL,
- timeout: 10000, // 请求超时时间
- });
- axios.defaults.withCredentials = true; // 携带cookie
- // 请求拦截器
- service.interceptors.request.use(
- (config) => {
- if (config.kefu) {
- let baseUrl = Setting.apiBaseURL.replace(/adminapi/, 'kefuapi');
- config.baseURL = baseUrl;
- } else {
- config.baseURL = Setting.apiBaseURL;
- }
- if (config.file) {
- config.headers['Content-Type'] = 'multipart/form-data';
- }
- const token = getCookies('token');
- const kefuToken = getCookies('kefu_token');
- if (token || kefuToken) {
- config.headers['Authori-zation'] = config.kefu ? 'Bearer ' + kefuToken : 'Bearer ' + token;
- }
- return config;
- },
- (error) => {
- // do something with request error
- return Promise.reject(error);
- },
- );
- // response interceptor
- service.interceptors.response.use(
- (response) => {
- let obj = {};
- if (!!response.data) {
- if (typeof response.data == 'string') {
- obj = JSON.parse(response.data);
- } else {
- obj = response.data;
- }
- }
- let status = response.data ? obj.status : 0;
- // let status = response.data ? response.data.status : 0;
- const code = status;
- switch (code) {
- case 200:
- return obj;
- case 110002:
- case 110003:
- case 110004:
- localStorage.clear();
- removeCookies('token');
- removeCookies('expires_time');
- removeCookies('uuid');
- router.replace({ name: 'login' });
- break;
- case 110005:
- case 110006:
- case 110007:
- removeCookies('kefuInfo');
- removeCookies('kefu_token');
- removeCookies('kefu_expires_time');
- removeCookies('kefu_uuid');
- router.replace({ path: '/kefu' });
- break;
- case 110008:
- router.replace({ name: 'system_opendir_login' });
- break;
- default:
- return Promise.reject(obj || { msg: '未知错误' });
- }
- },
- (error) => {
- Message.error(error.msg);
- return Promise.reject(error);
- },
- );
- export default service;
|