definePageLayout() 为你拥有的对象声明一个布局,或者使用 definePageLayoutTab() 为已存在的布局(你的自定义布局或标准的 Twenty 布局)添加单个选项卡。
| 用例 | 实体 |
|---|---|
| 为你拥有的对象上的记录页面定义完整布局 | definePageLayout |
| 向现有布局中添加一个选项卡(你自己的对象或一个标准对象) | definePageLayoutTab |
definePageLayout
当你拥有整个详情页时使用此方式——通常适用于你自己定义的自定义对象。src/page-layouts/example-record-page-layout.ts
关键点
type通常为 ‘RECORD_PAGE’,用于自定义特定对象的详情视图。objectUniversalIdentifier指定此布局适用于哪个对象。- 每个
tab使用title、position和layoutMode定义页面的一个部分(CANVAS表示自由布局)。 - 选项卡内的每个
widget可以渲染一个前端组件、关系列表或其他内置小部件类型。 - 选项卡上的
position控制其顺序。 使用更高的值(例如 50)可将自定义选项卡放在内置选项卡之后。
definePageLayoutTab
当你只想在现有布局中添加一个选项卡时使用此方式——例如,在标准 Company 页面上添加一个分析选项卡,或者在你自己的对象布局上附加一个 AI 摘要选项卡。src/page-layouts/example-extra-tab.ts
关键点
-
pageLayoutUniversalIdentifier是必需的,并且必须在安装时指向一个已存在的页面布局——可以是标准的 Twenty 布局,也可以是由你自己的应用定义的布局。 当前不支持跨应用引用由其他已安装应用拥有的布局。 当父布局缺失时,安装会失败,并给出清晰的验证错误。 -
对于标准 Twenty 布局,从
twenty-sdk/define导入标识符:每个布局条目还会公开其tabs及其widgets,因此你可以引用任意层级:还提供了一个简短别名STANDARD_PAGE_LAYOUT: -
widgets仅作用于此选项卡——它们引用前端组件、视图等,其方式与在definePageLayout中内联定义的小部件完全相同。 -
position控制目标布局中相对于现有选项卡的排序。 选择一个取值,使你的选项卡相对于内置选项卡位于你想要的位置。 -
当你只想向现有布局进行添加时,请使用此功能,而不是
definePageLayout。 当你拥有整个布局时,请使用definePageLayout。