Skip to content

useTable

表格通用 Hook,支持分页、搜索、全选、跨页勾选等功能。

基础用法

结合a-table

姓名年龄创建时间

暂无数据

复制代码
查看代码

复合示例

一个包含,翻页,全选,排序,勾选,筛选的综合示例(结合QueryFilter)

姓名
状态
请选择状态
姓名
年龄
状态
创建时间

暂无数据

复制代码
查看代码

API

参数

参数说明类型默认值
ajaxFn请求数据的函数Function-
extraOptions额外配置选项Ref<OptionsType> | ComputedRef<OptionsType>-

extraOptions 配置项

参数说明类型默认值
extraParams额外请求参数(不包含page,size)Record<string, any>{}
rowKey行数据的 Keystring'id'
beforeFetch请求前回调函数() => void-
transformAfterFetch请求后处理函数(可用于转换data数据结构)(data: any ) => any-
afterFetch请求后回调函数(res: any) => void-
handleMultiRes处理多选结果(可用于过滤一些可勾选的rowKey)(res: any) => string[]-
fullRowsAjax获取全量数据的请求函数Function-
emit事件发射器(可用于封装对外更新的hasSelectedRows),内部会触发emit("update:hasSelectedRows", state.hasSelectedRows);Function-
needFullSelect是否需要全选功能(配套fullRowsAjax传入)booleanfalse
sortFieldKey排序字段keystringsortField
sortOrderKey排序方式keystringsortOrder
hasPagination是否启用分页(false下会隐藏分页,且去掉page,size参数)booleantrue
hasSelectedRows已选择的行数据(这里是全量数据集,包含跨页选择)any[][]

返回值

参数说明类型
state表格状态对象Object
state.curPageKeys当前页的 key 列表string[]
state.selectedRowKeys已选中的 key 列表string[]
state.selectedRows已选中的行数据Record<string, any>[]
state.totalRows全量数据any[]
state.hasSelectedRows已选择的行数据any[]
totalCheckStatus全选状态Object
totalCheckStatus.checkAll是否全选boolean
totalCheckStatus.indeterminate是否半选boolean
loading加载状态Ref<boolean>
selectAllLoading全选加载状态Ref<boolean>
pagination分页配置Ref<Object>
dataSource表格数据源Ref<any[]>
getList获取列表数据(isSearch: boolean, listOptions: ListOption) => void
onSelectChange选择变化处理函数Function
handleTableChange表格变化处理函数(用于处理分页,表头筛选,排序)Function
handleResizeColumn处理列宽变化Function
onCheckAllChange全选变化处理函数Function

getList 参数说明

参数说明类型默认值
isSearch是否为筛选请求(内部会重置页码为1)booleantrue
ListOptionneedResetChecked(是否重置勾选,会清除所有已有勾选态),backLoad(递归调用时使用,无需传入){ needResetChecked:boolean; backLoad?:boolean }{ needResetChecked:false, backLoad:false }

注意事项

  1. 内部会做倒页处理,如:第三页删除到最后一条,会向前一页请求数据。