基本配置
基本使用
@getList:触发外部获取表格数据的事件
init:设置为 true 时,组件挂载后会立即触发 @getList 事件
data:表格数据绑定值,支持 .sync 修饰符进行双向绑定
total:数据总条数,用于分页显示
API支持
组件支持通过配置内置API来自动处理数据获取和删除操作:
listApi:配置列表数据获取API函数,组件会自动调用并处理响应数据
deleteApi:配置删除操作API函数,在删除操作时自动调用
- 可以通过配置
data或者@getList事件来获取调用api后的列表数据
分页配置
- 搜索参数
search 中的分页参数:
pageNum:当前页码
pageSize:每页条数
pagination:分页组件配置(传递对象,支持 el-pagination 的所有属性和事件)
操作栏
handleRow 配置用于设置表格顶部的操作按钮栏,支持以下功能:
- 添加新增、批量删除等常用按钮
- 自定义按钮及其事件处理
- 通过插槽自定义操作栏内容
工具栏
toolbar 配置用于设置表格右上角的工具按钮栏,支持以下功能:
- 添加搜索、刷新、重置等常用按钮
- 自定义按钮及其事件处理
- 通过插槽自定义工具栏内容
表格操作列
action:操作列配置对象,设置为 false 则隐藏操作列
action.width、action.minWidth:设置为 auto 时,会根据内容自动计算列宽度
action.handles:自定义操作按钮列表
action.delete、action.view、action.edit:内置操作按钮配置
表格高度与嵌套表头
height、maxHeight:设置表格高度,当设置为 auto 时,会自适应窗口高度
calcHeight:当高度为 auto 时,可设置需要减去的底部高度值
children:用于配置多级嵌套表头,在 renderColumns 中的列配置中使用
索引列、展开列
index:索引列配置,可以是布尔值或对象,当为对象时可自定义属性(如标签文本、宽度等)
expand:展开列配置,可以是布尔值或对象,用于实现行展开功能
组件加载
loading:控制表格加载状态,支持 .sync 修饰符进行双向绑定
disableLoading:设置为 true 时禁用组件内部自动控制加载状态的功能
loadingText:自定义加载过程中显示的文本内容
loadingSpinner:自定义加载图标的类名
loadingBackground:自定义加载遮罩层的背景颜色
API
Table 属性
| 属性名 | 说明 | 类型 | 可选值 | 默认值 |
| data | 表格数据绑定值,支持 .sync 双向绑定 | Array | — | — |
| search | 搜索表单绑定值,支持 .sync 双向绑定 | Object | — | {pageNum: 1, pageSize: 10} |
| loading | 加载绑定值,支持 .sync 双向绑定 | Boolean | — | — |
| options | 表格配置 | Object | — | — |
Options 配置
配置方式说明:以下所有配置项既可以集中放在 options 对象中(如 :options="{title: '表格标题', size: 'small'}"),也可以直接配置在表格根属性上(如 :title="'表格标题'" :size="'small'")。两种方式效果相同,可根据实际需求选择更便于维护的方式。
| 属性名 | 说明 | 类型 | 可选值 | 默认值 |
| title | 表格标题 | String | - | - |
| size | 表格尺寸 | String | small/medium/large | small |
| disabled | 是否禁用 | Boolean | true/false | false |
| listApi | 列表数据获取API函数 | Function | - | - |
| deleteApi | 删除数据API函数 | Function | - | - |
| init | 初始化是否立即调用getList | Boolean | true/false | false |
| height | 表格高度, 配置auto 自动计算高度 | String | auto/- | - |
| calcHeight | 自动计算高度的偏差值 | Number | - | 0 |
| gap | 表格外间距 | Number/String | - | 20 |
| uniqueId | 是否本地生成唯一标识 | Boolean | true/false | false |
| valueKey | 唯一值的Key | String | - | "id" |
| localPagination | 启用前端本地分页 | Boolean | true/false | false |
| handleRow | 操作行配置 | Object | - | {} |
| action | 操作列配置 | Object | - | {} |
| toolbar | 工具栏配置 | Object | - | {} |
| pagination | 分页配置 | Object | - | {} |
| empty | 空状态配置 | Object | - | {} |
| renderColumns | 表格列配置 | Array / Function | []/()=>[] | - |
| props | 字段名配置 | Object | - | {} |
| selection | 选择列配置 | Boolean/Object | - | {width: 50, align: "center"} |
| index | 序号列配置 | Boolean/Object | - | {label: "序号", width: 50, align: "center"} |
| expand | 展开列配置 | Boolean/Object | - | {width: 50, align: "center"} |
| stateKey | 组件级存储键名 | String | - | - |
handleRow 操作行配置
| 属性名 | 说明 | 类型 | 可选值 | 默认值 |
| show | 是否显示 | Boolean | true/false | - |
| add | 弹窗新增按钮 | Boolean/Object | - | {} |
| rowAdd | 行新增按钮 | Boolean/Object | - | {} |
| batchDelete | 批量删除按钮配置 | Boolean/Object | - | {} |
| handles | 自定义按钮列表 | Array | - | [] |
action 操作列配置
| 属性名 | 说明 | 类型 | 可选值 | 默认值 |
| show | 是否显示 | Boolean | true/false | - |
| prop | 列属性名 | String | - | "action" |
| width | 列宽度 | String | auto/- | "auto" |
| label | 列标题 | String | - | "操作" |
| align | 对齐方式 | String | left/center/right | "center" |
| calcWidth | 宽度计算偏差 | Number | - | 20 |
| defaultWidth | 默认宽度 | Number | - | 50 |
| handles | 自定义按钮列表 | Array | - | [] |
| delete | 删除按钮配置 | Object | - | {} |
| view | 查看按钮配置 | Object | - | {} |
| edit | 编辑按钮配置 | Object | - | {} |
| rowEdit | 行编辑按钮配置 | Object | - | {} |
| handles | 自定义按钮列表 | Array | - | [] |
| 属性名 | 说明 | 类型 | 可选值 | 默认值 |
| show | 是否显示 | Boolean | true/false | - |
| handles | 自定义按钮列表 | Array | - | [] |
| batchEdit | 批量编辑按钮配置 | Object | - | {} |
| zoom | 缩放按钮配置 | Object | - | {} |
| search | 搜索按钮配置 | Object | - | {} |
| refresh | 刷新按钮配置 | Object | - | {} |
| reset | 重置按钮配置 | Object | - | {} |
| column | 列设置按钮配置 | Object | - | {} |
| handles | 自定义按钮列表 | Array | - | [] |
| 属性名 | 说明 | 类型 | 可选值 | 默认值 |
| show | 是否显示 | Boolean | true/false | - |
| align | 对齐方式 | String | left/center/right | "right" |
| pageSizes | 每页显示个数选择器的选项设置 | Array | - | [10, 20, 30, 50, 100, 200] |
| layout | 组件布局 | String | - | "total, sizes, prev, pager, next, jumper" |
| background | 是否为分页按钮添加背景色 | Boolean | true/false | true |
| pagerCount | 页码按钮的数量 | Number | - | 5 |
| localPagination | 是否本地分页 | Boolean | true/false | false |
| memorizeScroll | 分页滚动位置记忆 | Boolean | true/false | true |
empty 空状态配置
| 属性名 | 说明 | 类型 | 可选值 | 默认值 |
| image | 图片地址 | String | - | "" |
| size | 图片大小 | Number | - | 100 |
| text | 显示文本 | String | - | "暂无数据" |
renderColumns 列渲染配置
| 属性名 | 说明 | 类型 | 可选值 | 默认值 |
| hiddenList | 是否只隐藏列表 | Boolean | true/false | - |
| children | 嵌套列子列 | Array | - | - |
| spanProp | 是否合并单元格 | Boolean/String | true/false/[prop] | - |
| spanMethod | 合并单元格方法 | Function | - | - |
| isEdit | 是否允许编辑 | Boolean/Function | - | - |
| summary | 汇总方式 | String/Function | sum/avg/max/min | - |
| add | 新增时的配置 | Object | - | {} |
| edit | 编辑时的配置 | Object | - | {} |
| view | 查看时的配置 | Object | - | {} |
| form | 通用表单配置 | Object | - | {} |
| search | 搜索配置 | Object | - | {} |
| searchHeader | 搜索表头配置 | Object | - | {} |
| prop | 字段名 | String | - | 必填,用于数据绑定 |
| label | 列标题 | String | - | 显示在表头的文本 |
| show | 是否显示 | Boolean/Function | true | 支持函数形式,可动态控制显示 |
| hidden | 是否隐藏 | Boolean/Function | false | 支持函数形式,可动态控制隐藏 |
| required | 是否必填 | Boolean/Object/Function | false | 支持函数形式,可动态控制必填状态 |
| rules | 验证规则配置 | Array/Function | | 支持函数形式 |
| dict | 字典配置,支持字符串或对象形式 | Object/String | | 支持函数形式 |
| formatData | 响应式数据格式化 | Object | | |
| position | 是否开启位置渲染 | Boolean | false | 用于特殊的位置渲染场景 |
| formatter | 格式化函数 | Function | - | 用于格式化数据,返回处理后的文本内容 |
| html | 是否开启HTML渲染 | Boolean | false | 配合 formatter 使用,可以渲染 HTML 字符串 |
| render | 渲染函数 | Function | - | (h, scope) => {} |
| comp | 组件配置 | Object/Function | - | 用于配置组件的各种行为和属性 |
props 字段名配置
| 属性名 | 说明 | 类型 | 可选值 | 默认值 |
| pageNum | 页码字段名 | String | - | "pageNum" |
| pageSize | 每页数量字段名 | String | - | "pageSize" |
| total | 总数量字段名 | String | - | "total" |
| data | 数据字段名 | String | - | "data" |
插槽
| 名称 | 说明 |
| [prop] | 列渲染 |
| [prop]-header | 列渲染表头 |
| [prop]-form | 列渲染表单状态 |
| [prop]-view | 列渲染查看状态 |
| [prop]-edit | 列渲染编辑状态 |
| [prop]-add | 列渲染新增状态 |
| [prop]-search | 列渲染搜索状态 |
| [prop]-searchHeader | 列渲染搜索表头状态 |
| empty | 空状态 |
| title | 标题(覆盖原有内容) |
| title-left | 标题左侧 |
| title-right | 标题右侧 |
| title-top | 标题顶部 |
| title-bottom | 标题底部 |
| handleRow | 操作行(覆盖原有内容) |
| handleRow-left | 操作行左侧 |
| handleRow-right | 操作行右侧 |
| handleRow-top | 操作行顶部 |
| handleRow-bottom | 操作行底部 |
| toolbar | 工具栏(覆盖原有内容) |
| toolbar-left | 工具栏左侧 |
| toolbar-right | 工具栏右侧 |
| toolbar-top | 工具栏顶部 |
| toolbar-bottom | 工具栏底部 |
| pagination | 分页(覆盖原有内容) |
| pagination-left | 分页左侧 |
| pagination-right | 分页右侧 |
| pagination-top | 分页顶部 |
| pagination-bottom | 分页底部 |