Commit cd775344 by wanglizhen

路由监听切换菜单上传

parent 3ddf4f00
...@@ -8,6 +8,7 @@ import { isRelogin } from '@/utils/request' ...@@ -8,6 +8,7 @@ import { isRelogin } from '@/utils/request'
import useUserStore from '@/store/modules/user' import useUserStore from '@/store/modules/user'
import useSettingsStore from '@/store/modules/settings' import useSettingsStore from '@/store/modules/settings'
import usePermissionStore from '@/store/modules/permission' import usePermissionStore from '@/store/modules/permission'
import useAppStore from '@/store/modules/app'
NProgress.configure({ showSpinner: false }) NProgress.configure({ showSpinner: false })
...@@ -20,6 +21,8 @@ const isWhiteList = (path) => { ...@@ -20,6 +21,8 @@ const isWhiteList = (path) => {
let isGeneratingRoutes = false let isGeneratingRoutes = false
router.beforeEach((to, from, next) => { router.beforeEach((to, from, next) => {
changeMenu(to)
NProgress.start() NProgress.start()
if (getToken()) { if (getToken()) {
to.meta.title && useSettingsStore().setTitle(to.meta.title) to.meta.title && useSettingsStore().setTitle(to.meta.title)
...@@ -30,7 +33,7 @@ router.beforeEach((to, from, next) => { ...@@ -30,7 +33,7 @@ router.beforeEach((to, from, next) => {
} else if (isWhiteList(to.path)) { } else if (isWhiteList(to.path)) {
next() next()
} else { } else {
// 防止重复生成路由 // 防止重复生成路由
if (isGeneratingRoutes) { if (isGeneratingRoutes) {
next() next()
return return
...@@ -76,6 +79,23 @@ router.beforeEach((to, from, next) => { ...@@ -76,6 +79,23 @@ router.beforeEach((to, from, next) => {
} }
}) })
// 监听路由变化更换菜单
const changeMenu = (to) => {
const { path } = to;
const navList = JSON.parse(sessionStorage.getItem('navList')) || [];
if (navList.length === 0) return;
const menuObj = navList.find((item) => {
const itemPath = item.submenu.length > 0 ? `/${path.split('/').filter(Boolean)[0]}` : path;
return itemPath === item.url;
});
if (!menuObj || menuObj.type === '1') {
useAppStore().setNavStatus({ type: 'manage' });
} else if (menuObj.type === '2') {
useAppStore().setNavStatus({ type: 'project' });
}
}
router.afterEach(() => { router.afterEach(() => {
NProgress.done() NProgress.done()
}) })
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论