Quellcode durchsuchen

Merge pull request #72 from fwfmiao/master

update
good luck vor 4 Jahren
Ursprung
Commit
e2e8506c08
4 geänderte Dateien mit 20 neuen und 28 gelöschten Zeilen
  1. 1 1
      src/config/permission.js
  2. 3 3
      src/config/settings.js
  3. 3 1
      src/router/index.js
  4. 13 23
      src/utils/request.js

+ 1 - 1
src/config/permission.js

@@ -42,7 +42,7 @@ router.beforeResolve(async (to, from, next) => {
           let permissions;
           if (!loginInterception) {
             //settings.js loginInterception为false时,创建虚拟权限
-            store.dispatch("user/setPermissions", ["admin"]);
+            await store.dispatch("user/setPermissions", ["admin"]);
             permissions = ["admin"];
           } else {
             permissions = await store.dispatch("user/getUserInfo");

+ 3 - 3
src/config/settings.js

@@ -3,7 +3,7 @@
  * @description 全局变量配置
  */
 module.exports = {
-  // 开发以及部署时的URL
+  // 开发以及部署时的URL 如"/test/"
   publicPath: "",
   // 生产环境构建文件的目录名
   outputDir: "dist",
@@ -29,9 +29,9 @@ module.exports = {
   //烦请保留package.json作者信息 保留版权可免费商用 如需去除并自定义为自己企业的版权请联系群主QQ 1204505056 需支付299元 恶意修改发生纠纷及出现任何问题 由修改人自行承担
   copyright: process.env.VUE_APP_AUTHOR,
   //是否显示页面底部版权信息,建议您显示,当然您也可以选择不显示,不管您是付费用户还是未付费用户您都有选择显示或者不显示的权利
-  footerCopyright: process.env.NODE_ENV !== "development" ? true : false,
+  footerCopyright: process.env.NODE_ENV !== "development",
   //是否显示右上角github图标
-  githubCorner: process.env.NODE_ENV !== "development" ? true : false,
+  githubCorner: process.env.NODE_ENV !== "development",
   //是否显示顶部进度条
   progressBar: true,
   //缓存路由的最大数量

+ 3 - 1
src/router/index.js

@@ -7,7 +7,7 @@ import Vue from "vue";
 import VueRouter from "vue-router";
 import Layout from "@/layouts";
 import EmptyLayout from "@/layouts/EmptyLayout";
-import { routerMode } from "@/config/settings";
+import { publicPath, routerMode } from "@/config/settings";
 
 Vue.use(VueRouter);
 export const constantRoutes = [
@@ -468,6 +468,7 @@ export const asyncRoutes = [
 ];
 
 const router = new VueRouter({
+  base: routerMode === "history" ? publicPath : "",
   mode: routerMode,
   scrollBehavior: () => ({
     y: 0,
@@ -484,6 +485,7 @@ VueRouter.prototype.push = function push(location, onResolve, onReject) {
 
 export function resetRouter() {
   router.matcher = new VueRouter({
+    base: routerMode === "history" ? publicPath : "",
     mode: routerMode,
     scrollBehavior: () => ({
       y: 0,

+ 13 - 23
src/utils/request.js

@@ -15,7 +15,7 @@ import store from "@/store";
 import qs from "qs";
 import router from "@/router";
 import _ from "lodash";
-import { isArray, isNumber } from "@/utils/validate";
+import { isArray } from "@/utils/validate";
 
 const service = axios.create({
   baseURL,
@@ -31,7 +31,7 @@ service.interceptors.request.use(
       config.headers[tokenName] = store.getters["user/accessToken"];
     }
     if (config.data) {
-      //这里会过滤所有为空、0、fasle的key,如果不需要请自行注释
+      //这里会过滤所有为空、0、false的key,如果不需要请自行注释
       config.data = _.pickBy(config.data, _.identity);
     }
     if (process.env.NODE_ENV !== "preview") {
@@ -76,29 +76,21 @@ service.interceptors.response.use(
     }
     const { status, data, config } = response;
     const { code, msg } = data;
-    let codeVerification = "";
-
-    if (isNumber(successCode)) {
-      codeVerification = successCode;
-    }
-    if (isArray(successCode)) {
-      for (let i = 0; i < successCode.length; i++) {
-        if (code === successCode[i]) {
-          codeVerification = successCode[i];
-          break;
-        }
-      }
-    }
-    if (code != codeVerification) {
+    // 操作正常Code数组
+    let codeVerificationArray = isArray(successCode)
+      ? [...successCode]
+      : [...[successCode]];
+    // 是否操作正常
+    if (codeVerificationArray.includes(code)) {
+      return data;
+    } else {
       switch (code) {
         case invalidCode:
           errorMsg(msg || `后端接口${code}异常`);
-          store.dispatch("user/resetAccessToken");
+          store.dispatch("user/resetAccessToken").catch(() => {});
           break;
         case noPermissionCode:
-          router.push({
-            path: "/401",
-          });
+          router.push({ path: "/401" }).catch(() => {});
           break;
         default:
           errorMsg(msg || `后端接口${code}异常`);
@@ -108,8 +100,6 @@ service.interceptors.response.use(
         "vue-admin-beautiful请求异常拦截:" +
           JSON.stringify({ url: config.url, code, msg }) || "Error"
       );
-    } else {
-      return data;
     }
   },
   (error) => {
@@ -118,7 +108,7 @@ service.interceptors.response.use(
     }
     /*网络连接过程异常处理*/
     let { message } = error;
-    if (message == "Network Error") {
+    if (message === "Network Error") {
       message = "后端接口连接异常";
     }
     if (message.includes("timeout")) {