Skip to content

FreeTable 高级表格

基于 Table 组件的增强版本,支持列排序、列拖拽、单元格编辑、列设置等高级功能。

基础用法

c-table 类似,只需将组件替换为 c-free-table 即可使用。

斑马纹

默认开启斑马纹,可通过 stripe 属性控制。

列排序

在列定义中设置 sortable: true 即可开启前端排序。点击表头排序图标进行排序。

列拖拽

设置 draggable 属性开启列拖拽功能。拖动表头即可调整列顺序。

单元格编辑

在列定义中设置 editable: true 即可开启单元格编辑。双击单元格进入编辑模式,失焦或回车保存。

列设置

设置 showSettings 属性(默认开启)会在表格右上角显示列设置按钮,点击可勾选/取消显示列。

自定义列设置触发器

可以通过 settings-trigger 插槽自定义列设置按钮的样式。

树形数据与行拖拽

支持树形数据展示(自动识别 children 字段)和行拖拽排序。

API 参考

Props

除支持 Table 组件的所有 Props 外,额外支持:

属性名说明类型默认值
draggable是否开启列拖拽排序booleanfalse
showSettings是否显示列设置按钮(控制列显隐)booleantrue
rowDrag是否开启行拖拽排序booleanfalse
enableTree是否开启树形数据展示booleanfalse
defaultExpandAll是否默认展开所有树节点booleanfalse
treeProps树形数据配置{ children: string, hasChildren: string }{ children: 'children', hasChildren: 'hasChildren' }
columns列定义,见下文 FreeTableColumnFreeTableColumn[][]
stripe是否显示斑马纹(FreeTable 默认开启)booleantrue

Slots

插槽名说明参数
settings-trigger自定义列设置按钮触发区域-
[column.key]自定义单元格内容{ row, index }
[column.key]-edit自定义单元格编辑模式内容{ row, index, stopEditing }

FreeTableColumn

继承自 TableColumn,新增以下属性:

属性名说明类型
editable是否可编辑boolean
sortable是否开启排序boolean | 'custom'
visible是否默认显示boolean
prop字段名 (兼容 element-plus 习惯,同 key)string

Events

除支持 Table 组件的所有 Events 外,额外支持:

事件名说明回调参数
sort-change排序改变时触发{ key: string, order: 'asc' | 'desc' | null }
column-drag-end列拖拽结束时触发newColumns: FreeTableColumn[]
update:columns列配置更新时触发columns: FreeTableColumn[]
update:data数据更新时触发(如编辑后)data: any[]
row-drag-end行拖拽结束时触发(newIndex: number, oldIndex: number, row: any, newTreeData: any[])
expand-change树节点展开/收起时触发(row: any, expanded: boolean)