- 사이드바: '가계부' 상위 메뉴 제거, 단일 레벨로(홈/가계부 내역/통계/정기거래/계좌/분류/예산/태그/자유게시판) - 자유게시판을 가계부 메뉴들 아래로 이동 - 홈(/)을 통합 대시보드로, 기존 가계부 대시보드 차트는 통계(/account/stats)로 이동 - /account → /account/entries 리다이렉트, 대시보드 제목 '통계'로 Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
@@ -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
@@ -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',
|
||||||
|
|||||||
@@ -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: '반복 수입·지출' },
|
||||||
|
|||||||
@@ -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">
|
||||||
|
|||||||
Reference in New Issue
Block a user