import { reactive } from 'vue';
export function usePagination(cb: any, sizeOption: Array<number> = [10, 20, 50, 100, 200, 500]): any {
const pagination = reactive({
current: 1,
total: 0,
size: sizeOption[0],
sizeOption,
onPageChange: (page: number, extraData?: object) => {
pagination.current = page;
return extraData ? cb(extraData) : cb();
},
onSizeChange: (size: number, extraData?: object) => {
pagination.current = 1;
pagination.size = size;
return extraData ? cb(extraData) : cb();
},
setTotal: (total: number) => {
pagination.total = total;
},
reset() {
pagination.current = 1;
pagination.total = 0;
pagination.size = pagination.sizeOption[0];
},
});
return [pagination, pagination.onPageChange, pagination.onSizeChange, pagination.setTotal];
}
扩展阅读