This commit is contained in:
2023-06-05 21:02:25 +08:00
parent bdbda8b68e
commit d778ceab61
41 changed files with 1259 additions and 94 deletions

24
cdTMP/src/hooks/logout.js Normal file
View File

@@ -0,0 +1,24 @@
import { useRouter } from 'vue-router'
import { Message } from '@arco-design/web-vue'
import { useUserStore } from '@/store'
export default function useUser() {
const router = useRouter()
const userStore = useUserStore()
const logout = async (logoutTo) => {
await userStore.logout()
const currentRoute = router.currentRoute.value
Message.success('登出成功')
router.push({
name: logoutTo && typeof logoutTo === 'string' ? logoutTo : 'login',
query: {
...router.currentRoute.value.query,
redirect: currentRoute.name,
},
})
}
return {
logout,
}
}

View 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
}
// 你可以添加任何规则
}
}