import router from './router' import Performance from '@/tools/performance' import { usePermissionStore } from "@/store/permission" import { useUserStore } from "@/store/user" import { ipcRenderer } from "electron" export function usePermission() { let end = null const whiteList = ['/login','/remind'] // 不重定向白名单 router.beforeEach(async (to, from, next) => { if (to.path === '/login') { await ipcRenderer.invoke("toggle-main-window-resizable",false) await ipcRenderer.invoke("main-window-resize",{ width: 320, height: 504 }) } else { if (to.meta.toUrl) { ipcRenderer.invoke("exec-admin-view-js",`window.routerTo['${to.meta.toUrl}']()`) } } const { GenerateRoutes, routers } = usePermissionStore() const { getUserInfo, token, roles, logOut } = useUserStore() end = Performance.startExecute(`${from.path} => ${to.path} 路由耗时`) /// 路由性能监控 if (token) { if (to.path === '/login') { next({ path: '/' }) } else { next() } } else { if (whiteList.includes(to.path)) { next() } else { next('/login') } } setTimeout(() => { end() }, 0) }) router.afterEach(() => { }) }