| | |
| | | <script setup> |
| | | import { onMounted } from 'vue' |
| | | import { computed } from 'vue' |
| | | import { useRoute, useRouter } from 'vue-router' |
| | | import AdminMenuItem from '@/components/AdminMenuItem.vue' |
| | | import { adminMenu } from '@/config/adminMenu' |
| | | import { filterAdminMenu } from '@/config/adminMenu' |
| | | import { useAuthStore } from '@/stores/auth' |
| | | |
| | | const route = useRoute() |
| | | const router = useRouter() |
| | | const authStore = useAuthStore() |
| | | onMounted(() => authStore.loadUser()) |
| | | const visibleMenu = computed(() => filterAdminMenu(authStore.user?.menuCodes)) |
| | | |
| | | const handleLogout = async () => { |
| | | await authStore.logout() |
| | |
| | | router |
| | | class="side-menu" |
| | | > |
| | | <AdminMenuItem v-for="item in adminMenu" :key="item.code" :item="item" /> |
| | | <AdminMenuItem v-for="item in visibleMenu" :key="item.code" :item="item" /> |
| | | </el-menu> |
| | | </aside> |
| | | <main class="main-panel"> |