|
|
@@ -1,85 +1,89 @@
|
|
|
/**
|
|
|
* axios 实例
|
|
|
*/
|
|
|
- import axios from 'axios';
|
|
|
- import router from '@/router';
|
|
|
- import store from '@/store';
|
|
|
- import { MessageBox, Message } from 'element-ui';
|
|
|
- import { API_BASE_URL, TOKEN_HEADER_NAME, LAYOUT_PATH } from '@/config/setting';
|
|
|
- import { getToken, setToken } from './token-util';
|
|
|
- import { logout } from './page-tab-util';
|
|
|
- import JSONBIG from 'json-bigint';
|
|
|
- const service = axios.create({
|
|
|
- baseURL: API_BASE_URL,
|
|
|
- transformResponse: [
|
|
|
- function (data) {
|
|
|
- if (data instanceof Blob) {
|
|
|
- return data;
|
|
|
- }
|
|
|
- const json = JSONBIG({
|
|
|
- storeAsString: true
|
|
|
- });
|
|
|
- const res = json.parse(data);
|
|
|
- return res;
|
|
|
- }
|
|
|
- ]
|
|
|
- });
|
|
|
- /**
|
|
|
- * 添加请求拦截器
|
|
|
- */
|
|
|
- service.interceptors.request.use(
|
|
|
- (config) => {
|
|
|
- // 添加 token 到 header
|
|
|
- const token = getToken();
|
|
|
- if (token && config.headers) {
|
|
|
- config.headers.common[TOKEN_HEADER_NAME] = token;
|
|
|
- }
|
|
|
+import axios from 'axios';
|
|
|
+import router from '@/router';
|
|
|
+import store from '@/store';
|
|
|
+import { MessageBox, Message } from 'element-ui';
|
|
|
+import { API_BASE_URL, TOKEN_HEADER_NAME, LAYOUT_PATH } from '@/config/setting';
|
|
|
+import { getToken, setToken } from './token-util';
|
|
|
+import { logout } from './page-tab-util';
|
|
|
+import JSONBIG from 'json-bigint';
|
|
|
+const service = axios.create({
|
|
|
+ baseURL: API_BASE_URL,
|
|
|
+ transformResponse: [
|
|
|
+ function (data) {
|
|
|
+ if (data instanceof Blob) {
|
|
|
+ return data;
|
|
|
+ }
|
|
|
+ const json = JSONBIG({
|
|
|
+ storeAsString: true
|
|
|
+ });
|
|
|
+ const res = json.parse(data);
|
|
|
+ return res;
|
|
|
+ }
|
|
|
+ ]
|
|
|
+});
|
|
|
+/**
|
|
|
+ * 添加请求拦截器
|
|
|
+ */
|
|
|
+service.interceptors.request.use(
|
|
|
+ (config) => {
|
|
|
+ // 添加 token 到 header
|
|
|
+ const token = getToken();
|
|
|
+ if (token && config.headers) {
|
|
|
+ config.headers.common[TOKEN_HEADER_NAME] = token;
|
|
|
+ }
|
|
|
|
|
|
- return config;
|
|
|
- },
|
|
|
- (error) => {
|
|
|
- return Promise.reject(error);
|
|
|
- }
|
|
|
- );
|
|
|
+ return config;
|
|
|
+ },
|
|
|
+ (error) => {
|
|
|
+ return Promise.reject(error);
|
|
|
+ }
|
|
|
+);
|
|
|
|
|
|
- /**
|
|
|
- * 添加响应拦截器
|
|
|
- */
|
|
|
- service.interceptors.response.use(
|
|
|
- (res) => {
|
|
|
- // token 自动续期
|
|
|
- if (res.data.code == '-1' && res.config?.showErrorToast !== false&&res.data.message) {
|
|
|
- Message.error(res.data.message);
|
|
|
- }
|
|
|
- const token = res.headers[TOKEN_HEADER_NAME.toLowerCase()];
|
|
|
- if (token) {
|
|
|
- setToken(token);
|
|
|
- }
|
|
|
- return res;
|
|
|
- },
|
|
|
- (error) => {
|
|
|
- // 登录过期处理
|
|
|
- if (error?.response?.status === 401) {
|
|
|
- const currentPath = router.currentRoute.path;
|
|
|
- if (currentPath === LAYOUT_PATH) {
|
|
|
- logout(true);
|
|
|
- } else {
|
|
|
- MessageBox.alert('登录状态已过期, 请退出重新登录!', '系统提示', {
|
|
|
- confirmButtonText: '重新登录',
|
|
|
- callback: (action) => {
|
|
|
- if (action === 'confirm') {
|
|
|
- logout(false, currentPath);
|
|
|
- }
|
|
|
- },
|
|
|
- beforeClose: () => {
|
|
|
- MessageBox.close();
|
|
|
- }
|
|
|
- });
|
|
|
- }
|
|
|
- return Promise.reject(new Error(error.response.data?.message));
|
|
|
- }
|
|
|
- return Promise.reject(error);
|
|
|
- }
|
|
|
- );
|
|
|
+/**
|
|
|
+ * 添加响应拦截器
|
|
|
+ */
|
|
|
+service.interceptors.response.use(
|
|
|
+ (res) => {
|
|
|
+ // token 自动续期
|
|
|
+ if (
|
|
|
+ res.data.code == '-1' &&
|
|
|
+ res.config?.showErrorToast !== false &&
|
|
|
+ res.data.message
|
|
|
+ ) {
|
|
|
+ Message.error(res.data.message);
|
|
|
+ }
|
|
|
+ const token = res.headers[TOKEN_HEADER_NAME.toLowerCase()];
|
|
|
+ if (token) {
|
|
|
+ setToken(token);
|
|
|
+ }
|
|
|
+ return res;
|
|
|
+ },
|
|
|
+ (error) => {
|
|
|
+ // 登录过期处理
|
|
|
+ if (error?.response?.status === 401) {
|
|
|
+ const currentPath = router.currentRoute.path;
|
|
|
+ if (currentPath === LAYOUT_PATH) {
|
|
|
+ logout(true);
|
|
|
+ } else {
|
|
|
+ MessageBox.alert('登录状态已过期, 请退出重新登录!', '系统提示', {
|
|
|
+ confirmButtonText: '重新登录',
|
|
|
+ callback: (action) => {
|
|
|
+ if (action === 'confirm') {
|
|
|
+ logout(false, currentPath);
|
|
|
+ }
|
|
|
+ },
|
|
|
+ beforeClose: () => {
|
|
|
+ MessageBox.close();
|
|
|
+ }
|
|
|
+ });
|
|
|
+ }
|
|
|
+ return Promise.reject(new Error(error.response.data?.message));
|
|
|
+ }
|
|
|
+ return Promise.reject(error);
|
|
|
+ }
|
|
|
+);
|
|
|
|
|
|
- export default service;
|
|
|
+export default service;
|