设置UI引擎前端页面数据源表单组件属性
数据源表单是UI引擎基于“数据源”功能封装的高效表单组件,支持根据选定的数据源自动生成对应表单项,无需手动配置单个表单元素,大幅提升表单开发效率。
以下为该组件的完整属性配置流程及说明。
前提条件
- 已在当前页面添加“数据源表单”组件,具体操作请参见为UI引擎前端页面添加物料组件。
- 已创建数据源,具体操作请参见为UI引擎前端项目创建数据源。
配置入口
- 在页面设计器的中心画布区,单击选中“数据源表单”组件。
- 在右侧设置面板中,单击
,即可展开“属性”设置面板。
模型属性
此部分的属性用于定义表单的数据源类型及数据规则,是组件生效的关键。
|
属性名称 |
说明 |
是否支持变量绑定 |
|---|---|---|
|
数据源来源 |
定义表单数据的获取方式。
具体配置请参见数据源配置。 |
否 |
|
配置项数据 |
根据所选模式展示具体配置内容:
|
否 |
数据源配置
单击“数据源来源”右侧的
,在弹出的窗口中,根据选择的“数据源来源”(API/JSON)完成对应参数配置。
|
参数名称 |
说明 |
|---|---|
|
数据源来源 |
选择“API”或“JSON”,决定表单的数据来源类型。 |
- “数据源来源”为“API”的配置项:
参数名称
说明
选择数据源
选择需要配置的数据源。
如果没有可选择的数据源,可单击右侧的“新增”,前往“数据源管理”进行创建,具体操作请参见为UI引擎前端项目创建数据源。
选择API
选择指定数据源后,进一步指定具体的API。
选择集合
选择指定API后,系统列出其返回的数据集合。选择其一以生成字段列表(默认选中第一个非空集合)。
字段列表
展示所选集合的所有字段,可配置每个字段是否展示及其对应的表单项类型。
- “数据源来源”为“JSON”的配置项:
参数名称
说明
展示字段映射值
用于指定从JSON对象中读取哪个属性作为表单项的标签文本。
如未配置,默认读取JSON对象中的“label”属性。
prop关键字映射值
用于指定从JSON对象中读取哪个属性作为表单项的字段名称(key)。
如未配置,默认读取JSON对象中的“prop”属性。
类型映射值
用于指定从JSON对象中读取哪个属性来定义组件的类型。
如未配置,默认使用“componentType”属性。“componentType”可选值:
- INPUT(输入框)
- SELECT(下拉框)
- RADIOGROUP(单选框组)
- CHECKBOX(复选框)
- CHECKBOXGROUP(复选框组)
- DATEPICKER(日期选择器)
- TIMEPICKER(时间选择器)
- NUMERIC(数字输入框)
- FLUENTEDITOR(富文本)
- POPEDITOR(弹出编辑)
- FILEUPLOAD(文件上传)
- USERSELECTOR(选人组件)
注意:该属性仅适用于表单组件的类型映射。如当前配置为数据源表格,则此属性的值将被忽略。
输入JSON数据
用于配置生成表单项的JSON数组。每个数组元素(对象)代表一个表单项,需包含以下三个关键属性:
- 展示字段映射值:定义表单项的标签文本(如“label”)。
- prop关键字映射值:定义表单项的字段名称(key,如“prop”)。
- 类型映射值:定义表单项的组件类型(如“componentType”)。
示例:
[ { "label": "姓名", "prop": "name", "componentType": "INPUT" } ]用户输入JSON数组后,可通过输入框底部的功能按钮完成以下操作:
- 点击格式化:对输入的JSON数据进行格式化,提升可读性。
- 点击生成字段列表:根据输入的JSON数据,解析并生成对应的字段列表。
字段列表
用于展示JSON数据生成的字段列表,可以配置字段是否显示与字段对应的组件类型。
基础信息
此部分的属性用于配置表单的展示样式和交互状态,支持部分属性的变量绑定。
|
属性名称 |
说明 |
是否支持变量绑定 |
|---|---|---|
|
组件名称 |
仅用于展示,显示组件的中文名称,不可编辑。 |
否 |
|
添加表单项 |
选定数据源后,手动新增自定义表单项,补充数据源未覆盖的字段。 |
否 |
|
表单仅展示 |
控制表单内容是否为只读状态。开启后所有表单项不可编辑。 |
是 |
|
禁用 |
控制整个表单是否禁用。开启后表单内所有元素同步禁用。 |
是 |
|
标签位置 |
配置表单项标签的显示位置,可选:“左边”、“右边”、“上边”。 |
是 |
|
标签宽度 |
统一设置所有表单项标签的文本宽度,单位为“px”。 |
是 |
|
表单列数 |
设置表单的列布局数量,可选范围为1-5。默认值为2。 |
否 |
|
列间距 |
表单列数大于1时生效,设置列与列之间的间距。单位为“px”,默认值为10。 |
否 |
|
行间距 |
表单行数大于1时生效,设置行与行之间的间距。单位为“px”,默认值为0。 |
否 |
其他
如下属性适用于UI引擎所有组件,用于精细化控制。
|
属性名称 |
说明 |
是否支持变量绑定 |
|---|---|---|
|
元素id值 |
对应HTML标签的“id”属性,同一页面内必须唯一。 |
是 |
|
样式类 |
对应HTML标签的“class”属性,为空格分隔的类名列表,用于自定义组件样式。默认为“component-base-style”。 |
是 |
|
ref引用类 |
对应Vue的“ref”属性,用于注册模板引用以访问组件实例方法。 如果为“数据源表单”组件,会自动填充默认值。 |
是 |
组件事件
数据源表单组件内置核心事件,用于监听表单数据变化:
|
事件名称 |
类型定义 |
说明 |
|---|---|---|
|
onUpdate:modelValue |
(...args) => void |
表单内置数据对象的值发生改变时触发,可用于监听表单数据变化并执行联动逻辑。 |
|
onClick |
(...args: any) => void |
组件被单击时触发。 优先使用组件提供的参数,如果没有,则传递浏览器的“MouseEvent”事件参数,适用于按钮、卡片等可单击组件。 |
|
onChange |
(...args: any) => void |
组件值发生变化时触发。 仅部分组件支持此事件,具体参数由组件实现决定。适用于输入框、下拉选择器等表单组件。 |
|
onFocus |
(e: Event) => void |
元素获得焦点时触发。 传递标准的浏览器“Event”或“MouseEvent”对象,适用于输入框等表单元素。 |
|
onMousemove |
(e: Event) => void |
鼠标在组件区域内移动时触发。 实时追踪鼠标在组件区域内的移动轨迹,兼容所有可视化组件,适用于拖拽、悬浮提示、轨迹追踪等场景。 |
组件实例属性
组件实例属性可通过“ref”引用获取,用于读取表单的核心数据状态:
|
属性名称 |
类型 |
说明 |
|---|---|---|
|
formData |
object |
表单数据对象,采用标准“key-value”格式存储。 |
|
dsFormData |
object |
基于数据源配置的表单数据对象,可能包含层级结构(与数据源字段对应)。 |
|
ref |
ComponentRef |
底层表单组件(TinyForm)的转接引用,可调用TinyForm实例的原生方法。 |
组件实例方法
组件实例方法可通过“ref”调用,用于实现表单数据的主动操作和联动控制:
|
方法名称 |
类型定义 |
说明 |
|---|---|---|
|
getDsData |
() => object<{
body: object;
custom: object;
mappedData: object;
methodType: string;
query: object;
url: string;
}> |
获取数据源的完整数据对象,包含:
|
|
updateFormField |
(key: string, originKey: string, value: any) => void |
手动更新指定表单项的值,适用于表单项之间的数据联动。
|