From eed300474e8d709f8087099a90ee7c2c721c4092 Mon Sep 17 00:00:00 2001 From: liuyun Date: Sun, 11 Oct 2026 22:13:47 +0800 Subject: [PATCH] =?UTF-8?q?docs(spec):=20=E5=BD=92=E6=A1=A3=20multi-tab-ke?= =?UTF-8?q?ep-alive=20+=20=E5=90=8C=E6=AD=A5=E5=B8=83=E5=B1=80=E5=A4=9A?= =?UTF-8?q?=E9=A1=B5=E7=AD=BE=20keep-alive=20=E4=B8=BB=20spec?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-Authored-By: Claude Opus 4.8 --- .../.openspec.yaml | 0 .../2026-10-11-multi-tab-keep-alive}/design.md | 0 .../2026-10-11-multi-tab-keep-alive}/proposal.md | 0 .../specs/frontend/AD/layout/spec.md | 0 .../2026-10-11-multi-tab-keep-alive}/tasks.md | 0 openspec/specs/frontend/AD/layout/spec.md | 14 +++++++++++++- 6 files changed, 13 insertions(+), 1 deletion(-) rename openspec/changes/{multi-tab-keep-alive => archive/2026-10-11-multi-tab-keep-alive}/.openspec.yaml (100%) rename openspec/changes/{multi-tab-keep-alive => archive/2026-10-11-multi-tab-keep-alive}/design.md (100%) rename openspec/changes/{multi-tab-keep-alive => archive/2026-10-11-multi-tab-keep-alive}/proposal.md (100%) rename openspec/changes/{multi-tab-keep-alive => archive/2026-10-11-multi-tab-keep-alive}/specs/frontend/AD/layout/spec.md (100%) rename openspec/changes/{multi-tab-keep-alive => archive/2026-10-11-multi-tab-keep-alive}/tasks.md (100%) diff --git a/openspec/changes/multi-tab-keep-alive/.openspec.yaml b/openspec/changes/archive/2026-10-11-multi-tab-keep-alive/.openspec.yaml similarity index 100% rename from openspec/changes/multi-tab-keep-alive/.openspec.yaml rename to openspec/changes/archive/2026-10-11-multi-tab-keep-alive/.openspec.yaml diff --git a/openspec/changes/multi-tab-keep-alive/design.md b/openspec/changes/archive/2026-10-11-multi-tab-keep-alive/design.md similarity index 100% rename from openspec/changes/multi-tab-keep-alive/design.md rename to openspec/changes/archive/2026-10-11-multi-tab-keep-alive/design.md diff --git a/openspec/changes/multi-tab-keep-alive/proposal.md b/openspec/changes/archive/2026-10-11-multi-tab-keep-alive/proposal.md similarity index 100% rename from openspec/changes/multi-tab-keep-alive/proposal.md rename to openspec/changes/archive/2026-10-11-multi-tab-keep-alive/proposal.md diff --git a/openspec/changes/multi-tab-keep-alive/specs/frontend/AD/layout/spec.md b/openspec/changes/archive/2026-10-11-multi-tab-keep-alive/specs/frontend/AD/layout/spec.md similarity index 100% rename from openspec/changes/multi-tab-keep-alive/specs/frontend/AD/layout/spec.md rename to openspec/changes/archive/2026-10-11-multi-tab-keep-alive/specs/frontend/AD/layout/spec.md diff --git a/openspec/changes/multi-tab-keep-alive/tasks.md b/openspec/changes/archive/2026-10-11-multi-tab-keep-alive/tasks.md similarity index 100% rename from openspec/changes/multi-tab-keep-alive/tasks.md rename to openspec/changes/archive/2026-10-11-multi-tab-keep-alive/tasks.md diff --git a/openspec/specs/frontend/AD/layout/spec.md b/openspec/specs/frontend/AD/layout/spec.md index 50b459c..b85f091 100644 --- a/openspec/specs/frontend/AD/layout/spec.md +++ b/openspec/specs/frontend/AD/layout/spec.md @@ -89,12 +89,24 @@ - **THEN** 面包屑显示当前菜单的层级路径 ### Requirement: 多页签 -系统 SHALL 支持多页签(tabs)视图:打开的页面保留为页签,可切换与关闭。 +系统 SHALL 支持多页签(tabs)视图:打开的页面保留为页签,可切换与关闭;切换页签时保留各页面的组件状态(keep-alive),关闭页签时销毁其状态。页面 SHALL 默认缓存,可通过路由 meta `keepAlive: false` 关闭缓存。 #### Scenario: 页签切换与关闭 - **WHEN** 用户打开多个菜单页面 - **THEN** 各页面以页签形式保留,可切换、可关闭 +#### Scenario: 切换页签保留状态 +- **WHEN** 用户在多个页签间切换 +- **THEN** 各页签页面的组件状态(滚动/筛选/表单)被保留,不因切换而重建 + +#### Scenario: 关闭页签销毁状态 +- **WHEN** 用户关闭某页签 +- **THEN** 该页面的组件状态被销毁,再次打开时重建 + +#### Scenario: 页面关闭缓存 +- **WHEN** 某页面声明路由 meta `keepAlive: false` +- **THEN** 该页面切换页签时不保留状态,每次进入重新构建 + ### Requirement: 顶栏全屏 系统 SHALL 在顶栏提供全屏切换按钮,进入/退出浏览器全屏。