diff --git a/docs/superpowers/plans/2026-09-15-m1-data-collection-foundation.md b/docs/superpowers/plans/2026-09-15-m1-data-collection-foundation.md index 73fa894..303fea5 100644 --- a/docs/superpowers/plans/2026-09-15-m1-data-collection-foundation.md +++ b/docs/superpowers/plans/2026-09-15-m1-data-collection-foundation.md @@ -1458,6 +1458,8 @@ export const getSession = (vid: string, sid: string) => ### Task 20: 访客列表页 +**执行约定(Task 18/19 审查沉淀)**:① 详情路由 keepAlive=true——detail.vue 必须在 `onActivated` 或 watch `$route.query.visitor_id` 里响应访客切换,不能只在 setup 读一次;② 访客列表是分页表——useTable 用语义化方法(`refreshCreate`/`refreshUpdate`)而非裸 `refreshData`;③ `formatDateTime` 从 site/index.vue 提取到共享 util(`admin/src/utils/` 下 tracker 模块)供列表/详情复用;④ 后端时间戳已统一 `timezone.localtime().isoformat()`(上海时间),前端直接展示;⑤ 筛选请求带竞态守卫(reqSeq 令牌,参照 dashboard 修法)。 + **Files:** - Create: `admin/src/views/tracker/visitor/index.vue`