Merge branch 'dev'
Deploy / deploy (push) Successful in 20s
CI / build (push) Failing after 11m11s

This commit is contained in:
ByungCheol
2026-06-03 19:03:58 +09:00
4 changed files with 21 additions and 20 deletions
+11 -15
View File
@@ -1,14 +1,10 @@
<script setup> <script setup>
import { computed } from 'vue' import { RouterLink } from 'vue-router'
import { RouterLink, useRoute } from 'vue-router'
import { useAuthStore } from '@/stores/auth' import { useAuthStore } from '@/stores/auth'
import { useUiStore } from '@/stores/ui' import { useUiStore } from '@/stores/ui'
const auth = useAuthStore() const auth = useAuthStore()
const ui = useUiStore() const ui = useUiStore()
const route = useRoute()
// 가계부 섹션에 있을 때만 하위 메뉴 노출
const inAccount = computed(() => route.path.startsWith('/account'))
</script> </script>
<template> <template>
@@ -19,18 +15,18 @@ const inAccount = computed(() => route.path.startsWith('/account'))
</div> </div>
<nav class="menu"> <nav class="menu">
<RouterLink to="/" class="menu-item"></RouterLink> <RouterLink to="/" class="menu-item"></RouterLink>
<RouterLink v-if="auth.isAuthenticated" to="/board" class="menu-item">자유게시판</RouterLink> <template v-if="auth.isAuthenticated">
<RouterLink v-if="auth.isAuthenticated" to="/account" class="menu-item">가계부</RouterLink> <RouterLink to="/account/entries" class="menu-item">가계부 내역</RouterLink>
<template v-if="auth.isAuthenticated && inAccount"> <RouterLink to="/account/stats" class="menu-item">통계</RouterLink>
<RouterLink to="/account/entries" class="menu-item sub">가계부 내역</RouterLink> <RouterLink to="/account/recurrings" class="menu-item">정기 거래</RouterLink>
<RouterLink to="/account/recurrings" class="menu-item sub">정기 거래</RouterLink> <RouterLink to="/account/wallets" class="menu-item">계좌 관리</RouterLink>
<RouterLink to="/account/wallets" class="menu-item sub">계좌 관리</RouterLink> <RouterLink to="/account/categories" class="menu-item">분류 관리</RouterLink>
<RouterLink to="/account/categories" class="menu-item sub">분류 관리</RouterLink> <RouterLink to="/account/budget" class="menu-item">예산 설정</RouterLink>
<RouterLink to="/account/budget" class="menu-item sub">예산 설정</RouterLink> <RouterLink to="/account/tags" class="menu-item">태그 관리</RouterLink>
<RouterLink to="/account/tags" class="menu-item sub">태그 관리</RouterLink> <RouterLink to="/board" class="menu-item">자유게시판</RouterLink>
</template> </template>
<RouterLink v-if="auth.user?.role === 'ADMIN'" to="/users" class="menu-item">회원 관리</RouterLink> <RouterLink v-if="auth.user?.role === 'ADMIN'" to="/users" class="menu-item">회원 관리</RouterLink>
<RouterLink v-if="auth.user?.role === 'ADMIN'" to="/admin/tags" class="menu-item">태그 관리</RouterLink> <RouterLink v-if="auth.user?.role === 'ADMIN'" to="/admin/tags" class="menu-item">태그 관리(관리자)</RouterLink>
</nav> </nav>
</aside> </aside>
</template> </template>
+8 -3
View File
@@ -48,10 +48,9 @@ const router = createRouter({
meta: { requiresAuth: true, requiresAdmin: true }, meta: { requiresAuth: true, requiresAdmin: true },
}, },
{ {
// 구 가계부 대시보드 → 내역으로 (대시보드 정보는 홈/통계로 이전)
path: '/account', path: '/account',
name: 'account', redirect: '/account/entries',
component: () => import('../views/account/AccountDashboardView.vue'),
meta: { requiresAuth: true },
}, },
{ {
path: '/account/entries', path: '/account/entries',
@@ -59,6 +58,12 @@ const router = createRouter({
component: () => import('../views/account/AccountView.vue'), component: () => import('../views/account/AccountView.vue'),
meta: { requiresAuth: true }, meta: { requiresAuth: true },
}, },
{
path: '/account/stats',
name: 'account-stats',
component: () => import('../views/account/AccountDashboardView.vue'),
meta: { requiresAuth: true },
},
{ {
path: '/account/tags', path: '/account/tags',
name: 'account-tags', name: 'account-tags',
+1 -1
View File
@@ -35,8 +35,8 @@ function won(n) {
// 가계부 주요 화면 바로가기 // 가계부 주요 화면 바로가기
const shortcuts = [ const shortcuts = [
{ to: '/account', icon: '📊', label: '대시보드', desc: '한눈에 보기' },
{ to: '/account/entries', icon: '📒', label: '가계부 내역', desc: '수입·지출 기록' }, { to: '/account/entries', icon: '📒', label: '가계부 내역', desc: '수입·지출 기록' },
{ to: '/account/stats', icon: '📊', label: '통계', desc: '차트로 보기' },
{ to: '/account/wallets', icon: '🏦', label: '계좌 관리', desc: '자산·부채' }, { to: '/account/wallets', icon: '🏦', label: '계좌 관리', desc: '자산·부채' },
{ to: '/account/budget', icon: '🎯', label: '예산 설정', desc: '예산 대비 지출' }, { to: '/account/budget', icon: '🎯', label: '예산 설정', desc: '예산 대비 지출' },
{ to: '/account/recurrings', icon: '🔁', label: '정기 거래', desc: '반복 수입·지출' }, { to: '/account/recurrings', icon: '🔁', label: '정기 거래', desc: '반복 수입·지출' },
+1 -1
View File
@@ -258,7 +258,7 @@ onMounted(async () => {
<template> <template>
<section class="dash"> <section class="dash">
<header class="head"> <header class="head">
<h1>가계부 대시보드</h1> <h1>통계</h1>
</header> </header>
<div class="month-nav"> <div class="month-nav">