Appearance
useTable
表格通用 Hook,支持分页、搜索、全选、跨页勾选等功能。
基础用法
结合a-table
姓名 | 年龄 | 创建时间 |
---|---|---|
暂无数据 |
复制代码
查看代码
复合示例
一个包含,翻页,全选,排序,勾选,筛选的综合示例(结合QueryFilter)
姓名
状态
请选择状态
姓名 | 年龄 | 状态 | 创建时间 | |
---|---|---|---|---|
暂无数据 |
复制代码
查看代码
API
参数
参数 | 说明 | 类型 | 默认值 |
---|---|---|---|
ajaxFn | 请求数据的函数 | Function | - |
extraOptions | 额外配置选项 | Ref<OptionsType> | ComputedRef<OptionsType> | - |
extraOptions 配置项
参数 | 说明 | 类型 | 默认值 |
---|---|---|---|
extraParams | 额外请求参数(不包含page,size) | Record<string, any> | {} |
rowKey | 行数据的 Key | string | '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传入) | boolean | false |
sortFieldKey | 排序字段key | string | sortField |
sortOrderKey | 排序方式key | string | sortOrder |
hasPagination | 是否启用分页(false下会隐藏分页,且去掉page,size参数) | boolean | true |
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) | boolean | true |
ListOption | needResetChecked(是否重置勾选,会清除所有已有勾选态),backLoad(递归调用时使用,无需传入) | { needResetChecked:boolean; backLoad?:boolean } | { needResetChecked:false, backLoad:false } |
注意事项
- 内部会做倒页处理,如:第三页删除到最后一条,会向前一页请求数据。