可视化画面布局编辑器,基于 @dnd-kit 拖拽库,提供完整的所见即所得(WYSIWYG)布局设计体验。
LayoutBuilder 是 One Platform 的可视化画面布局编辑器,提供完整的所见即所得(WYSIWYG)布局设计体验。基于 @dnd-kit 拖拽库和 React Redux 状态管理,用户可以像搭建积木一样设计对象的记录详情和编辑页面布局。
支持从左侧拖入新字段、画布内拖拽调整位置、拖出画布到删除区域移除字段、点击选中编辑属性。
选中组件后显示属性编辑器:字段名称、显示标签、行为设置(必填/只读)、组件类型、占位符文本。
基于 @dnd-kit/core 实现,使用 PointerSensor 配置(移动 5px 以上才触发拖拽以区分点击和拖拽)。
field-xxx:从 Palette 拖入的新字段comp-xxx:从 Palette 拖入的预置组件| Hook | 职责 |
|---|---|
useLayoutStore | 管理布局状态(添加/删除/移动组件) |
useLayoutData | 加载和转换布局数据 |
useObjectData | 加载对象和字段列表 |
useDragDrop | 处理拖拽事件 |
| 技术 | 用途 |
|---|---|
@dnd-kit/core | 拖拽系统核心库 |
| React Redux | 全局状态管理 |
@salesforce/design-system-react | UI 组件库 |
| Custom Hooks | 数据加载 |
| Zustand Store | 布局编辑器内部状态 |
| 场景 | 时间 | 内容 |
|---|---|---|
| 打开 Builder | 0:00-0:20 | 从 ObjectLayouts 页面点击编辑,新标签页打开 |
| 界面概览 | 0:20-0:50 | 展示三栏式布局 |
| 拖入字段 | 0:50-1:30 | 选择对象 → 拖拽字段到画布 |
| 调整位置 | 1:30-2:00 | 画布内拖拽移动字段 |
| 编辑属性 | 2:00-2:30 | 修改标签、组件类型等 |
| 删除字段 | 2:30-2:50 | 拖回左侧删除区域 |
| 保存布局 | 2:50-3:10 | 保存到后端,前台查看效果 |
| 总结 | 3:10-3:30 | LayoutBuilder 价值总结 |