filter: hide pagetype and workspace menu items for non-System User

This commit is contained in:
jingrow 2025-11-18 23:37:49 +08:00
parent 76255f6757
commit 394f867eb1

View File

@ -1,5 +1,6 @@
import { defineStore } from 'pinia'
import { computed, ref } from 'vue'
import { useAuthStore } from './auth'
export interface AppMenuItem {
id: string
@ -163,7 +164,25 @@ export const useMenuStore = defineStore('menu', () => {
persist()
}
const visibleItems = computed(() => items.value.filter(m => !m.hidden))
const visibleItems = computed(() => {
const authStore = useAuthStore()
const userType = authStore.user?.user_type
// 非 System User 用户类型不显示 pagetype 和 workspace 类型的菜单项
const isSystemUser = userType === 'System User'
return items.value.filter(m => {
// 过滤隐藏的菜单项
if (m.hidden) return false
// 非 System User 过滤掉 pagetype 和 workspace 类型
if (!isSystemUser && (m.type === 'pagetype' || m.type === 'workspace')) {
return false
}
return true
})
})
return {
items,