From 8fd822ed0dbfaa793de8b0788d9849b7a8b153f2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=83=AD=E6=B0=B8=E8=B6=85?= <2090205686@qq.com> Date: Fri, 26 Sep 2025 14:19:17 +0800 Subject: [PATCH] =?UTF-8?q?perf=EF=BC=9A=E6=B7=BB=E5=8A=A0=E5=95=86?= =?UTF-8?q?=E5=93=81=E7=9A=84=E8=A7=84=E6=A0=BC=E5=8D=95=E4=BD=8D=E9=80=89?= =?UTF-8?q?=E9=A1=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/permission.js | 98 ++++++++++++---------- src/views/goods/goodsManage/addGoods.vue | 4 + src/views/goods/goodsManage/editGoods.vue | 10 ++- src/views/goods/goodsManage/seeDetails.vue | 4 + src/views/goods/goodsReview/auditGoods.vue | 4 + 5 files changed, 75 insertions(+), 45 deletions(-) diff --git a/src/permission.js b/src/permission.js index 1287cc1..830a9ae 100644 --- a/src/permission.js +++ b/src/permission.js @@ -1,69 +1,79 @@ -import router from './router' -import { ElMessage } from 'element-plus' -import NProgress from 'nprogress' -import 'nprogress/nprogress.css' -import { getToken } from '@/utils/auth' -import { isHttp, isPathMatch } from '@/utils/validate' -import { isRelogin } from '@/utils/request' -import useUserStore from '@/store/modules/user' -import useSettingsStore from '@/store/modules/settings' -import usePermissionStore from '@/store/modules/permission' +import router from "./router"; +import { ElMessage } from "element-plus"; +import NProgress from "nprogress"; +import "nprogress/nprogress.css"; +import { getToken } from "@/utils/auth"; +import { isHttp, isPathMatch } from "@/utils/validate"; +import { isRelogin } from "@/utils/request"; +import useUserStore from "@/store/modules/user"; +import useSettingsStore from "@/store/modules/settings"; +import usePermissionStore from "@/store/modules/permission"; -NProgress.configure({ showSpinner: false }) +NProgress.configure({ showSpinner: false }); -const whiteList = ['/sub-operation-admin/login', '/sub-operation-admin/register'] +const whiteList = [ + "/sub-operation-admin/login", + "/sub-operation-admin/register", +]; const isWhiteList = (path) => { - return whiteList.some(pattern => isPathMatch(pattern, path)) -} + return whiteList.some((pattern) => isPathMatch(pattern, path)); +}; router.beforeEach((to, from, next) => { - NProgress.start() + NProgress.start(); if (getToken()) { - to.meta.title && useSettingsStore().setTitle(to.meta.title) + to.meta.title && useSettingsStore().setTitle(to.meta.title); /* has token*/ - if (to.path === '/sub-operation-admin/login') { - next({ path: '/sub-operation-admin' }) - NProgress.done() + if (to.path === "/sub-operation-admin/login") { + next({ path: "/sub-operation-admin" }); + NProgress.done(); } else if (isWhiteList(to.path)) { - next() + next(); } else { if (useUserStore().roles.length === 0) { - isRelogin.show = true + isRelogin.show = true; // 判断当前用户是否已拉取完user_info信息 - useUserStore().getInfo().then(() => { - isRelogin.show = false - usePermissionStore().generateRoutes().then(accessRoutes => { - // 根据roles权限生成可访问的路由表 - accessRoutes.forEach(route => { - if (!isHttp(route.path)) { - router.addRoute(route) // 动态添加可访问路由表 - } - }) - next({ ...to, replace: true }) // hack方法 确保addRoutes已完成 + useUserStore() + .getInfo() + .then(() => { + isRelogin.show = false; + usePermissionStore() + .generateRoutes() + .then((accessRoutes) => { + // 根据roles权限生成可访问的路由表 + accessRoutes.forEach((route) => { + if (!isHttp(route.path)) { + router.addRoute(route); // 动态添加可访问路由表 + } + }); + next({ ...to, replace: true }); // hack方法 确保addRoutes已完成 + }); }) - }).catch(err => { - useUserStore().logOut().then(() => { - ElMessage.error(err) - next({ path: '/sub-operation-admin' }) - }) - }) + .catch((err) => { + useUserStore() + .logOut() + .then(() => { + ElMessage.error(err); + next({ path: "/sub-operation-admin" }); + }); + }); } else { - next() + next(); } } } else { // 没有token if (isWhiteList(to.path)) { // 在免登录白名单,直接进入 - next() + next(); } else { - next(`/sub-operation-admin/login?redirect=${to.fullPath}`) // 否则全部重定向到登录页 - NProgress.done() + next(`/sub-operation-admin/login?redirect=${to.fullPath}`); // 否则全部重定向到登录页 + NProgress.done(); } } -}) +}); router.afterEach(() => { - NProgress.done() -}) + NProgress.done(); +}); diff --git a/src/views/goods/goodsManage/addGoods.vue b/src/views/goods/goodsManage/addGoods.vue index 68da65f..1db51f3 100644 --- a/src/views/goods/goodsManage/addGoods.vue +++ b/src/views/goods/goodsManage/addGoods.vue @@ -84,6 +84,8 @@ + + @@ -131,6 +133,8 @@ + + diff --git a/src/views/goods/goodsManage/editGoods.vue b/src/views/goods/goodsManage/editGoods.vue index e8b9dfe..f2ac983 100644 --- a/src/views/goods/goodsManage/editGoods.vue +++ b/src/views/goods/goodsManage/editGoods.vue @@ -84,6 +84,8 @@ + + @@ -125,8 +127,14 @@ - + + + + + + + diff --git a/src/views/goods/goodsManage/seeDetails.vue b/src/views/goods/goodsManage/seeDetails.vue index fbaa794..ccdb6a6 100644 --- a/src/views/goods/goodsManage/seeDetails.vue +++ b/src/views/goods/goodsManage/seeDetails.vue @@ -80,6 +80,8 @@ + + @@ -123,6 +125,8 @@ + + diff --git a/src/views/goods/goodsReview/auditGoods.vue b/src/views/goods/goodsReview/auditGoods.vue index a9f79ca..bfa3567 100644 --- a/src/views/goods/goodsReview/auditGoods.vue +++ b/src/views/goods/goodsReview/auditGoods.vue @@ -80,6 +80,8 @@ + + @@ -123,6 +125,8 @@ + +