From 5186227a467bd34dc253e64b23bc96d3a07bb399 Mon Sep 17 00:00:00 2001
From: zhangzengfei <zhangzengfei@smartai.com>
Date: 星期三, 17 十一月 2021 17:39:53 +0800
Subject: [PATCH] 添加用户权限控制

---
 src/utils/request.js |  114 +++++++++++++++++++++++++++++----------------------------
 1 files changed, 58 insertions(+), 56 deletions(-)

diff --git a/src/utils/request.js b/src/utils/request.js
index 272a731..b06ceab 100644
--- a/src/utils/request.js
+++ b/src/utils/request.js
@@ -1,5 +1,5 @@
-import Vue from 'vue'
-import axios from 'axios'
+import Vue from "vue";
+import axios from "axios";
 import {
   baseURL,
   contentType,
@@ -10,116 +10,118 @@
   successCode,
   tokenName,
   loginInterception,
-} from '@/config'
-import store from '@/store'
-import qs from 'qs'
-import router from '@/router'
-import { isArray } from '@/utils/validate'
+} from "@/config";
+import store from "@/store";
+import qs from "qs";
+import router from "@/router";
+import { isArray } from "@/utils/validate";
 
-let loadingInstance
+let loadingInstance;
 
 /**
- * @author chuzhixin 1204505056@qq.com 锛堜笉鎯充繚鐣檃uthor鍙垹闄わ級
  * @description 澶勭悊code寮傚父
  * @param {*} code
  * @param {*} msg
  */
 const handleCode = (code, msg) => {
+  console.log(code, msg);
   switch (code) {
     case invalidCode:
-      Vue.prototype.$baseMessage(msg || `鍚庣鎺ュ彛${code}寮傚父`, 'error')
-      store.dispatch('user/resetAccessToken').catch(() => {})
+      Vue.prototype.$baseMessage(msg || `鍚庣鎺ュ彛${code}寮傚父`, "error");
+      store.dispatch("user/resetAccessToken").catch(() => {});
       if (loginInterception) {
-        location.reload()
+        location.reload();
       }
-      break
+      break;
     case noPermissionCode:
-      router.push({ path: '/401' }).catch(() => {})
-      break
+      router.push({ path: "/401" }).catch(() => {});
+      break;
     default:
-      Vue.prototype.$baseMessage(msg || `鍚庣鎺ュ彛${code}寮傚父`, 'error')
-      break
+      Vue.prototype.$baseMessage(msg || `鍚庣鎺ュ彛${code}寮傚父`, "error");
+      break;
   }
-}
+};
 
 const instance = axios.create({
   baseURL,
   timeout: requestTimeout,
   headers: {
-    'Content-Type': contentType,
+    "Content-Type": contentType,
   },
-})
+});
 
 instance.interceptors.request.use(
   (config) => {
-    if (store.getters['user/accessToken']) {
-      config.headers[tokenName] = store.getters['user/accessToken']
+    if (store.getters["user/accessToken"]) {
+      config.headers["Authorization"] =
+        "Bearer " + store.getters["user/accessToken"];
     }
     //杩欓噷浼氳繃婊ゆ墍鏈変负绌恒��0銆乫alse鐨刱ey锛屽鏋滀笉闇�瑕佽鑷娉ㄩ噴
     if (config.data)
       config.data = Vue.prototype.$baseLodash.pickBy(
         config.data,
         Vue.prototype.$baseLodash.identity
-      )
+      );
     if (
       config.data &&
-      config.headers['Content-Type'] ===
-        'application/x-www-form-urlencoded;charset=UTF-8'
+      config.headers["Content-Type"] ===
+        "application/x-www-form-urlencoded;charset=UTF-8"
     )
-      config.data = qs.stringify(config.data)
+      config.data = qs.stringify(config.data);
     if (debounce.some((item) => config.url.includes(item)))
-      loadingInstance = Vue.prototype.$baseLoading()
-    return config
+      loadingInstance = Vue.prototype.$baseLoading();
+    return config;
   },
   (error) => {
-    return Promise.reject(error)
+    return Promise.reject(error);
   }
-)
+);
 
 instance.interceptors.response.use(
   (response) => {
-    if (loadingInstance) loadingInstance.close()
+    if (loadingInstance) loadingInstance.close();
 
-    const { data, config } = response
-    const { code, msg } = data
+    const { data, config } = response;
+    const { code, msg } = data;
+
     // 鎿嶄綔姝e父Code鏁扮粍
     const codeVerificationArray = isArray(successCode)
       ? [...successCode]
-      : [...[successCode]]
+      : [...[successCode]];
     // 鏄惁鎿嶄綔姝e父
     if (codeVerificationArray.includes(code)) {
-      return data
+      return data;
     } else {
-      handleCode(code, msg)
+      handleCode(code, msg);
       return Promise.reject(
-        'vue-admin-beautiful璇锋眰寮傚父鎷︽埅:' +
-          JSON.stringify({ url: config.url, code, msg }) || 'Error'
-      )
+        "璇锋眰寮傚父鎷︽埅:" + JSON.stringify({ url: config.url, code, msg }) ||
+          "Error"
+      );
     }
   },
   (error) => {
-    if (loadingInstance) loadingInstance.close()
-    const { response, message } = error
+    if (loadingInstance) loadingInstance.close();
+    const { response, message } = error;
     if (error.response && error.response.data) {
-      const { status, data } = response
-      handleCode(status, data.msg || message)
-      return Promise.reject(error)
+      const { status, data } = response;
+      handleCode(status, data.msg || message);
+      return Promise.reject(error);
     } else {
-      let { message } = error
-      if (message === 'Network Error') {
-        message = '鍚庣鎺ュ彛杩炴帴寮傚父'
+      let { message } = error;
+      if (message === "Network Error") {
+        message = "鍚庣鎺ュ彛杩炴帴寮傚父";
       }
-      if (message.includes('timeout')) {
-        message = '鍚庣鎺ュ彛璇锋眰瓒呮椂'
+      if (message.includes("timeout")) {
+        message = "鍚庣鎺ュ彛璇锋眰瓒呮椂";
       }
-      if (message.includes('Request failed with status code')) {
-        const code = message.substr(message.length - 3)
-        message = '鍚庣鎺ュ彛' + code + '寮傚父'
+      if (message.includes("Request failed with status code")) {
+        const code = message.substr(message.length - 3);
+        message = "鍚庣鎺ュ彛" + code + "寮傚父";
       }
-      Vue.prototype.$baseMessage(message || `鍚庣鎺ュ彛鏈煡寮傚父`, 'error')
-      return Promise.reject(error)
+      Vue.prototype.$baseMessage(message || `鍚庣鎺ュ彛鏈煡寮傚父`, "error");
+      return Promise.reject(error);
     }
   }
-)
+);
 
-export default instance
+export default instance;

--
Gitblit v1.8.0