From cb309cf0fa1fd1e76aef44511ccc0914cae7a339 Mon Sep 17 00:00:00 2001 From: zenn Date: Thu, 23 Apr 2026 15:55:09 +0900 Subject: [PATCH] =?UTF-8?q?v0.1.54=20-=20=ED=86=B5=EA=B3=84=20=EA=B7=B8?= =?UTF-8?q?=EB=9E=98=ED=94=84=20=EB=B0=98=EC=9D=91=ED=98=95=20=ED=8F=AD=20?= =?UTF-8?q?=EC=A1=B0=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- HANDOFF.md | 1 + src/App.vue | 4 + src/components/StatsDashboard.vue | 141 +++++++++++++++++++++++++++--- 3 files changed, 135 insertions(+), 11 deletions(-) diff --git a/HANDOFF.md b/HANDOFF.md index d667629..78f4aa9 100644 --- a/HANDOFF.md +++ b/HANDOFF.md @@ -218,6 +218,7 @@ - READ NEXT는 내일 첫 작업과 오늘 미처리 할 일 개수만 보여주도록 줄였고, 오늘 코멘트 반복 노출은 제거했다. - 플래너 본문 시간 라벨은 `총 시간`에서 `FOCUSED TIME`으로 바꿨다. 인쇄 CSS에서 COMMENT/FOCUSED TIME 라벨이 잘리지 않도록 부모 overflow를 열고, COMMENT는 남는 폭을 채우며 FOCUSED TIME은 오른쪽 210px 칸에 붙도록 조정했다. - Docker 배포용 루트 `.env`와 개발용 `.env.dev`를 분리했다. `docker-compose.yml`은 운영 `.env`, `docker-compose.dev.yml`은 기존 dev Postgres 볼륨과 맞는 `.env.dev`를 읽는다. +- STATS의 `RANGE FLOW`는 항목 수에 따라 막대 폭과 간격을 조정한다. 1주일 내외는 넓은 막대로 카드 폭을 채우고, 1달 내외는 좁은 막대와 요약 라벨로 한 화면에서 흐름을 보며, 세부 날짜와 집중 시간은 막대 hover 팝업으로 확인한다. - `5173` 포트가 직접 `npm run dev` 없이 열려 있으면 대부분 `ten-minute-frontend-dev` 컨테이너가 떠 있는 상태다. 개발용 Docker를 끄려면 `docker compose -f docker-compose.dev.yml down`을 사용한다. - 현재 환경에서는 Docker 데몬이 꺼져 있어서 `docker compose build` 실검증은 하지 못했고, 데몬 시작 후 다시 확인이 필요하다. - 이미지 저장 기능은 추후 `print-only` 또는 별도 export 전용 레이아웃을 기준으로 구현하면 화면/인쇄/공유 결과를 맞추기 쉽다. diff --git a/src/App.vue b/src/App.vue index 2b767f5..8005c08 100644 --- a/src/App.vue +++ b/src/App.vue @@ -976,6 +976,8 @@ const weeklyRecords = computed(() => { const date = toDateValue(key) const weekdayShort = ['일', '월', '화', '수', '목', '금', '토'][date.getDay()] const focusedMinutes = getFocusedMinutes(record) + const activeTasks = record.tasks.filter((task) => task.title.trim()) + const doneTasks = activeTasks.filter((task) => task.checked) return { key, @@ -983,6 +985,8 @@ const weeklyRecords = computed(() => { dateLabel: `${`${date.getMonth() + 1}`.padStart(2, '0')}.${`${date.getDate()}`.padStart(2, '0')}`, focusedMinutes, focusedTime: formatMinutesKorean(focusedMinutes), + completedTasks: doneTasks.length, + totalTasks: activeTasks.length, } }) diff --git a/src/components/StatsDashboard.vue b/src/components/StatsDashboard.vue index ad30ea6..c5c9e2f 100644 --- a/src/components/StatsDashboard.vue +++ b/src/components/StatsDashboard.vue @@ -1,8 +1,8 @@