From 241d0f098f132ef2d6c49e40a6d2baa18f40f8ad Mon Sep 17 00:00:00 2001 From: Liu Fengyu Date: Thu, 30 Jul 2020 16:59:17 +0800 Subject: [PATCH] =?UTF-8?q?update:=20=E7=AE=80=E5=8C=96setting.js=20footer?= =?UTF-8?q?Copyright,githubCorner=20router/index.js=20routerMode=20history?= =?UTF-8?q?=E6=97=B6=EF=BC=8Cbase=E6=B7=BB=E5=8A=A0=20=E4=BC=98=E5=8C=96sr?= =?UTF-8?q?c/utils/request.js=20codeVerification=E9=80=BB=E8=BE=91=20fix:?= =?UTF-8?q?=20typo=E9=94=99=E8=AF=AF=20=E6=AF=94=E8=BE=83=20=3D=3D=20?= =?UTF-8?q?=E5=8F=AF=E8=83=BD=E5=AF=BC=E8=87=B4=E6=84=8F=E5=A4=96=E7=B1=BB?= =?UTF-8?q?=E5=9E=8B=E5=BC=BA=E5=88=B6=20=E4=BB=8E=20dispatch=20=E8=BF=94?= =?UTF-8?q?=E5=9B=9E=E7=9A=84=20Promise=20=E8=A2=AB=E5=BF=BD=E7=95=A5=20?= =?UTF-8?q?=E4=BB=8E=20push=20=E8=BF=94=E5=9B=9E=E7=9A=84=20Promise=20?= =?UTF-8?q?=E8=A2=AB=E5=BF=BD=E7=95=A5=20=E5=BC=82=E6=AD=A5=E5=87=BD?= =?UTF-8?q?=E6=95=B0=E8=B0=83=E7=94=A8=E7=BC=BA=E5=B0=91=20await?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/config/permission.js | 2 +- src/config/settings.js | 6 +++--- src/router/index.js | 4 +++- src/utils/request.js | 36 +++++++++++++----------------------- 4 files changed, 20 insertions(+), 28 deletions(-) diff --git a/src/config/permission.js b/src/config/permission.js index 0b4eacf..530fb64 100644 --- a/src/config/permission.js +++ b/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"); diff --git a/src/config/settings.js b/src/config/settings.js index 988f46b..0fbb731 100644 --- a/src/config/settings.js +++ b/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, //缓存路由的最大数量 diff --git a/src/router/index.js b/src/router/index.js index b76a5c2..63944b1 100644 --- a/src/router/index.js +++ b/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, diff --git a/src/utils/request.js b/src/utils/request.js index 686412a..cb9b3e7 100644 --- a/src/utils/request.js +++ b/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")) {