数据源类配置项
与实体、字段、视图等平台数据源相关的专用配置项。这些配置项用于在自定义组件的属性配置面板中绑定平台数据源,供组件拉取业务数据。
xObjectEntityList - 实体列表数据源
以下拉列表方式选择平台实体对象,在自定义组件中可通过选择的实体对象 key 获取实体业务类型列表、业务对象描述等数据。
功能特性:
- 实体列表展示:以下拉列表形式展示当前可选择的实体对象
- 搜索功能:支持实体名称搜索
- 值写入:选择的实体 ID 写入对应
name字段的 value 中 - 实体类型控制:通过 custom 属性控制使用标准实体还是自定义实体
使用方法:
在组件模型文件(model.ts)/ 属性配置(propsSchema)中添加使用:
{
"type": "xObjectEntityList",
"name": "xObjectApiKey",
"label": "对象实体列表",
"custom": false
}属性数值类型:string — 所选的实体对象 ID。
属性说明:
name: 字段名称label: 标签文本disabled: 是否禁用custom: 是否使用自定义实体,设置为 false 则表示展示标准实体列表,不传则展示标准实体和自定义实体value: 当前已选择的实体对象 ID(xObjectApiKey)onChange: 值变化回调
xObjectDataApi - 实体业务数据列表数据源
用于配置列表类数据源:实体、fields、分页等,供组件拉取业务数据列表。
功能特性:
- 输入框展示:以输入框形式展示当前配置的实体和选择的字段信息
- 设置按钮:右侧设置图标,点击打开配置弹窗
- 实体类型选择:弹窗中支持选择标准实体或自定义实体
- 实体选择:弹窗中支持下拉选择实体
- 字段选择:使用 antd Transfer 组件选择字段,默认选中所有实体字段
- 分页配置:配置页码(默认展示第几页)和每页条数(每页展示多少条数据)
- 值写入:选择的实体 ID 写入
xObjectApiKey,选中的字段列表写入fields,字段信息列表写入fieldDescList,页码写入page,每页条数写入pageSize
使用方法:
在组件模型文件(model.ts)/ 属性配置(propsSchema)中添加使用::
{
"type": "xObjectDataApi",
"name": "dataSource",
"label": "数据源配置"
}属性数值类型:object — 对象数值格式,包含实体标识、选中字段、分页等信息。
| 字段 | 类型 | 说明 |
|---|---|---|
xObjectApiKey | string | 选择的实体 API Key |
fields | string[] | 选中的字段列表 |
fieldDescList | object[] | 字段信息列表 |
page | number | 页码,默认为 1 |
pageSize | number | 每页条数,默认为 20 |
属性说明:
name: 字段名称label: 标签文本disabled: 是否禁用value: 当前值,格式为{ xObjectApiKey: string, fields: string[], fieldDescList: object[], page: number, pageSize: number }xObjectApiKey: 选择的实体 API Keyfields: 选中的字段列表fieldDescList: 字段信息列表page: 页码,默认为 1(默认展示第几页)pageSize: 每页条数,默认为 20(每页展示多少条数据)
onChange: 值变化回调
xObjectDetailApi - 实体详情数据源
用于配置单条详情数据源:实体、objectId、字段等,供组件拉取一条业务数据详情。
功能特性:
- 输入框展示:以输入框形式展示当前配置的实体、业务数据 ID 和字段信息
- 设置按钮:右侧设置图标,点击打开配置弹窗
- 实体选择:弹窗中支持下拉选择实体(标准实体/自定义实体)
- 业务数据 ID 选择:根据选择的实体,使用 xObject.query 获取业务数据列表,支持选择具体的业务数据 ID
- 字段选择:使用 antd Transfer 组件选择字段,默认全部选中
- 值写入:选择的实体 ID 写入
xObjectApiKey,业务数据 ID 写入objectId,字段列表写入fieldDescList
使用方法:
在组件模型文件(model.ts)/ 属性配置(propsSchema)中添加使用::
{
"type": "xObjectDetailApi",
"name": "dataSource",
"label": "业务详情数据源配置"
}属性数值类型:object — 对象数值格式,包含实体标识、业务数据 ID、选中字段等信息。
| 字段 | 类型 | 说明 |
|---|---|---|
xObjectApiKey | string | 实体 API Key |
objectId | string | 业务数据主键,支持上下文变量(如 ${recordId}) |
fields | string[] | 可选项。选中的字段 apiKey 列表 |
fieldDescList | object[] | 可选项。选中的字段描述信息列表 |
属性说明:
name: 字段名称label: 标签文本disabled: 是否禁用value: 当前值,一般为{ xObjectApiKey: string; objectId: string; fields?: string[]; fieldDescList?: object[] }xObjectApiKey:实体 API KeyobjectId:业务数据主键,支持上下文变量(如${recordId})fields/fieldDescList:在面板中勾选字段后由配置项写入,供组件展示列或拉数
onChange: 值变化回调
特性
- 支持标准实体与自定义实体切换。
- 选择实体后可联动加载业务数据列表与字段列表。
- 各选择器支持搜索过滤。
selectFieldsApi - 字段 apiKey 多选(穿梭框)
在已配置实体(xObjectApiKey)的前提下,用穿梭框多选字段 apiKey。须与同表单内提供实体的配置项一起使用(例如 xObjectDataApi、xObjectDetailApi)。
功能特性:
- 输入框展示:以只读输入框展示「已选择 N 个字段」
- 设置按钮:右侧设置图标,点击打开「字段选择」弹窗
- 穿梭框选择:弹窗内使用 Transfer 在「可选字段」与「已选字段」间勾选,支持搜索
- 值写入:选中的字段 apiKey 列表写入 value(
string[]) - 联动数据源:通过
xObjectApiKey指定从props.data中读取实体 key 的路径,实体变化时会重新拉取字段列表
使用方法:
在组件模型文件(model.ts)/ 属性配置(propsSchema)中添加使用,需与提供 xObjectApiKey 的配置项(如 xObjectDataApi、xObjectDetailApi)关联使用:
{
"type": "selectFieldsApi",
"name": "fields",
"label": "选择字段",
"xObjectApiKey": "dataSource.xObjectApiKey"
}属性数值类型:string[] — 选中的字段 apiKey 字符串数组。
属性说明:
name: 字段名称label: 标签文本disabled: 是否禁用xObjectApiKey: 从props.data中获取实体 API Key 的 key 名,不传则默认为'xObjectApiKey'。若实体在嵌套对象中可传路径,如'dataSource.xObjectApiKey'value: 当前值,格式为string[](字段 apiKey 列表)onChange: 值变化回调
selectFieldDescApi - 字段描述选择(下拉单选/多选)
在已配置实体的前提下,通过下拉选择字段,支持单选或多选;选中结果以「字段描述」对象数组存储(含 label、value/apiKey)。须与同表单内的实体配置联动。
功能特性:
- 下拉选择:以 Select 形式展示,支持搜索、清空
- 单选/多选:通过
mode控制,可选'multiple'或'tags' - 值写入:选中的值写入为
Array<{ label: string; value: string }>,其中 value 为字段 apiKey - 联动数据源:通过
xObjectApiKey指定从props.data中读取实体 key 的路径,实体变化时会重新加载字段列表
使用方法:
在组件模型文件(model.ts)/ 属性配置(propsSchema)中添加使用,需与提供 xObjectApiKey 的配置项关联使用:
{
"type": "selectFieldDescApi",
"name": "selectFieldDesc",
"label": "绑定字段",
"xObjectApiKey": "entityApiKey.xObjectApiKey",
"mode": "tags",
"placeholder": "请至少选择一个要显示的字段"
}属性数值类型:Array<{ label: string; value: string }> — 选中字段的描述对象数组,每个元素包含字段的显示名(label)和 apiKey(value)。
属性说明:
name: 字段名称label: 标签文本disabled: 是否禁用placeholder: 占位文案xObjectApiKey: 从props.data中获取实体 API Key 的 key 名或路径,不传则默认为'xObjectApiKey',如'entityApiKey.xObjectApiKey'mode: 可选'multiple'(多选)或'tags'(多选标签形式),不传为单选value: 当前值,格式为Array<{ label: string; value: string }>onChange: 值变化回调
dataViewIdSelect - 实体视图选择
在组件模型文件(model.ts)/ 属性配置(propsSchema)中添加使用,用于选择指定实体下的列表视图(viewId),需与提供 xObjectApiKey 的配置项关联使用。
功能特性:
- 单选视图:下拉展示当前实体可用视图
- 接口加载:根据
xObjectApiKey请求视图列表(如/rest/data/v2.0/layouts/listLayout) - 搜索与清空:支持搜索视图名、清空选择
- 值写入:
value为视图 ID 字符串(viewId) - 无实体提示:未配置实体时禁用并提示先配置数据源
使用方法:
{
"type": "dataViewIdSelect",
"name": "defaultViewId",
"label": "列表视图",
"xObjectApiKey": "objectApiKey", // 用于关联当前属性配置中的实体数据来源(关联哪个实体对象)
"placeholder": "请选择列表视图"
}其中 xObjectApiKey 为从 props.data 读取实体 API Key 的字段名或路径,用于确定查询哪个实体的视图列表。
属性数值类型:string — 所选列表视图的 ID。
属性说明:
name: 字段名称label: 标签文本disabled: 是否禁用placeholder: 占位文案,默认可为「请选择视图」xObjectApiKey: 从props.data取实体 API Key 的字段名或路径,默认xObjectApiKeyvalue: 字符串,所选viewIdonChange: 值变化回调
customApi - Neo 平台自定义 API 绑定配置项
属性数值类型:object — 对象数值格式,各字段说明如下:
| 字段 | 类型 | 说明 |
|---|---|---|
apiUrl | string | 所选自定义 API 的地址(与平台列表项中的 URL 一致) |
methodType | string | 请求方式,小写:get | post | put | patch | delete |
headers | Record<string, string> | 可选。请求头键值对 |
data | Record<string, any> | 可选。请求参数;值可为解析后的 JSON 或原始字符串(见下文保存规则) |
空对象 {} 或未配置时,组件侧可按「未选择 API」处理。
交互方式:在配置面板中默认展示 只读摘要 + 设置按钮;点击设置 icon 后在弹窗中可选择平台已注册的自定义 OpenAPI,并可配置 请求头 与 请求参数(Data)。
说明:列表数据来自 neo-open-api 的 customApi.getList({ pageNo: 1, pageSize: 10000 })。
功能特性:
- API 下拉:选项展示为
methodName+methodType,选中后写入apiUrl与methodType(请求方式随所选接口自动回填,不支持手动编辑) - 请求头:多组 Key / Value;确定时合并为
headers对象;Key 必填 - 请求参数 (Data):多组 Key / Value;Value 若为合法 JSON 字符串则
JSON.parse后存入,否则存原始字符串 - 空对象裁剪:
headers/data若最终无键值,会从保存结果中 删除 该字段
使用方法:
在组件模型文件(model.ts)/ 属性配置(propsSchema)中添加使用,用于添加一个可获取平台自定义 API 数据的配置项:
{
"type": "customApi",
"name": "fetchConfig",
"label": "自定义接口",
"description": "请选择已注册的 OpenAPI;Data 中 Value 可填 JSON。"
}属性说明:
name:字段名,必填;对应模型中的属性名label:标签文案;同时作为弹窗标题的默认值description:可选;显示在「请求参数 (Data)」区域下方的说明文字placeholder:预留(主输入框为只读展示,具体以产品为准)value:当前值,结构见上文「适用属性数值类型」onChange:弹窗确定时回传完整对象visibleOn/hiddenOn:与其他字段联动显示
在属性配置面板中获取的数值格式如下:
{
"apiUrl": "/rest/data/v2.0/scripts/api/proxy/forward",
"methodType": "post",
"data": {
"url": "'https://jsonplaceholder.typicode.com/posts",
"method": "GET",
"data": "{ test: 123}"
}
}以上数据可在自定义组件 this.props.fetchConfig 获取,可通过 customApi.run 获取对应的外部接口数据。使用方式如下:
// @ts-ignore
import { customApi } from 'neo-open-api';
const { fetchConfig } = this.props;
const result = await customApi.run(fetchConfig); // 获取平台自定义 API 返回的数据