Skip to content

简单封装了一下

vue
<template>
  <QueryPagination
    ref="queryPaginationRef"
    :total="totalCount"
    @change="handlePaginationChange" />
</template>

<script setup lang="ts">
import { ref } from "vue";
import { QueryPagination, type QueryPaginationExpose } from "h-business-ui";


const queryPaginationRef = ref<QueryPaginationExpose>();
const totalCount = ref(0);
const handlePaginationChange = (params : Record<string, unknown>) => {
  console.log(params);
};
</script>

属性名类型默认值说明
totalnumber0总页数
layoutstring"total, sizes, prev, pager, next, jumper"分页布局模式
pageSizesnumber[]"[10, 20, 30, 40]"每页数量选项

事件名参数说明
change(params: Record<string, unknown>) => void分页,页数改变时调用的函数

方法名类型说明
resetPage() => void重置分页
resetCurrent() => void重置当前页
resetSize() => void重置每页数量
getPageParams() => Record<string, unknown>获取当前页参数

ts
export interface Props {
  total: number;
  layout?: string;
  pageSizes?: number[];
}

export interface QueryPaginationExpose {
  resetPage: () => void;
  resetCurrent: (current: number) => void;
  resetSize: (size: number) => void;
  getPageParams: () => {
    current: number;
    size: number;
  };
}