相关表
这是一个Steedos相关表视图组件,一般用于在记录详情界面显示相关子表列表,它把对象相关表记录显示为表格,同时包含了对象记录的增删改查以及其他操作按钮功能。
基本用法
最基本的用法是配置组件的“父级对象”、“父级记录”及“相关表对象”属性,就可以显示出某条对象记录的相关表界面效果。
如下所示我们配置相关表的“父级对象”属性为当前对象,“父级记录”属性为当前记录,相关表属性配置为“联系人”:
{
type: 'page',
title: '列表视图',
body: {
"type": "steedos-object-related-listview",
"objectApiName": "${objectName}",
"recordId": "${recordId}",
"relatedObjectApiName": "contacts"
},
}
如果我们新建一个指向业务伙伴 accounts 对象的微页面,并拖动一个相关表组件到画布,可以看到该组件生成了类似上面的amis Schema配置。
发布后,我们就可以在业务伙伴对象的记录详细页面看到当前记录关联的联系人子表列表界面效果。
objectApiName属性可以被配置为像space_users
或accounts
这种固定值,也可以配置为变量,而变量objectName
在“记录页面”、“列表页面”以及“表单”类型的微页面中存储了当前对象Api名称。
recordId属性类似的可以配置为某个具体的记录id值,但是一般我们会配置为变量,比如在“记录页面”或“表单”类型的微页面中配置为当前记录Id值。
属性表
该组件支持下面的配置。
属性名 | 类型 | 默认值 | 说明 |
---|---|---|---|
objectApiName | string | 无 | 父级对象api名称 |
recordId | string | 无 | 父级记录ID值 |
relatedObjectApiName | string | 无 | 相关表对象api名称 |
relatedKey | string | 无 | 相关表对象关联字段api名称 |
columns | [object] | 无 | 要显示的对象字段 |
filters | [string] | 无 | 过滤条件 |
sortField | string | 无 | 排序字段 |
sortOrder | string | 无 | 排序顺序 |
top | number | 10 | 要显示的记录数量 |
perPage | number | 20 | 设置一页显示多少条数据 |
relatedKey非必填,当子表对象上只有相关表字段关联到主表对象时,该字段值可以被组件自动计算出来,但是如果子表对象上有两个或以上相关表字段关联到主表对象时,就需要手动配置该字段值描述该相关表组件要显示的是哪个关联字段下的子表记录。
columns属性表
属性名 | 类型 | 默认值 | 说明 |
---|---|---|---|
field | string | 无 | 字段api名称 |
动作表
所有的相关表组件都监听了对象的 @data.change
事件,只要触发对象的@data.change
事件,就能间接调用该组件的以下动作:
详情请参考 相关表组件源码。
刷新
以下示例演示点击按钮后,刷新名为project
的相关表组件。
{
"type": "button",
"label": "刷新相关表",
"onEvent": {
"click": {
"actions": [
{
"actionType": "broadcast",
"args": {
"eventName": "@data.changed.project"
},
"data": {
"objectName": "project"
}
}
]
}
}
}
点击上述示例中的按钮后会触发绑定project
对象的相关表组件的@data.changed
事件,在该事件中,会根据传入的参数判断是否刷新相关表组件。
要刷新相关表组件,需在data
中配置以下参数:
- objectName:
String
。要触发广播事件对象的对象Api名称,即列表视图绑定的对象api名称。
在Steedos对象相关表中执行增、删、改后,会刷新相关表组件,就是因为触发了页面中相关表组件的@data.change
事件,在@data.change
事件中会执行刷新动作。