2023-05-21 09:51:41 +08:00
|
|
|
interface PaginationData {
|
2022-10-24 13:17:43 +08:00
|
|
|
total?: number
|
|
|
|
currentPage?: number
|
|
|
|
pageSizes?: number[]
|
|
|
|
pageSize?: number
|
|
|
|
layout?: string
|
|
|
|
}
|
|
|
|
|
|
|
|
/** 默认的分页参数 */
|
2024-11-25 10:53:34 +08:00
|
|
|
const DEFAULT_PAGINATION_DATA = {
|
2022-10-24 13:17:43 +08:00
|
|
|
total: 0,
|
|
|
|
currentPage: 1,
|
|
|
|
pageSizes: [10, 20, 50],
|
|
|
|
pageSize: 10,
|
|
|
|
layout: "total, sizes, prev, pager, next, jumper"
|
|
|
|
}
|
|
|
|
|
2024-11-25 14:21:18 +08:00
|
|
|
/** 分页 Composable */
|
2024-11-25 10:53:34 +08:00
|
|
|
export function usePagination(initPaginationData: PaginationData = {}) {
|
2024-11-25 14:21:18 +08:00
|
|
|
// 合并分页参数
|
2024-11-25 10:53:34 +08:00
|
|
|
const paginationData = reactive({ ...DEFAULT_PAGINATION_DATA, ...initPaginationData })
|
2024-11-25 14:21:18 +08:00
|
|
|
// 改变当前页码
|
2022-10-24 13:17:43 +08:00
|
|
|
const handleCurrentChange = (value: number) => {
|
|
|
|
paginationData.currentPage = value
|
|
|
|
}
|
2024-11-25 14:21:18 +08:00
|
|
|
// 改变每页显示条数
|
2022-10-24 13:17:43 +08:00
|
|
|
const handleSizeChange = (value: number) => {
|
|
|
|
paginationData.pageSize = value
|
|
|
|
}
|
|
|
|
|
|
|
|
return { paginationData, handleCurrentChange, handleSizeChange }
|
|
|
|
}
|