From 7f2a746f66d2214035e68c5e34af07bb2e959b5e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=B5=85=E5=BF=B5?= Date: Wed, 16 Sep 2026 18:39:02 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E6=8E=92=E5=BA=8F=E4=BD=9C=E7=94=A8?= =?UTF-8?q?=E4=BA=8E=E7=BB=84=E5=86=85=E4=BA=8B=E4=BB=B6+=E6=97=B6?= =?UTF-8?q?=E9=97=B4=E7=BA=BF=E9=99=90=E9=AB=98=E6=BB=9A=E5=8A=A8+UTM?= =?UTF-8?q?=E5=88=AB=E5=90=8D=E5=BD=92=E4=B8=80=E6=B6=88=E5=86=B2=E7=AA=81?= =?UTF-8?q?=E8=AF=AF=E6=8A=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - attribution.py:新增 _canon 归一(小写/去协议与域名后缀/别名表 fb→facebook、百度→baidu 等/仅留字母数字汉字), 冲突判定改为两路各自归一后比较——同源升级 combined 并在 detail 记 utm_source 原文,仍不同才 conflict - detail.vue:orderedDays 组内会话/事件同步翻转(desc=组与组内都最新在前,asc=都最早在前); .tl-body 限高 calc(100vh - 380px) 卡内滚动,日期组头随内容滚动 - test_attribution.py:+4 用例(fb↔facebook、chatgpt.com↔ChatGPT、google↔facebook 仍冲突、百度↔baidu) Co-Authored-By: Claude Code --- admin/src/views/tracker/visitor/detail.vue | 20 ++++++++++---- server/tracker/services/attribution.py | 24 +++++++++++++++- server/tracker/tests/test_attribution.py | 32 ++++++++++++++++++++++ 3 files changed, 70 insertions(+), 6 deletions(-) diff --git a/admin/src/views/tracker/visitor/detail.vue b/admin/src/views/tracker/visitor/detail.vue index face236..5ae9eca 100644 --- a/admin/src/views/tracker/visitor/detail.vue +++ b/admin/src/views/tracker/visitor/detail.vue @@ -90,7 +90,7 @@ 近 30 天 近 90 天 - +