generated from ccsens_fe/uni-vue3-template
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
34 lines
809 B
34 lines
809 B
import { reactive } from 'vue'
|
|
|
|
export function usePagination() {
|
|
const paginationRaw = {
|
|
pageNum: 1,
|
|
pageSize: 20,
|
|
hasNextPage: false,
|
|
nextPage: 0,
|
|
}
|
|
const pagination = reactive({ ...paginationRaw })
|
|
|
|
// update pagination
|
|
function updatePagination(res) {
|
|
if (!res) {
|
|
resetPagination()
|
|
return
|
|
}
|
|
const { nextPage, hasNextPage, pageNum, pageSize } = res
|
|
pagination.pageNum = pageNum || 1
|
|
pagination.nextPage = nextPage
|
|
pagination.hasNextPage = hasNextPage || false
|
|
pagination.pageSize = pageSize || 20
|
|
}
|
|
|
|
// reset pagination
|
|
function resetPagination() {
|
|
pagination.pageNum = 1
|
|
pagination.pageSize = 20
|
|
pagination.hasNextPage = false
|
|
pagination.nextPage = 0
|
|
}
|
|
|
|
return { pagination, updatePagination, resetPagination }
|
|
}
|
|
|