fix: restore Sense permission navigation (#44)

This commit is contained in:
QiuSW
2026-08-13 09:25:26 +08:00
parent cb3015a5b1
commit 048a6ec969
4 changed files with 62 additions and 13 deletions
+3 -11
View File
@@ -58,22 +58,14 @@ import { computed, ref } from 'vue'
import { useRouter } from 'vue-router'
import { useStore } from 'vuex'
import { buildNavigation } from './navigation'
const router = useRouter()
const store = useStore()
const collapsed = ref(false)
const navigation = computed(() => {
const root = router.getRoutes().find((route) => route.path === '/')
const permissions = store.getters['sense-identity/permissions'] || []
return (root?.children || [])
.filter((route) => route.meta?.title && !route.meta?.hidden)
.filter((route) => !route.meta?.permission || permissions.includes(route.meta.permission))
.map((route) => ({
path: route.path ? `/${route.path}`.replace('//', '/') : '/',
title: route.meta.title,
icon: route.meta.icon,
order: route.meta.order || 0
}))
.sort((left, right) => left.order - right.order)
return buildNavigation(router.getRoutes(), permissions)
})
async function logout() {
+18
View File
@@ -0,0 +1,18 @@
function buildNavigation(routes, permissions = []) {
const layout = routes
.filter((route) => route.path === '/' && Array.isArray(route.children) && route.children.length > 0)
.sort((left, right) => right.children.length - left.children.length)[0]
return (layout?.children || [])
.filter((route) => route.meta?.title && !route.meta?.hidden)
.filter((route) => !route.meta?.permission || permissions.includes(route.meta.permission))
.map((route) => ({
path: route.path ? `/${route.path}`.replace('//', '/') : '/',
title: route.meta.title,
icon: route.meta.icon,
order: route.meta.order || 0
}))
.sort((left, right) => left.order - right.order)
}
module.exports = { buildNavigation }