Skip to content

Commit

Permalink
perf(axios): 优化axios部分逻辑
Browse files Browse the repository at this point in the history
  • Loading branch information
BoBoooooo committed Sep 11, 2020
1 parent 5641a17 commit 6f960c4
Showing 1 changed file with 9 additions and 33 deletions.
42 changes: 9 additions & 33 deletions src/plugins/axios.ts
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
/**
* @file 封装原生axios,在main.js和api层引用本文件
* @file 封装原生axios,在main.ts和api层引用本文件
* @author BoBo
* @copyright NanJing Anshare Tech .Com
* @createDate 2018年11月13日10:52:32
Expand All @@ -8,8 +8,6 @@ import axios from 'axios';
import { Message, MessageBox } from 'element-ui';// eslint-disable-line
import NProgress from 'nprogress'; // 全局进度条
import 'nprogress/nprogress.css'; // Progress 进度条样式
// 加密解密工具
import { Decrypt, Encrypt } from '@/utils/secret';
import store from '../store';

NProgress.configure({ showSpinner: false });
Expand All @@ -26,21 +24,12 @@ const service = axios.create({
// 拦截请求
service.interceptors.request.use(
(config) => {
// 支持传参加密
// 需要手动在http headers , set "encrypt = true"
const { encrypt } = config.headers;
const { data } = config;
// 全局进度条loading
NProgress.start();
if (store.getters.token && store.getters.token !== 'null') {
// 让每个请求携带自定义token
config.headers.Authorization = store.getters.token;
}
if (encrypt) {
config.data = {
encryptStr: Encrypt(JSON.stringify(data)),
};
}
return config;
},
(error) => {
Expand All @@ -58,7 +47,6 @@ service.interceptors.request.use(
service.interceptors.response.use(
(response) => {
const res = response.data;
// let { data } = res;
const { message, code } = res;

NProgress.done();
Expand All @@ -75,13 +63,6 @@ service.interceptors.response.use(
// 跳转登录页
window.location.reload(); // 为了重新实例化vue-router对象,避免bug
}, 1000);
} else if (code === 602) {
// 开发阶段参数异常
MessageBox.alert(`状态码:602,原因:${message}`, '接口参数异常', {
confirmButtonText: '我知道了',
type: 'warning',
showClose: false,
});
} else if (code === 500) {
// 极端情况服务器错误
MessageBox.alert(`状态码:500<br>接口:${response.request.responseURL}<br>原因:${message}`, '请截图并联系运维人员', {
Expand All @@ -91,7 +72,7 @@ service.interceptors.response.use(
customClass: 'msgBox',
showClose: true,
});
} else if (code === 400) {
} else {
// 业务失败情况统一拦截
MessageBox.alert(`原因:${message}`, '操作失败', {
confirmButtonText: '我知道了',
Expand All @@ -105,18 +86,13 @@ service.interceptors.response.use(
(error) => {
NProgress.done();
// http状态码200以外的情况
if (process.env.NODE_ENV !== 'test') {
// 请检查网络链接或联系管理员
const msg = '请检查网络链接或联系管理员。';
MessageBox.alert(`${error.message}${msg}`, '网络异常', {
confirmButtonText: '重试',
type: 'warning',
}).then(() => {
// 清空token
store.commit('SET_TOKEN', null);
window.location.reload(); // 为了重新实例化vue-router对象,避免bug
});
}
// 请检查网络链接或联系管理员
const msg = '请检查网络链接或联系管理员。';
MessageBox.alert(`${error.response.data.message}${msg}`, '网络异常', {
confirmButtonText: '重试',
type: 'warning',
});

return Promise.reject(error);
},
);
Expand Down

0 comments on commit 6f960c4

Please sign in to comment.