feat(admin): 访客详情页按客迹视觉V1重设计(头部卡/统计卡/时间线/来源证据三口径/访问环境)

Co-Authored-By: Claude Code <noreply@anthropic.com>
This commit is contained in:
浅念
2026-09-16 18:19:31 +08:00
parent 008d9277d8
commit 50faa73cf9
6 changed files with 1152 additions and 457 deletions
+16 -1
View File
@@ -76,9 +76,22 @@ export interface AttributionInfo {
session_id?: string | null
}
/** 详情归因块:first_touch 主口径 + 近几次会话入口识别(旧数据未重算时 first_touch 为 null) */
/** 首次可观测来源占位(无 first_touch 分类行的历史访客,后端仅给 channel/resolution 两字段) */
export interface ObservablePlaceholder {
channel: 'unknown'
resolution: 'unknown'
}
/** 详情归因块:first_touch 主口径 + 来源证据三口径 + 近几次会话入口识别 */
export interface AttributionBlock {
/** 首触分类(旧数据未重算时为 null) */
first_touch: AttributionInfo | null
/** 首次可观测来源:first_touch 分类原样(含 direct/unknown);无分类行 → unknown 占位 */
first_observable: AttributionInfo | ObservablePlaceholder
/** 首次可识别来源:first_touch 可识别时用之,否则最早一条可识别 session_entry;无则 null */
first_identifiable: AttributionInfo | null
/** 本次会话来源:最新一条 session_entry;无则 null */
latest_session: AttributionInfo | null
session_entries: AttributionInfo[]
}
@@ -90,6 +103,8 @@ export interface VisitorDetail extends VisitorRow {
last_ip: string | null
first_utm: Record<string, string>
first_referrer_domain: string
/** page_view 事件数(page_stay 是停留信号不并计) */
pages_viewed: number
/** 来源归因块(first_touch=null 时前端回落 first_source 展示) */
attribution: AttributionBlock
sessions: SessionSummary[]