From 579ee3e4e6db68e88c8961fb274fae512d8a26da Mon Sep 17 00:00:00 2001 From: ByungCheol Date: Sat, 27 Jun 2026 19:51:49 +0900 Subject: [PATCH 1/2] =?UTF-8?q?feat:=20=EA=B2=8C=EC=8B=9C=ED=8C=90=20?= =?UTF-8?q?=EC=9E=91=EC=84=B1=EC=9D=BC=201=EC=9D=BC=20=EC=9D=B4=ED=9B=84?= =?UTF-8?q?=20=ED=91=9C=EA=B8=B0=20YYYYMMDD=20=E2=86=92=20YYYY.MM.DD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - formatRelative: 1시간 이내 N분 전 / 1일 이내 N시간 전 / 그 이상 YYYY.MM.DD - formatYmdDot 헬퍼 추가(기존 formatYmd 컴팩트 형식은 유지) Co-Authored-By: Claude Opus 4.8 --- src/utils/datetime.js | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/src/utils/datetime.js b/src/utils/datetime.js index b9d8aa2..dce5774 100644 --- a/src/utils/datetime.js +++ b/src/utils/datetime.js @@ -1,7 +1,7 @@ // 날짜/시간 표시 유틸 /** - * 1일 이내면 "방금 전 / N분 전 / N시간 전", 그 이상이면 YYYYMMDD 로 표시. + * 1시간 이내면 "방금 전 / N분 전", 1일 이내면 "N시간 전", 그 이상이면 YYYY.mm.dd 로 표시. */ export function formatRelative(value) { if (!value) return '-' @@ -17,7 +17,7 @@ export function formatRelative(value) { const diffHour = Math.floor(diffMin / 60) if (diffHour < 24) return `${diffHour}시간 전` - return formatYmd(date) + return formatYmdDot(date) } /** YYYYMMDD */ @@ -29,3 +29,13 @@ export function formatYmd(value) { const d = String(date.getDate()).padStart(2, '0') return `${y}${m}${d}` } + +/** YYYY.MM.DD */ +export function formatYmdDot(value) { + const date = value instanceof Date ? value : new Date(value) + if (Number.isNaN(date.getTime())) return String(value) + const y = date.getFullYear() + const m = String(date.getMonth() + 1).padStart(2, '0') + const d = String(date.getDate()).padStart(2, '0') + return `${y}.${m}.${d}` +} From dbe255cf1c9de7ad8eb3305801aaa66e0c208862 Mon Sep 17 00:00:00 2001 From: ByungCheol Date: Sat, 27 Jun 2026 19:56:01 +0900 Subject: [PATCH 2/2] =?UTF-8?q?feat:=20=EC=82=AC=EC=9D=B4=EB=93=9C?= =?UTF-8?q?=EB=B0=94=20=EB=A9=94=EB=89=B4=EC=97=90=20=EC=95=84=EC=9D=B4?= =?UTF-8?q?=EC=BD=98=20=EC=B6=94=EA=B0=80=20(lucide=20=EC=8A=A4=ED=83=80?= =?UTF-8?q?=EC=9D=BC=20=EC=9D=B8=EB=9D=BC=EC=9D=B8=20SVG)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 가계부/게시판/관리자 각 메뉴 항목에 18px 아이콘, 하단 내비와 톤 통일 - .menu-item flex 정렬, 활성 항목 아이콘 강조 Co-Authored-By: Claude Opus 4.8 --- src/components/layout/AppSidebar.vue | 81 ++++++++++++++++++++++++---- 1 file changed, 70 insertions(+), 11 deletions(-) diff --git a/src/components/layout/AppSidebar.vue b/src/components/layout/AppSidebar.vue index 42c0b56..12a0951 100644 --- a/src/components/layout/AppSidebar.vue +++ b/src/components/layout/AppSidebar.vue @@ -6,6 +6,20 @@ import { BOARDS } from '@/constants/boards' const auth = useAuthStore() const ui = useUiStore() + +// 메뉴 아이콘 (lucide 스타일 인라인 SVG path — 하단 내비와 동일 톤). 값은 정적/신뢰 마크업. +const icons = { + entries: '', + stats: '', + recurrings: '', + wallets: '', + categories: '', + budget: '', + tags: '', + board: '', + users: '', + sliders: '', +}