
Open-source Windows and Office activator featuring HWID, Ohook, KMS38, and Online KMS activation methods, along with advanced troubleshooting.
+ +Made with Love ❤️
From 6ca6b087435876d0f28f34d5c4b40a020f1c8851 Mon Sep 17 00:00:00 2001 From: JoyD <12854922+zqm114@user.noreply.gitee.com> Date: Tue, 28 Oct 2025 21:34:05 +0800 Subject: [PATCH 3/6] =?UTF-8?q?=E9=87=8D=E6=9E=84=E6=B5=AE=E5=8A=A8?= =?UTF-8?q?=E9=9D=A2=E6=9D=BF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Robot/Web/src/DockLayout/README.md | 120 ++++++++++++++++++ 1 file changed, 120 insertions(+) create mode 100644 AutoRobot/Windows/Robot/Web/src/DockLayout/README.md diff --git a/AutoRobot/Windows/Robot/Web/src/DockLayout/README.md b/AutoRobot/Windows/Robot/Web/src/DockLayout/README.md new file mode 100644 index 0000000..0252ccd --- /dev/null +++ b/AutoRobot/Windows/Robot/Web/src/DockLayout/README.md @@ -0,0 +1,120 @@ +# DockLayout 组件说明 + +本文档描述在 `src/DockLayout/` 目录下将实现的停靠布局组件的目标、核心概念与数据结构约定,用于指导后续组件开发与联调。 + +## 目标概述 +- 提供 IDE/工作台类的停靠布局能力:支持上/下/左/右/中心五个面板区。 +- 每个面板区内部以 TabGroup 组织多个子面板(标签页),支持切换、关闭、最小化、浮动等扩展。 +- 建立面板区之间的“大小影响关系”,通过受影响/被影响/待更新三类列表配合队列批处理,保证尺寸与边界在增删、折叠、拖拽后稳定更新。 + +## 核心概念 +- 面板区(Area):指 Top/Bottom/Left/Right/Center 五个区域之一,是 DockLayout 的一级容器。 +- 子面板区(SubArea):面板区内部承载 TabGroup 的容器,负责布局与滚动等;一个面板区至少包含一个子面板区。 +- 子面板(Panel):以标签页形式存在的具体内容面板,如“解决方案”、“属性”、“终端”、“编辑器”等。 +- TabGroup:负责管理同一面板区内的多个子面板(标签),包含新增、关闭、激活等行为;所有面板区均以 TabGroup 作为统一的内容组织方式。 + +## 面板区与列表约定 +每个面板区都维护三类列表,用于描述与调度尺寸更新: +- 受影响列表(influence):本面板区会影响到的其他面板区集合。 +- 被影响列表(influencedBy):会影响到本面板区的其他面板区集合。 +- 待更新列表(pendingUpdates):当本区状态变化(新增/删除/折叠/展开/拖拽)后,入队待批处理的面板区集合。 + +这三类列表的存在旨在: +- 明确依赖方向,避免双向更新导致的循环与遗漏。 +- 通过队列式批处理,多次局部变更合并为一次稳定的全局尺寸更新过程。 + +## 数据结构草案 +> 以下为建议的数据结构,具体实现时可与现有 store(如 `dockPanelStore.js`)对齐。 + +```ts +// 面板区枚举 +export type PanelPosition = 'left' | 'right' | 'top' | 'bottom' | 'center'; + +// 影响关系项 +export interface InfluenceEntry { + position: PanelPosition; // 目标面板区位置 + influence: boolean; // 是否产生影响(用于过滤/开关) +} + +// 子面板(标签页) +export interface Panel { + id: string; + title: string; + icon?: string; + content?: unknown; // 组件或渲染函数引用 + collapsed?: boolean; +} + +// 子面板区(TabGroup 容器) +export interface SubArea { + id: string; + tabGroupId: string; // 绑定的 TabGroup 标识 + panels: Panel[]; // 标签页集合 +} + +// 面板区(一级容器) +export interface PanelArea { + position: PanelPosition; + subAreas: SubArea[]; // 一个或多个子面板区 + activeTabIndex?: number; // 当前激活标签索引 + influence: InfluenceEntry[]; // 受影响列表 + influencedBy: InfluenceEntry[]; // 被影响列表 + pendingUpdates: Set