Props
XTableProps<T> 继承自 Partial<TableProps<T>>(Element Plus 原生表格属性全部透传),并新增以下字段:
| 属性 | 类型 | 默认 | 说明 |
|---|---|---|---|
columns | ColumnConfig<T>[] | 必填 | 列配置 |
data | T[] | [] | 静态数据(与 fetchFn 二选一) |
fetchFn | (params) => Promise<{ data, total }> | - | 远程数据获取函数 |
initialQueryParams | Record<string, any> | {} | 初始查询参数 |
pagination | boolean | PaginationConfig | false | 分页器配置;true 用默认值,对象则与默认值合并 |
emptyText | string | '暂无数据' | 空数据时的 el-empty 描述文字 |
emptySearchText | string | '暂无查找的数据' | 远程模式下「搜索为空」时的 el-empty 描述文字 |
其他 EP
el-table原生属性(border/stripe/height/row-key/default-expand-all/show-header...)可直接写在<XTable>上。
PaginationConfig
PaginationConfig 等价于 Partial<el-pagination 的 PaginationProps>,默认值:
ts
{
pageSize: 10,
pageSizes: [10, 20, 50, 100],
layout: 'total, sizes, prev, pager, next, jumper',
background: true,
hideOnSinglePage: false,
}ColumnConfig 列配置
ColumnConfig<T> 继承自 Partial<TableColumnCtx<T>>(EP 列属性全部透传),并扩展以下字段:
| 字段 | 类型 | 说明 |
|---|---|---|
prop | string | 必填,对应 el-table-column 的 prop |
label | string | 必填,列标题 |
type | 'selection' | 'index' | 'expand' | EP 原生列类型;不传时由 XTable 渲染单元格 |
children | ColumnConfig<T>[] | 子列,启用多级表头 |
componentType | string | 单元格渲染组件名(如 'el-tag' / 自定义注册名) |
componentProps | Record<string, any> | ((row, $index) => Record<string, any>) | 组件 props;函数按行动态计算 |
componentEvents | Record<string, (...args) => void> | 组件事件 |
slotName | string | 单元格自定义插槽名(type: 'expand' 时为展开行插槽名,默认 'expand') |
headerSlotName | string | 表头自定义插槽名 |
extraSlots | Record<string, string> | 透传 EP 原生列插槽(key=EP 插槽名,value=父组件插槽名) |
其他 EP
el-table-column原生属性(width/minWidth/align/fixed/sortable/formatter/filters/filterMethod...)可写在列配置中。