권한, 사용자, 메뉴 등에 대한 기능 업데이트
This commit is contained in:
@@ -12,49 +12,31 @@
|
||||
|
||||
<div class="collapse navbar-collapse" id="navbarNav">
|
||||
<ul class="navbar-nav me-auto">
|
||||
<li class="nav-item">
|
||||
<NuxtLink class="nav-link" to="/" active-class="active">
|
||||
<i class="bi bi-house me-1"></i> 대시보드
|
||||
</NuxtLink>
|
||||
</li>
|
||||
<li class="nav-item">
|
||||
<NuxtLink class="nav-link" to="/report/weekly" active-class="active">
|
||||
<i class="bi bi-journal-text me-1"></i> 주간보고
|
||||
</NuxtLink>
|
||||
</li>
|
||||
<li class="nav-item">
|
||||
<NuxtLink class="nav-link" to="/report/summary" active-class="active">
|
||||
<i class="bi bi-collection me-1"></i> 취합보고
|
||||
</NuxtLink>
|
||||
</li>
|
||||
<li class="nav-item">
|
||||
<NuxtLink class="nav-link" to="/project" active-class="active">
|
||||
<i class="bi bi-folder me-1"></i> 프로젝트
|
||||
</NuxtLink>
|
||||
</li>
|
||||
<li class="nav-item">
|
||||
<NuxtLink class="nav-link" to="/employee" active-class="active">
|
||||
<i class="bi bi-people me-1"></i> 직원관리
|
||||
</NuxtLink>
|
||||
</li>
|
||||
<li class="nav-item">
|
||||
<NuxtLink class="nav-link" to="/feedback" active-class="active">
|
||||
<i class="bi bi-lightbulb me-1"></i> 개선의견
|
||||
</NuxtLink>
|
||||
</li>
|
||||
<!-- 관리자 메뉴 (coziny@gmail.com 전용) -->
|
||||
<li class="nav-item dropdown" v-if="isAdmin">
|
||||
<a class="nav-link dropdown-toggle" href="#" role="button" data-bs-toggle="dropdown">
|
||||
<i class="bi bi-gear me-1"></i> 관리자
|
||||
</a>
|
||||
<ul class="dropdown-menu">
|
||||
<li>
|
||||
<NuxtLink class="dropdown-item" to="/admin/bulk-import">
|
||||
<i class="bi bi-file-earmark-arrow-up me-2"></i>주간보고 일괄등록
|
||||
</NuxtLink>
|
||||
</li>
|
||||
</ul>
|
||||
</li>
|
||||
<!-- 동적 메뉴 렌더링 -->
|
||||
<template v-for="menu in userMenus" :key="menu.menuId">
|
||||
<!-- 자식이 없는 메뉴 -->
|
||||
<li class="nav-item" v-if="!menu.children || menu.children.length === 0">
|
||||
<NuxtLink class="nav-link" :to="menu.menuPath || '/'" active-class="active">
|
||||
<i :class="['bi', menu.menuIcon, 'me-1']" v-if="menu.menuIcon"></i>
|
||||
{{ menu.menuName }}
|
||||
</NuxtLink>
|
||||
</li>
|
||||
<!-- 자식이 있는 메뉴 (드롭다운) -->
|
||||
<li class="nav-item dropdown" v-else>
|
||||
<a class="nav-link dropdown-toggle" href="#" role="button" data-bs-toggle="dropdown">
|
||||
<i :class="['bi', menu.menuIcon, 'me-1']" v-if="menu.menuIcon"></i>
|
||||
{{ menu.menuName }}
|
||||
</a>
|
||||
<ul class="dropdown-menu">
|
||||
<li v-for="child in menu.children" :key="child.menuId">
|
||||
<NuxtLink class="dropdown-item" :to="child.menuPath || '/'">
|
||||
<i :class="['bi', child.menuIcon, 'me-2']" v-if="child.menuIcon"></i>
|
||||
{{ child.menuName }}
|
||||
</NuxtLink>
|
||||
</li>
|
||||
</ul>
|
||||
</li>
|
||||
</template>
|
||||
</ul>
|
||||
|
||||
<!-- 사용자 정보 -->
|
||||
@@ -73,11 +55,9 @@
|
||||
</template>
|
||||
|
||||
<script setup lang="ts">
|
||||
const { currentUser, logout } = useAuth()
|
||||
const { currentUser, userMenus, logout } = useAuth()
|
||||
const router = useRouter()
|
||||
|
||||
const isAdmin = computed(() => currentUser.value?.employeeEmail === 'coziny@gmail.com')
|
||||
|
||||
async function handleLogout() {
|
||||
await logout()
|
||||
router.push('/login')
|
||||
|
||||
Reference in New Issue
Block a user