数据表格data-table是对el-table组件和el-pagination组件的封装,实现了数据表格的可视化设计,主要用于大数据量的展示场景。
效果展示
- 表格可视化设计

(图片可点击放大查看)
- 表格列编辑,可拖拽调整列顺序

(图片可点击放大查看)
- 操作按钮设置

(图片可点击放大查看)
原生事件
原生事件可以在Vue模板中用@事件名称添加事件处理方法。
| 事件名称 | 说明 | 回调参数 |
|---|---|---|
| dataTablePageSizeChange | 分页大小改变时触发 | (dataTable, pageSize, currentPage): dataTable,数据表格组件实例 pageSize,分页大小 currentPage,当前页码 |
| dataTablePageChange | 页码改变时触发 | (dataTable, pageSize, currentPage): dataTable,数据表格组件实例 pageSize,分页大小 currentPage,当前页码 |
| dataTableSelectionChange | 选择记录改变时触发 | (dataTable, selection, selectedIndices): dataTable,数据表格组件实例 selection,选中记录 selectedIndices,选中行索引数组 |
| operationButtonClick | 操作按钮点击时触发 | (dataTable, buttonName, rowIndex, row): dataTable,数据表格组件实例 buttonName,被点击按钮名称 rowIndex,被点击按钮所在行索引 row,被点击按钮所在行数据对象 |
交互事件
交互事件可在表单设计器中编写事件处理代码。
注意:对于同一事件名称,交互事件和原生事件不会同时触发,交互事件处理代码的执行优先级高于原生事件。
| 事件名称 | 说明 | 回调参数 |
|---|---|---|
| onPageSizeChange | 选择记录改变时触发 | (pageSize, currentPage): pageSize,分页大小 currentPage,当前页码 |
| onCurrentPageChange | 页码改变时触发 | (pageSize, currentPage): pageSize,分页大小 currentPage,当前页码 |
| onSelectionChange | 选择记录改变时触发 | (selection, selectedIndices): selection,选中记录 selectedIndices,选中行索引数组 |
| onOperationButtonClick | 点击操作按钮触发 | (buttonName, rowIndex, row): buttonName,被点击按钮名称 rowIndex,被点击按钮所在行索引 row,被点击按钮所在行数据对象 |
| onHideOperationButton | 设置操作按钮是否隐藏时回调 注意:该回调事件必须返回true或false,以控制按钮隐藏或显示。 |
(buttonConfig, rowIndex, row): buttonConfig,按钮配置对象 rowIndex,按钮所在行索引 row,按钮所在行数据对象 |
| onDisableOperationButton | 设置操作按钮是否禁用时回调 注意:该回调事件必须返回true或false,以控制按钮隐藏或显示。 |
(buttonConfig, rowIndex, row): buttonConfig,按钮配置对象 rowIndex,按钮所在行索引 row,按钮所在行数据对象 |
| onGetOperationButtonLabel | 设置操作按钮label时回调 注意:该回调事件必须返回字符串类型。 |
(buttonConfig, rowIndex, row): buttonConfig,按钮配置对象 rowIndex,按钮所在行索引 row,按钮所在行数据对象 |
| onHeaderClick | 列表头点击时触发 | (column, event): column,点击位置所在列 event,点击事件 |
| onRowClick | 行点击时触发 | (row, column, event): row,点击位置所在行 column,点击位置所在列 event,点击事件 |
| onRowDoubleClick | 行双击时触发 | (row, column, event): row,点击位置所在行 column,点击位置所在列 event,点击事件 |
| onCellClick | 单元格点击时触发 | (row, column, cell, event): row,点击位置所在行 column,点击位置所在列 cell,点击位置所在单元格 event,点击事件 |
| onCellDoubleClick | 单元格双击时触发 | (row, column, cell, event): row,点击位置所在行 column,点击位置所在列 cell,点击位置所在单元格 event,点击事件 |
| onGetRowClassName | 获取行css样式名称时回调 注意:该回调事件必须返回字符串类型,即行css样式名称。 此外还需注意:如果开启了斑马线效果,则斑马线效果优先级更高。 |
(row, rowIndex): row,行 rowIndex,行索引 |
| onGetSpanMethod | 合并单元格时回调 注意:该回调事件必须返回数组或对象,详情请参见element-ui组件库el-table的具体使用文档: 点此打开 |
(row, column, rowIndex, columnIndex): row,行 column,列 rowIndex,行索引 columnIndex,列索引 |
API方法
| 方法名 | 说明 | 参数 |
|---|---|---|
| getFormRef | 获取VFormRender组件 | — |
| getWidgetRef | 获取容器或字段组件 | (widgetName, showError): 组件名称,如组件不存在是否显示错误 |
| setHidden | 设置是否隐藏容器 | true/false |
| ————————— | ————————— | ————————— |
| setTableColumn | 设置表格列对象 | tableColumns, 数据格式参见widgetsConfig.js |
| setTableData | 设置表格数据 | tableData, 数据格式参见widgetsConfig.js |
| getTableData | 获取表格数据 | — |
| setPagination | 设置分页对象 | pagination,数据格式为: { currentPage: 1, pageSize: 15, total: 188 } |
| getSelectedRow | 获取选中行数据,返回对象数组 | — |
| getSelectedIndex | 获取选中行索引,返回数组 | — |
| setTableColumnsHidden | 设置列隐藏或显示 | (columnNames, hiddenFlag): columnNames,列名称,字符串或字符串数组 hiddenFlag,true隐藏,false显示 |
| loadColumnsFromDS | 从数据源加载表格列 | (localDsv, dsName): localDsv,本地数据源变量,默认值为空对象{},本地数据源变量自动和全局数据源合并后传递给数据源 dsName,数据源名称,无默认值 |
| loadDataFromDS | 从数据源加载表格数据 | (localDsv, dsName): localDsv,本地数据源变量,默认为空对象{},本地数据源变量自动和全局数据源合并后传递给数据源 dsName,数据源名称,默认值为空字符串,不传此参数则使用表格绑定的数据源 |
数据源
数据表格支持绑定数据源,绑定数据源后,表格数据首次加载、改变分页大小、翻页时会自动执行数据源请求,从后端获取表格数据。
需要注意的是,数据表格在执行数据源请求时,会自动给全局数据源变量DSV绑定pageSize、currentPage两个变量值,在设置数据源时可通过DSV['pageSize']、DSV['currentPage']获取变量值。
