|
@@ -1,7 +1,8 @@
|
|
|
-import axios from 'axios'
|
|
|
-import { MessageBox, Message } from 'element-ui'
|
|
|
-import store from '@/store'
|
|
|
-import { getToken, getUserId } from '@/utils/auth'
|
|
|
+import axios from "axios";
|
|
|
+import { MessageBox, Message } from "element-ui";
|
|
|
+import store from "@/store";
|
|
|
+import router, { resetRouter } from "@/router";
|
|
|
+import { getToken, getUserId, removeToken } from "@/utils/auth";
|
|
|
// create an axios instance
|
|
|
// let baseURL
|
|
|
// if (process.env.NODE_ENV === "development") {
|
|
@@ -14,12 +15,12 @@ const service = axios.create({
|
|
|
//baseURL: process.env.VUE_APP_BASE_API, // url = base url + request url
|
|
|
baseURL: PLATFROM_CONFIG.baseURLCA,
|
|
|
// withCredentials: true, // send cookies when cross-domain requests
|
|
|
- timeout: 15000 // request timeout
|
|
|
-})
|
|
|
+ timeout: 15000, // request timeout
|
|
|
+});
|
|
|
|
|
|
// request interceptor
|
|
|
service.interceptors.request.use(
|
|
|
- config => {
|
|
|
+ (config) => {
|
|
|
// do something before request is sent
|
|
|
// config.headers['Content-Type'] = 'text/plain'
|
|
|
if (store.getters.token) {
|
|
@@ -27,70 +28,95 @@ service.interceptors.request.use(
|
|
|
// ['X-Token'] is a custom headers key
|
|
|
// please modify it according to the actual situation
|
|
|
// config.headers['X-Token'] = getToken()
|
|
|
- config.headers['token'] = getToken()
|
|
|
+ config.headers["token"] = getToken();
|
|
|
}
|
|
|
if (config.data) {
|
|
|
- config.data['OperatorId'] = getUserId()
|
|
|
+ config.data["OperatorId"] = getUserId();
|
|
|
}
|
|
|
- return config
|
|
|
+ return config;
|
|
|
},
|
|
|
- error => {
|
|
|
+ (error) => {
|
|
|
// do something with request error
|
|
|
- console.log(error) // for debug
|
|
|
- return Promise.reject(error)
|
|
|
+ console.log(error); // for debug
|
|
|
+ return Promise.reject(error);
|
|
|
}
|
|
|
-)
|
|
|
+);
|
|
|
|
|
|
// response interceptor
|
|
|
service.interceptors.response.use(
|
|
|
/**
|
|
|
* If you want to get http information such as headers or status
|
|
|
* Please return response => response
|
|
|
- */
|
|
|
+ */
|
|
|
|
|
|
/**
|
|
|
* Determine the request status by custom code
|
|
|
* Here is just an example
|
|
|
* You can also judge the status by HTTP Status Code
|
|
|
*/
|
|
|
- response => {
|
|
|
- const res = response.data
|
|
|
+ (response) => {
|
|
|
+ const res = response.data;
|
|
|
|
|
|
// if the custom code is not 20000, it is judged as an error.
|
|
|
- if (res.code != '0') {
|
|
|
+ if (res.code != "0") {
|
|
|
Message({
|
|
|
- message: res.message || 'Error',
|
|
|
- type: 'error',
|
|
|
- duration: 5 * 1000
|
|
|
- })
|
|
|
+ message: res.message || "Error",
|
|
|
+ type: "error",
|
|
|
+ duration: 5 * 1000,
|
|
|
+ });
|
|
|
|
|
|
// 50008: Illegal token; 50012: Other clients logged in; 50014: Token expired;
|
|
|
- if (res.code === 50008 || res.code === 50012 || res.code === 50014) {
|
|
|
+ if (res.code === 500 || res.code === 50012 || res.code === 50014) {
|
|
|
// to re-login
|
|
|
- MessageBox.confirm('You have been logged out, you can cancel to stay on this page, or log in again', 'Confirm logout', {
|
|
|
- confirmButtonText: 'Re-Login',
|
|
|
- cancelButtonText: 'Cancel',
|
|
|
- type: 'warning'
|
|
|
- }).then(() => {
|
|
|
- store.dispatch('user/resetToken').then(() => {
|
|
|
- location.reload()
|
|
|
- })
|
|
|
- })
|
|
|
+ MessageBox.confirm(
|
|
|
+ "You have been logged out, you can cancel to stay on this page, or log in again",
|
|
|
+ "Confirm logout",
|
|
|
+ {
|
|
|
+ confirmButtonText: "Re-Login",
|
|
|
+ cancelButtonText: "Cancel",
|
|
|
+ type: "warning",
|
|
|
+ }
|
|
|
+ ).then(async () => {
|
|
|
+ sessionStorage.removeItem("userName");
|
|
|
+ store.dispatch("app/toggleOutflag", false);
|
|
|
+ await store.dispatch("user/logout");
|
|
|
+ router.push(`/login`);
|
|
|
+ });
|
|
|
}
|
|
|
- return Promise.reject(new Error(res.message || 'Error'))
|
|
|
+ return Promise.reject(new Error(res.message || "Error"));
|
|
|
} else {
|
|
|
- return res
|
|
|
+ return res;
|
|
|
}
|
|
|
},
|
|
|
- error => {
|
|
|
- console.log('err' + error) // for debug
|
|
|
- Message({
|
|
|
- message: error.message,
|
|
|
- type: 'error',
|
|
|
- duration: 5 * 1000
|
|
|
- })
|
|
|
- return Promise.reject(error)
|
|
|
+ (error) => {
|
|
|
+ const des500 = `${error}`.split(" ").includes("500");
|
|
|
+ if (des500) {
|
|
|
+ Message({
|
|
|
+ message: "身份令牌过期或失效,即将重新登录",
|
|
|
+ type: "error",
|
|
|
+ duration: 3 * 1000,
|
|
|
+ onClose: async () => {
|
|
|
+ sessionStorage.clear();
|
|
|
+ removeToken(); // must remove token first
|
|
|
+ removeToken("codeToken");
|
|
|
+ removeToken("systemSet");
|
|
|
+ removeToken("userid");
|
|
|
+ store.dispatch("app/toggleOutflag", false);
|
|
|
+ await store.dispatch("user/resetToken");
|
|
|
+ resetRouter();
|
|
|
+ router.push(`/login`);
|
|
|
+ location.reload();
|
|
|
+ },
|
|
|
+ });
|
|
|
+ } else {
|
|
|
+ Message({
|
|
|
+ message: error.message,
|
|
|
+ type: "error",
|
|
|
+ duration: 5 * 1000,
|
|
|
+ });
|
|
|
+ }
|
|
|
+ return Promise.reject(error);
|
|
|
}
|
|
|
-)
|
|
|
+);
|
|
|
|
|
|
-export default service
|
|
|
+export default service;
|