v1.12.29 접속자 요약과 회원 작성 이력 및 댓글 표시 정리

This commit is contained in:
2026-10-21 18:17:03 +09:00
parent 184a971863
commit 51d5de148f
15 changed files with 114 additions and 47 deletions

View File

@@ -1,6 +1,6 @@
<script setup>
import { formatAnalyticsCount as formatNumber } from '~/lib/analytics-display.js'
import { ANALYTICS_COLLECTED_SINCE_DEFAULT, getAnalyticsDayKey } from '~/lib/analytics-shared.js'
import { ANALYTICS_ACTIVE_SESSION_TTL_SECONDS, ANALYTICS_COLLECTED_SINCE_DEFAULT, ANALYTICS_MAX_DURATION_SECONDS, getAnalyticsDayKey } from '~/lib/analytics-shared.js'
import {
getAnalyticsTrendDescription,
getAnalyticsTrendDetailLabel,
@@ -57,7 +57,8 @@ const { data: realtime, refresh: refreshRealtime } = await useFetch('/admin/api/
summary: {
onlineNow: 0,
loggedInNow: 0,
anonymousNow: 0
anonymousNow: 0,
openPageCount: 0
},
sessions: []
})
@@ -1043,8 +1044,8 @@ watch(trendRows, () => {
<h2 class="admin-dashboard__section-title text-sm font-semibold text-ink">
현재 접속자
</h2>
<p class="admin-dashboard__live-count text-xs text-muted">
{{ formatNumber(realtime.sessions.length) }}명 표시 · 전체 {{ formatNumber(realtime.summary.onlineNow) }}명
<p class="admin-dashboard__live-count text-xs text-muted" :title="`최근 ${ANALYTICS_ACTIVE_SESSION_TTL_SECONDS}초 안에 접속 신호가 있는 전체 탭 수이며, 같은 페이지의 중복 탭도 포함합니다.`">
전체 {{ formatNumber(realtime.summary.onlineNow) }}명 중 {{ formatNumber(realtime.sessions.length) }}명 표시 · 열린 화면 {{ formatNumber(realtime.summary.openPageCount) }}개
</p>
</div>
<ul v-if="realtime.sessions.length" class="admin-dashboard__live-list mt-3 divide-y divide-line">
@@ -1055,7 +1056,7 @@ watch(trendRows, () => {
<span class="admin-dashboard__live-name truncate font-medium text-ink" :title="session.isLoggedIn ? session.user?.username : '익명 방문자'">{{ session.isLoggedIn ? session.user?.username : '익명 방문자' }}</span>
</div>
<AdminRealtimePages :session="session" />
<span class="admin-dashboard__live-duration whitespace-nowrap text-right text-muted" title="접속 유지시간">{{ formatEngagedDuration(session.durationSeconds) }}</span>
<span class="admin-dashboard__live-duration whitespace-nowrap text-right text-muted" :title="`열린 페이지 중 가장 긴 경과 시간입니다. 백그라운드 시간을 포함하며 최대 ${formatEngagedDuration(ANALYTICS_MAX_DURATION_SECONDS)}까지만 기록합니다.`">{{ formatEngagedDuration(session.durationSeconds) }}</span>
<span class="admin-dashboard__live-ip hidden truncate text-right text-muted xl:block" :title="session.ipAddress">{{ session.ipAddress || '-' }}</span>
</li>
</ul>