设置UI引擎前端页面表格组件属性
表格组件适用于设备列表、生产报表、运维记录、工艺参数台账等各类结构化数据展示场景,支持排序、筛选、分页、编辑、虚拟滚动等精细化功能配置,满足工业场景大数据量、高精度、可交互的数据展示需求。
前提条件
已在当前页面添加“表格”组件,具体操作请参见为UI引擎前端页面添加物料组件。
配置入口
- 在页面设计器的中心画布区,单击选中“表格”组件。
- 在右侧设置面板中,单击
,即可展开“属性”设置面板。
基础属性
|
属性名称 |
说明 |
是否支持变量绑定 |
|---|---|---|
|
表格数据 |
表格要展示的结构化数据,格式为对象数组(如设备列表、生产记录等工业数据),支持接口请求数据或静态数据绑定。 |
是 |
|
表格列 |
表格的列配置。变量绑定需遵循指定列配置项格式,用于动态控制列的展示与功能,详情请参见列配置项。 |
是 |
|
加载动画 |
接口请求表格数据时,数据未加载完成前显示的加载效果,需配合状态变量使用。 |
是 |
|
调整列宽 |
是否允许用户拖动列边缘调整宽度,适配不同工业数据的展示需求(如长文本工艺描述、短编码字段)。 页面刷新后列宽恢复默认值。 |
是 |
|
斑马纹风格 |
表格是否为斑马纹风格。 开启后表格行交替显示背景色,提升海量数据的可读性,便于快速定位目标行(如特定设备编号、工单记录)。 |
是 |
|
行数据主键 |
行数据的唯一标识字段,用于优化数据渲染、行选中、编辑等操作的性能。如果不配置,表格将自动生成主键。 |
是 |
|
行复选框配置 |
用于定义表格多选行为的各项规则(如触发方式、默认勾选行、可选规则),当表格列中的某一列将“列类型”设置为“多选列”时生效。配置详情请参见多选配置(行复选框配置)。 |
是 |
|
服务端查询 |
配置服务端数据请求逻辑,需传入包含“api”异步方法的对象,该方法返回表格数据与分页信息,适配海量数据的服务端分页、排序、筛选。 |
是 |
|
分页配置 |
配合“服务端查询”使用,配置分页参数(如每页条数、页码样式)。如不使用“服务端查询”,需通过独立“分页”组件实现前端分页,详情请参见设置UI引擎前端页面分页组件属性。 |
是 |
|
虚拟滚动配置 |
优化大数据量表格渲染性能的配置项,分页功能开启时不适用。配置详情请参见虚拟滚动配置。 注意:开启后需固定所有列宽,且自动禁用列宽调整功能,避免样式错乱,适配万级以上数据展示。 |
是 |
|
校验规则 |
配置表格的校验规则,仅在启用“编辑配置项”时有效。 |
是 |
|
编辑配置项 |
提供对表格行或列数据进行编辑的功能,支持单元格级别的编辑。配置详情请参见编辑配置项。 |
是 |
|
展开行配置 |
配置表格行的展开功能,支持默认展开、触发方式、展开内容等。配置详情请参见展开行配置。 |
是 |
多选配置(行复选框配置)
当表格中存在“多选列”时,用于定义多选行为,如触发方式、默认勾选行、是否显示全选按钮等。
|
字段名称 |
类型 |
是否必填 |
说明 |
|---|---|---|---|
|
trigger |
enum (cell | row) |
否 |
多选触发方式:
|
|
checkRowKeys |
string[] |
否 |
初始化时默认勾选的行主键集合,需配合“行数据主键”使用,适用于默认选中特定工业数据(如重点监控设备)。 |
|
checkMethod |
() => boolean |
否 |
决定某一行是否可被选中,返回“false”表示不可选中。 |
|
checkAll |
boolean |
否 |
初始化时是否默认勾选所有行。 |
|
showHeader |
boolean |
否 |
是否显示表头全选复选框。 “checkStrictly”为“true”时,默认隐藏。 |
|
checkStrictly |
boolean |
否 |
是否严格遵循父子行不关联规则。开启后表头全选按钮隐藏,适用于工业数据层级展示场景。 |
|
reserve |
boolean |
否 |
翻页后保留选中状态,需配置“行数据主键”,通过“getAllSelection”方法可获取所有页选中数据,适配跨页批量操作(如跨页导出工单)。 |
配置示例:
{
trigger: 'cell',
checkedRowKeys: ['ROW_1', 'ROW_2'], // 对应设备/工单主键
checkAll: false,
showHeader: true,
reserve: true // 翻页保留选中状态
}
虚拟滚动配置
用于优化大数据量工业数据(如万级设备列表、历史监控数据)的渲染性能,配置格式为对象。
|
字段名称 |
类型 |
是否必要字段 |
说明 |
|---|---|---|---|
|
animat |
boolean |
否 |
是否启用滚动动画,默认开启。 |
|
delayHover |
number |
否 |
表格在滚动、拖动等操作后,延迟触发行“hover”事件的时间(单位:毫秒)。默认值为250ms。 设置该值可避免高频操作时频繁触发“hover”事件,提升表格性能。 |
|
scrollX |
Object<ScrollConfig> |
是 |
横向虚拟滚动配置,用于列数过多场景,需固定所有列宽。 |
|
scrollY |
Object<ScrollConfig> |
是 |
纵向虚拟滚动配置,用于行数过多场景,需固定所有行高。 |
|
字段名称 |
类型 |
是否必填 |
说明 |
|---|---|---|---|
|
gt |
number |
否 |
定义大于多少范围时自动启动虚拟滚动:列宽总和超过此值启用横向滚动(默认100),行高总和超过此值启用纵向滚动(默认500)。需固定列宽/行高。 |
|
oSize |
number |
否 |
剩余数据量少于该值时触发重新渲染,默认自动计算。 |
|
rSize |
number |
否 |
每次渲染的数据条数,默认自动计算,可根据数据复杂度调整。 |
|
vSize |
number |
否 |
可视区域展示的数据条数,默认自动计算。 |
|
rHeight |
number |
否 |
指定行高,仅纵向滚动配置“scrollY”有效,默认自动计算,可固定行高以保证渲染准确。 |
|
adaptive |
boolean |
否 |
是否自动适配最优渲染方式,默认为“true”。 |
配置示例:
{
scrollX: {
gt: 15,
rSize: 14,
vSize: 10,
adaptive: false
},
scrollY: {
gt: 15,
rSize: 20,
adaptive: false
}
}
编辑配置项
用于开启表格编辑功能,适配工业场景数据修正需求(如调整工艺参数、更新设备状态),配置格式为对象。
|
字段名称 |
类型 |
是否必填 |
说明 |
|---|---|---|---|
|
trigger |
enum (click | dblclick | manual) |
否 |
编辑激活方式:
|
|
mode |
enum (cell | row) |
否 |
编辑范围:
|
|
showStatus |
boolean |
否 |
是否显示编辑状态标识,便于区分编辑中与未编辑数据。 |
|
activeMethod |
({ row: Object, column: Object})=> boolean |
否 |
自定义编辑权限规则,返回“true”可编辑,“false”禁止编辑。 |
配置示例:
{
trigger: 'click',
mode: 'cell', // 单元格编辑
showStatus: true
}
展开行配置
用于展示行数据详情(如设备运维记录、工单执行明细),配置格式为对象。
|
字段名称 |
类型 |
是否必填 |
说明 |
|---|---|---|---|
|
expandAll |
boolean |
否 |
初始化时是否展开所有行,默认为“false”,适用于需要批量查看详情的场景。 |
|
trigger |
enum(default | row | cell) |
否 |
展开/收起触发方式:
|
|
expandRowKeys |
string[] |
否 |
初始化时默认展开的行主键集合,需配合“行数据主键”使用,适用于默认展示特定数据详情(如重点设备运维记录)。 |
|
accordion |
boolean |
否 |
是否开启手风琴模式。开启后同一层级仅能展开一行,避免详情过多造成界面混乱。 |
|
showIcon |
boolean |
否 |
是否显示展开/收起图标,默认为“true”。 |
|
activeMethod |
({row}) => boolean |
否 |
自定义是否渲染展开行。返回“false”表示该行不显示展开功能,适配数据分级展示需求。 |
配置示例:
{
expandAll: false,
trigger: 'default',
expandRowKeys: ['row_1', 'row_2'], // 对应行主键
accordion: true, // 手风琴模式
showIcon: true,
activeMethod: ({row}) => {
if (row.rowId === 'row_4') {
return false; // 隐藏row_4的展开功能
}
return true;
}
}
列属性
用于配置表格单列的展示规则、交互逻辑,适配不同工业数据字段的展示需求(如编码、参数、状态等)。
|
属性名称 |
说明 |
是否支持变量绑定 |
|---|---|---|
|
列标题 |
表头显示的文本,对应数据字段名称(如“设备编号”、“工艺参数”、“工单状态”)。 |
否 |
|
列键值 |
对应表格数据源中的字段名称,用于渲染列数据(如设备数据中的“deviceNo”、“paramValue”)。 |
否 |
|
是否排序 |
表格列是否支持排序,需配合接口使用以保存排序状态。如不配合服务端接口,仅为前端临时排序,数据刷新后排序状态丢失。 |
否 |
|
列宽 |
配置列的宽度,支持像素(px)、百分比(%),适配不同长度的数据(如短编码用固定宽度,长描述用百分比宽度)。 |
否 |
|
内置渲染器 |
对列数据进行格式化渲染,适配工业场景常用数据格式。 支持:整数、小数、金额、百分比、布尔值、日期(多种格式)、时间、文本省略(鼠标悬浮显示完整内容)。 |
否 |
|
渲染函数 |
自定义列内容渲染逻辑,可实现复杂数据展示(如设备状态用不同颜色标签标识、参数超出范围标红)。 |
否 |
|
使用插槽 |
使用插槽自定义表头或列内容。 支持两种插槽:header(表头插槽)、default(单元格插槽)。 插槽参数包括:row(行数据)、column(列数据)、$table(表格实例)、seq(序号)、cell(单元格)、columnIndex(列索引)、$rowIndex(行索引)。 |
否 |
|
列类型 |
定义特殊列类型,正常数据列无需配置。
|
否 |
|
编辑配置 |
单元格编辑的渲染配置,仅支持输入框、下拉选择组件,适配工业数据编辑需求(如下拉选择设备状态、输入工艺参数值)。 |
否 |
|
筛选配置 |
配置列的筛选规则(如下拉筛选、输入筛选),适配工业场景数据筛选需求(如按设备类型、工单状态筛选)。 |
否 |
|
内容超出部分省略号配置 |
内容超出列宽时的展示方式。
|
否 |
列配置项
当“表格列”属性绑定变量时,需遵循此结构化格式配置,用于动态定义列规则。
|
字段名称 |
字段类型 |
是否必填 |
说明 |
|---|---|---|---|
|
align |
enum (left | center | right) |
否 |
列内容对齐方式,适配不同数据类型(如数值类右对齐、文本类左对齐)。 |
|
className |
string |
否 |
给单元格附加样式类名,用于自定义单元格样式(如数据异常时标红)。 |
|
editor |
object |
否 |
单元格编辑渲染配置项,对应列属性中的“编辑配置”。 |
|
field |
string |
是 |
列对应的数据源字段名称,必配字段。 |
|
filter |
boolean | FilterConfig |
否 |
列筛选配置,默认为“false”(不筛选),可配置下拉、输入等筛选方式。 |
|
fixed |
enum (left | right) |
否 |
固定列位置。
|
|
headerAlign |
enum (left | center | right) |
否 |
表头内容对齐方式,可与列内容对齐方式不一致。 |
|
indexMethod |
({ rowIndex }) => string |
否 |
自定义索引规则,仅“列类型”为“index”时有效。 |
|
minWidth |
string | number |
否 |
列最小宽度,避免内容过度压缩。 |
|
renderer |
(h, { row, column }) => VNode |
否 |
自定义列内容渲染函数,与列属性中的“渲染函数”一致。 |
|
resizable |
boolean |
否 |
单独控制该列是否允许调整宽度,优先级高于基础属性中的“调整列宽”。 |
|
rules |
{ [key: string]: object[] } |
否 |
表格编辑时的单元格校验规则,对应基础属性中的“校验规则”。 |
|
showHeaderOverflow |
string | boolean |
否 |
表头内容过长时的处理方式:
|
|
showHeaderTip |
boolean |
否 |
表头是否始终显示tooltip提示,无论内容是否溢出。 |
|
showOverflow |
string | boolean |
否 |
列内容过长时的处理方式,与列属性中的“内容超出部分省略号配置”一致。 |
|
sortable |
boolean |
否 |
单独控制该列是否允许排序,与列属性中的“是否排序”一致。 |
|
title |
string |
否 |
列标题。 注意:“列类型”为特殊列(如index、selection)时可省略,其他情况建议配置。 |
|
type |
index | selection | radio | expand |
否 |
列类型,与列属性中的“列类型”一致。 |
|
width |
number | string |
否 |
列宽度,支持像素、百分比、auto(自动适配)。 |
示例代码:
[
{
"type": "index",
"width": 50
},
{
"field": "name",
"title": "名称",
"width": 200,
"minWidth": 150,
"resizable": true,
"showOverflow": "tooltip"
},
{
"field": "area",
"title": "所属区域"
},
{
"field": "address",
"title": "地址"
},
{
"field": "introduction",
"title": "公司简介"
}
]
其他
用于表格的精细化样式控制、标识定义及扩展功能配置,适配界面定制与技术对接需求。
|
属性名称 |
说明 |
是否支持变量绑定 |
|---|---|---|
|
元素id值 |
对应HTML标签的“id”属性,同一页面内必须唯一。 |
是 |
|
样式类 |
对应HTML标签的“class”属性,为空格分隔的类名列表,用于自定义组件样式。默认为“component-base-style”。 |
是 |
|
ref引用类 |
对应Vue的“ref”属性,用于注册模板引用以访问组件实例方法。 如果为“数据源表单”组件,会自动填充默认值。 |
是 |
|
响应式监听 |
开启后,表格宽高随父容器自适应调整,需将表格高度“height”设置为“auto”,适配不同屏幕尺寸展示需求。 |
是 |
|
边框 |
是否显示表格纵向边框,提升数据行列区分度,适配严谨的界面风格。 |
是 |
|
行号连续 |
分页时序号是否连续递增,默认为“false”(每页重新从1开始)。开启后适配跨页统计需求。 |
是 |
|
高亮当前行 |
选中行是否高亮显示,斑马纹行无高亮效果,便于快速定位选中数据(如特定设备、工单)。 |
是 |
|
移入行高亮 |
鼠标悬浮行是否高亮显示,提升操作体验,便于查看行数据详情。 |
是 |
|
表格高度 |
表格内容区域(不含表头、表尾)的高度,支持像素、百分比、auto,适配界面布局需求。 |
是 |
|
内容最大高度 |
表格内容区域的最大高度,超出后显示滚动条,避免表格过高影响界面布局。 |
是 |
|
行合并 |
配置行合并规则,仅适用于普通表格,嵌套树表不支持,适配工业场景同类数据合并展示(如同一设备的多条运维记录)。 |
是 |
|
所有列列宽 |
统一设置所有列的宽度,支持像素、百分比,快速适配表格整体布局。 |
是 |
插槽信息
用于自定义表格局部内容,适配工业场景个性化展示需求。
|
插槽名称 |
说明 |
|---|---|
|
空数据 |
表格无数据时显示的占位内容,默认显示样例数据。 如需使用此插槽,需先清空表格的数据源,使其进入无数据状态。常用于展示业务化的空状态提示(如“暂无设备记录”)。 |
组件实例方法
通过“ref”引用类访问,用于在JS面板中控制表格行为,适配自定义交互需求(如批量操作、数据导出、状态重置)。
|
方法名称 |
类型定义 |
说明 |
|---|---|---|
|
clearActived |
() => void |
手动清除单元格激活状态。 |
|
clearData |
(rows: any[], field: string) => void |
手动清空单元格内容。
|
|
clearFilter |
(field: string) => void |
手动清空筛选条件。
|
|
clearRadioRow |
() => void |
清空单选行选中状态。 |
|
clearRowExpand |
() => void |
清空所有行展开状态,恢复默认折叠状态。 |
|
clearSelected |
() => void |
手动清除单元格选中状态。 |
|
clearSelection |
() => void |
清空多选行选中状态。 |
|
clearSort |
() => void |
清空排序条件,数据恢复未排序状态。 |
|
exportCsv |
(options: IExportCsvOptions) => void |
导出表格数据为CSV文件,不支持合并行/列。 “options”为一个配置对象,具体属性说明参见表1 IExportCsvOptions。 |
|
validate |
(rows: IRow | IRow[], callback: () => void)=> Promise |
表格校验。
|
|
fullValidate |
(rows: IRow[], callback: () => void)=> Promise |
全量校验,对数据所有规则完整校验,区别于“validate”(仅校验到首个未通过规则)。 |
|
getAllSelection |
() => Record<string, any>[] |
获取所有翻页保留的选中数据,配合行复选框配置的“reserve”属性使用,适配跨页批量操作。 |
|
getSelectRecords |
() => Record<string, any>[] |
获取当前页多选选中的数据,适配当前页批量操作需求。 |
|
getTableData |
() => Record<string, any>[] |
获取当前表格各类数据:footerData(表尾)、fullData(全量)、visibleData(筛选后可视)、tableData(渲染中数据)。 |
|
loadData |
(data: IRow[])=> Promise |
重载表格数据,适配数据局部更新、增量加载场景(如刷新设备状态)。 |
|
revertData |
(rows: IRow | IRow[], field?: string)=> Promise |
还原数据:传rows还原指定行;传rows+field还原指定行指定字段;无参数还原全表,适配编辑错误回滚需求。 |
|
scrollToColumn |
(column: IColumnConfig)=> Promise |
滚动到指定列,适配列数过多场景快速定位核心字段。 |
|
scrollToRow |
(row: IRow)=> Promise |
滚动到指定行,适配行数过多场景快速定位目标数据(如特定设备、工单)。 |
|
setAllSelection |
(checked: boolean)=> void |
设置当前页所有行的选中状态。
|
|
setCurrentRow |
(row: IRow)=> Promise |
设置某一行为高亮状态,适配高亮当前行场景。 |
|
setRadioRow |
(row: IRow)=> Promise |
设置某一行为单选选中状态,适配单选场景指定选择需求。 |
|
setSelection |
(rows: IRow | IRow[], checked: boolean)=> Promise |
设置指定行选中状态,checked控制选中/取消,适配批量操作指定选择需求。 |
|
toggleAllSelection |
() => Promise |
切换所有行的选中状态。 |
|
字段名称 |
类型 |
是否必填 |
说明 |
|---|---|---|---|
|
filename |
string |
是 |
导出文件名称(需带固定后缀“.csv”)。 |
|
original |
boolean |
否 |
是否为原始数据,固定为“true”。 |
|
isHeader |
boolean |
否 |
是否导出表头。 |
|
data |
array |
是 |
需要导出的表格数据。 |
|
useTabs |
boolean |
否 |
是否在每行后面添加制表符。 |
方法调用示例:
// 访问组件实例
this.$('ref引用类属性值').method()
this.$('tableRef').clearRadioRow() // 清空单选行选中状态
组件事件
表格组件提供丰富的事件监听机制,支持数据操作、用户交互等场景的事件处理。
|
事件名称 |
说明 |
|---|---|
|
onFilterChange |
筛选条件发生变化时触发。 |
|
onSortChange |
单击列头执行数据排序之前触发。可用于拦截或修改排序逻辑。 |
|
onSelectAll |
全选框时触发。勾选与取消勾选均会触发。 |
|
onSelectChange |
单击行数据复选框时触发。 |
|
onRadioChange |
单击行数据单选框时触发。 |
|
onToggleExpandChange |
行展开或收起状态切换时触发。 |
|
onCurrentChange |
当前高亮行发生改变时触发。 仅在“highlightCurrentRow”属性为“true”时有效。 |
|
onClick |
鼠标单击表格区域时触发。浏览器原生事件。 注意:由于单击表格内任何区域(含数据行、表头)均会触发,建议谨慎使用。 |
|
onChange |
浏览器原生事件,元素值发生改变时触发。 注意:此事件对表格组件本身通常无效。 |
|
onFocus |
浏览器原生事件,表格元素获得焦点时触发。 |
|
onMousemove |
浏览器原生事件,鼠标在表格区域内移动时触发。 |