0099
This commit is contained in:
33
cdTMP/src/hooks/permission.js
Normal file
33
cdTMP/src/hooks/permission.js
Normal file
@@ -0,0 +1,33 @@
|
||||
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)
|
||||
)
|
||||
},
|
||||
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
|
||||
}
|
||||
// 你可以添加任何规则
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user