Files
cdTestPlant3/cdTMP/src/hooks/permission.js

35 lines
1.2 KiB
JavaScript
Raw Normal View History

2023-06-05 21:02:25 +08:00
import { useUserStore } from "@/store"
export default function usePermission() {
const userStore = useUserStore()
return {
// 返回的函数可自定义路由权限
accessRouter(route) {
return (
!route.meta?.requiresAuth ||
!route.meta?.roles ||
route.meta?.roles?.includes("*") ||
route.meta?.roles?.includes(userStore.role)
)
},
2023-06-08 21:09:28 +08:00
// 返回第一个可访问的路径
2023-06-05 21:02:25 +08:00
findFirstPermissionRoute(_routers, role = "admin") {
const cloneRouters = [..._routers]
while (cloneRouters.length) {
const firstElement = cloneRouters.shift()
if (
firstElement?.meta?.roles?.find((el) => {
return el.includes("*") || el.includes(role)
})
)
return { name: firstElement.name }
if (firstElement?.children) {
cloneRouters.push(...firstElement.children)
}
}
return null
}
// 你可以添加任何规则
}
}