跳到主要内容

Data

功能描述

假设有如下配置:

{
"component": "Data",
"componentProps": {
"alias": "requestData",
"setToFormData": {
"merge": false
},
"dataSource": {
"token": "apply-form",
"pbcToken": "todo-list-prepare"
},
"dataResponseKeyPath": "results[0]"
}
}

假设上述配置示例里返回的数据是:

{
"id": 12345,
"name": "A name text",
"description": "Some description text"
}
  1. 那么在 Data 组件的所有子组件中的支持 Variable Pattern 语法的属性,可以通过 :name:description 来调用这两个数据,例如 Text 组件的 content 属性。
  2. 如果想在 input 类型的组件 例如 InputDatePickerTextareaNumberPcker 等组件中使用这些数据,需要通过 setToFormData 属性来将数据放进表单数据中,这样才能在 input 型组件 中使用这些数据,并且会随着表单提交时将这些数据一并提交。如上述示例配置。
  3. 如果想在 Data 组件的子组件以外的地方访问这些数据,但是又不需要数据随着表单提交一起提交,可以通过 alias 属性来将数据放进 context 下,如上述示例配置。则 Data 组件的子组件以外的地方都可以通过 :context.dataSource.requestData.name:context.dataSource.requestData.description 来调用这两个数据。

容器属性

所有组件配置的第一层均支持容器属性

组件属性 componentsProps

NameTypeDefault是否支持 Variable PatternDescription
classNamestring✔️Root div 的 className
aliasstring | object将数据源的返回数据作为 context.dataSource 的某属性,页面组件可以通过 :context.dataSource.xxx 来调用
setToFormDatastring将数据源的返回值放进去表单数据,默认替换所有表单数据,可以通过 merge 来合并
intervalTimenumber自上一次请求后间隔多久再次请求刷新数据,单位毫秒
renderWhileLoadingboolfalseloading时也渲染子元素
dataSource{ token: string, pbcToken: string, listUrl: string }数据源
dataUrlConditionalListOrSinglePropertyPropType(string)通过 dataUrl 获取数据。
dataFiltersConditionalListPropertyPropType(DataFilters)✔️请求数据源隐藏的固定 filter 条件,无法通过界面进行改变
sortModelArray<SortModel>数据的排序方式
dataResponseKeyPathstring取 response data 里的某一个子数据来作为结果。
transformDataResponsestring转换取到的数据,使用 eval 表达式,this 指向获取到的数据。
translateDataResponsebooltrue是否需要翻译请求结果
debounceTimenumber200请求数据的 debounce time,会触发 leading。
defaultValueobject数据源的默认数据,会和 api 请求到的数据进行 merge。如果 api 请求返回的是数组,则和数组的每一项进行 merge。如果 api 请求返回的是个对象,则和此对象进行 merge。
httpMethod'get' | 'post''get'数据请求的http方法。
selectColIdArray<string>加载的数据字段,不配置则加载所有字段。
multiDataSourcearray多数据源,并发请求。数组内容支持前面所有单数据源配置,例如 dataSourde, sortModel, dataResponseKeyPath
multiDataSourceFlatboolfalseIf true, 将多数据与中每个数据源的 data flatten 成一个数组。
LoadingPropsLoadingProps传给 Loading 组件的属性

所有其余 componentsProps 将会被传给组件根元素(div)。

SortModel

NameTypeDefaultDescription
colIdstring排序字段 id
sort'asc' | 'desc''asc'生序或者降序排序
sortType'text' | 'number' | 'date''text'值按照什么类型进行排序

LoadingProps

NameTypeDefaultDescription
sizenumber20loading 元素大小,默认 20px
centeredbooltrue是否居中显示
overlayboolfalse是否显示半透明遮罩层
delayedboolfalse是否延迟显示
delayTimenumber800延迟时间(ms)

JS API

通过 formApi.getFieldApi() 获取的接口如下:

NameTypeDescription
nodeHTML Element组件的根 DOM 元素
onfunc绑定到组件的事件
getDatafunc获取数据
refreshfunc刷新数据

on eventType

NamecallbackDescription
dataFetched(formApi) => any当获取数据成功时候触发
childrenFirstRendered(formApi) => void当子元素第一次渲染的时候触发