Skip to content

CommonTable公共表格

支持elTableV1与elTableV2。

尺寸

loading

基础使用

下面案例使用了useConfigs拿到的config,内部用reactive包装了下,当然直接传入一个数组也可以 推荐使用useConfigs后面不断扩展函数做一些数据操作

loading

使用虚拟化

使用虚拟化表格时注意外部容器需要确定高度宽度

loading

支持原生的所有table组件用法

会先渲染原生插槽 后追加config配置 操作列可以使用fixed定位到右边

loading

启用序号

loading

启用选择

loading

多级表头

loading

使用插槽

html
<template #field1="{cellData,column,rowData,rowIndex,tableData}">
  cellData 当前单元格数据 column 当前配置项 rowData 当前行数据 rowIndex 当行索引 tableData 表格数据
</template>

需要特殊处理的可以使用插槽 根据field 作为插槽名使用

loading

使用排序

可以在config配置sortable排序 如果需要全部支持排序可以使用全局注册的方式注入

text
registerComponentDefaultPropsMap({
    CommonTable:{
        sortable: true,
    }
})
loading

表头添加提示

loading

自定义头部渲染

js
function renderHeaderScope({ $index, column, store, _self }, { configItem, index }) {
  //{ $index, column, store, _self } 原始参数
  //$index 索引
  //column 列配置
  //store
  //_self
  //{ configItem, index } 扩展参数
  //configItem 列配置项
  //index 列索引
}
loading

单元格formatter

js
function formatter(rowData) {
  //rowData 行数据
}
loading

单元格自定义渲染

js
function cellRenderer({ cellData, column, rowData, rowIndex, tableData }) {
  //cellData 单元格数据
  //column column配置
  //rowData 行数据
  //rowIndex 行索引
  //tableData 表格数据
}
loading

隐藏列

js
//可以是 Boolean | 函数型 | 响应式
//函数型用法
function hidden({ configItem, tableData }) {
  //configItem 列配置
  //tableData 表格数据
}
loading

组件切换

js
function component({ cellData, column, rowData, rowIndex, tableData }) {
  //cellData 单元格数据
  //column column配置
  //rowData 行数据
  //rowIndex 行索引
  //tableData 表格数据
}
loading

字段可编辑

loading

禁用单元格

js
function isDisabled({ cellData, column, rowData, rowIndex, tableData }) {
  //cellData 单元格数据
  //column column配置
  //rowData 行数据
  //rowIndex 行索引
  //tableData 表格数据

  return true | false;
}
loading

字段校验

loading

Table Props

参数类型默认值说明
configCommonTableConfig[]-表格列配置数组,用于定义每列的属性和行为。
v2booleanfalse是否启用 v2 版本样式与功能(兼容旧版)。
dataDataType-表格数据源,通常是一个对象数组。
loadingbooleanfalse是否显示加载状态。
emptyTextstring-数据为空时显示的文本。
useIndexbooleanfalse是否显示索引列。
useSelectionbooleanfalse是否显示多选列。
singleSelectionbooleanfalse启用selection单选。

Element Plus 原生支持 Props (elTable)

参数类型默认值说明
rowKeystring | Function | symbol | number-行数据唯一标识字段名或函数。
heightnumber | string-表格高度,若为字符串则需包含单位(如 '300px')。
widthnumber | string-表格宽度,若为字符串则需包含单位。
maxHeightnumber | string-表格最大高度,若为字符串则需包含单位。
stripebooleanfalse是否为斑马纹表格。
borderbooleanfalse是否带有纵向边框。
size'large' | 'default' | 'small''default'设置表格元素的尺寸。
fitbooleantrue列的宽度是否自适应。
showHeaderbooleantrue是否显示表头。
highlightCurrentRowbooleanfalse是否高亮当前行。
currentRowKeystring | number-当前行的 key,用于高亮指定行。
rowClassNamestring | Function-行的 class 名称或返回 class 的函数。
rowStyleobject | Function-行的内联样式对象或返回样式的函数。
cellClassNamestring | Function-单元格的 class 名称或返回 class 的函数。
cellStyleobject | Function-单元格的内联样式对象或返回样式的函数。
headerRowClassNamestring | Function-表头行的 class 名称或返回 class 的函数。
headerRowStyleobject | Function-表头行的内联样式对象或返回样式的函数。
headerCellClassNamestring | Function-表头单元格的 class 名称或返回 class 的函数。
headerCellStyleobject | Function-表头单元格的内联样式对象或返回样式的函数。
defaultExpandAllbooleanfalse是否默认展开所有行(树形表格时有效)。
expandRowKeysArray<string | number>-可控制初始展开的行 keys 数组。
tooltipEffect'dark' | 'light''dark'tooltip 主题样式。
tooltipOptionobject-自定义 tooltip 配置项。
showSummarybooleanfalse是否在底部显示合计行。
sumTextstring'合计'合计行第一列的文本。
summaryMethodFunction-自定义合计计算方法。
spanMethodFunction-合并行或列的方法。
selectOnIndeterminatebooleanfalse控制复选框是否在不确定状态下选择。
indentnumber16树形结构中每一层缩进的像素数。
lazybooleanfalse是否懒加载子节点数据。
loadFunction-懒加载回调函数,用于加载子节点数据。
treePropsobject{ hasChildren: 'hasChildren', children: 'children' }定义树形结构的属性名。
tableLayoutstring'auto'设置表格的布局方式,如 'fixed' 或 'auto'。
scrollbarAlwaysOnbooleanfalse是否始终显示滚动条。
showOverflowTooltipbooleanfalse单元格内容溢出时是否显示 tooltip。
flexiblebooleanfalse是否允许列宽自由调整。
defaultColMinWidthnumber80所有列的最小宽度。
columnany-兼容性参数,不推荐使用。

V2 支持 Props (elTableV2)

参数类型默认值说明
cachenumber50渲染缓存行数,提高滚动性能。
estimatedRowHeightnumber50预估行高,用于虚拟滚动计算。
headerClassstring | Function-表头容器的 class 或动态生成函数。
headerPropsobject | Function-表头容器的属性对象或动态生成函数。
headerCellPropsobject | Function-表头单元格的属性对象或动态生成函数。
headerHeightnumber | number[]50表头高度,可传入数组设置多行表头高度。
footerHeightnumber0底部区域的高度。
rowClassstring | Function-行容器的 class 或动态生成函数。
rowPropsobject | Function-行容器的属性对象或动态生成函数。
rowHeightnumber50行高,用于虚拟滚动计算。
cellPropsobject | Function-单元格的属性对象或动态生成函数。
columnsColumn[]-表格列定义数组。
dataGetterFunction-获取行数据的函数,用于虚拟滚动场景。
fixedDataRowDataType[]-固定行数据,常用于固定顶部或底部行。
expandedRowKeysArray<string | number>-当前展开的行 keys 数组。
defaultExpandedRowKeysArray<string | number>-初始展开的行 keys 数组。
classstring | string[] | object-组件根元素的 class。
fixedbooleanfalse是否固定列。
hScrollbarSizenumber-水平滚动条的大小。
vScrollbarSizenumber-垂直滚动条的大小。
sortByobject-排序字段及方向。
sortStateobject-当前排序状态对象。

Table Config

属性说明类型默认值
component自定义单元格渲染组件string | ComponentType-
hidden是否隐藏该列boolean | Function | Ref | ComputedRef-
isDisabled是否禁用该列Function-
labelField标签字段名[string]-
rules表单校验规则Arrayable<FormItemRule> | Function-
helpText帮助提示文本[string]-
align单元格对齐方式'left' | 'center' | 'right'-
formatter自定义单元格内容格式化函数Function-
columnChildren子列配置,用于嵌套表头CommonTableConfig[]-
cellRenderer自定义单元格渲染函数Function-
renderHeaderScope自定义表头标题渲染函数Function-

Element Plus Config 原生支持属性(el-table-column)

属性说明类型默认值
type列类型(selection/index/expand 等)[string]-
index自定义索引列的起始值[number]-
columnKey列唯一标识符[string]-
width列宽度[number]-
minWidth最小列宽string | number-
fixed列是否固定boolean-
renderHeader自定义表头渲染函数Function-
sortable是否可排序boolean-
sortMethod自定义排序方法Function-
sortBy排序字段string | string[] | Function-
sortOrders排序顺序数组string[]-
resizable是否可调整列宽booleantrue
showOverflowTooltip超出显示 tooltipboolean-
headerAlign表头对齐方式'left' | 'center' | 'right'-
reserveSelection多选时保留已选项boolean-
filters数据过滤条件Array<{ text: string; value: string | number }>-
filterPlacement过滤弹窗位置[string]-
filterMultiple是否多选过滤booleantrue
filterMethod自定义过滤方法Function-
filteredValue当前列的过滤值string[]-

tableV2 Config

属性说明类型
component指定一个 Vue 组件用于渲染该列单元格内容string | ComponentType
hidden控制当前列是否隐藏,支持布尔值或函数动态控制boolean | Function | Ref | ComputedRef
isDisabled判断当前列是否禁用(常用于权限控制)Function
labelField设置表单字段的 label 显示字段名[string]
rules表单校验规则,支持数组或函数返回规则Arrayable<FormItemRule> | Function
helpText显示在表单项旁边的帮助提示文字[string]
align设置单元格内容对齐方式'left' | 'center' | 'right'
formatter自定义格式化函数,用于修改单元格显示内容Function