状态:与当前实现同步(2026-07)
受众:前端、全栈、架构评审、AI Agent
产品说明:产品能力 · 仪表盘与布局插件
实现 spec(权威):DataView/spec/development/dashboard-layout-plugins.md
同时满足:
| 层 | mode |
职责 | 不负责 |
|---|---|---|---|
| 仪表盘插件 | dashboard |
画布几何、Edit/View、画布 Config、可选图层 | 容器 tabs/slides 业务 |
| 布局插件 | layout |
容器 chrome、槽位、打开 Focus | 另一套几何引擎 |
契约:Panel + Config + 可选 AdvancePanel(见 DataView src/types/plugins.ts)。
Panel.tsx:editable → lazy EditPanel,否则同步 ViewPanel。isEditor = editable && renderMode === "design"。dndSuspended)时 仍走 EditPanel 壳(仅禁用交互),避免设备预览列被 View 通栏撑开导致站位错位;嵌套 Focus 宿主 hostMode="embedded-focus" 宽度 100% 填满站位。| 环节 | 行为 |
|---|---|
| 打开 | 量测容器 hostEl → 站位 rect;ensureEmbeddedData(hostKind);建 localVersionStore |
| 编辑 | 只改 local;根 dndSuspended 冻结外层拖拽 |
| 切 tab/slide | 先 flush 当前槽,再切换;合并时保留已 flush 的嵌套体,防 Config 旧快照冲掉 |
| 保存 | merge 回根 panels(setTabEmbedded / setSwiperSlideFromEmbedded / setRowEmbedded) |
| 取消 | 丢弃 local |
侧栏 tabs:
壳:EditorSidebarShell(variant: root | focus)。
nestedDashboardKind(host) === host。新建槽、对齐、Focus 打开/合并均强制宿主家族,禁止陈旧 dashboardKind 把网格嵌进自由布局等。
完整路径表、非目标与实现细节以 DataView spec 为准。
| 文档 | 说明 |
|---|---|
| 产品能力说明 | 选型、Focus 体验、交付价值 |
| 自由布局设计与实现 | position 固定尺寸专题 |
| 交互引擎设计与实现 | 筛选 / 联动 / 下钻(正交能力) |
| MetaRepo 索引 | spec/development/dashboard-layout-overview.md |
| DataView 权威规格 | DataView/spec/development/dashboard-layout-plugins.md |