import { reactive } from 'vue' interface PaginationState { pageIndex: number pageRows: number total: number } export function usePagination(defaultPageSize = 20) { const pagination = reactive({ pageIndex: 1, pageRows: defaultPageSize, total: 0, }) const resetPage = () => { pagination.pageIndex = 1 } const onPageChange = (page: number) => { pagination.pageIndex = page } const onPageSizeChange = (size: number) => { pagination.pageRows = size pagination.pageIndex = 1 } const setTotal = (total: number) => { pagination.total = total } return { pagination, resetPage, onPageChange, onPageSizeChange, setTotal, } }