usePagination.ts 969 B

123456789101112131415161718192021222324252627282930313233343536
  1. /**
  2. * 分页改变获取数据, 配合useTableData使用
  3. * @param getData 获取数据的方法, 在调用的文件处完成getData方法的实现后传入
  4. */
  5. export function usePagination(getData: Function) {
  6. const tableOptions = ref({
  7. data: [],
  8. total: 0,
  9. page: 1,
  10. limit: 10,
  11. loading: false
  12. })
  13. /**
  14. * 分页改变
  15. * @param newPageOrObj
  16. * @param newSize 每页条数
  17. */
  18. async function handlePageChange(newPageOrObj: any, newSize?: any) {
  19. if (typeof newPageOrObj === 'object' && newPageOrObj.currentPage && newPageOrObj.pageSize) {
  20. // 处理 vxe-pager 的分页参数
  21. tableOptions.value.page = newPageOrObj.currentPage;
  22. tableOptions.value.limit = newPageOrObj.pageSize;
  23. } else {
  24. // 处理 element-plus 的分页参数
  25. tableOptions.value.page = newPageOrObj;
  26. tableOptions.value.limit = newSize;
  27. }
  28. await getData();
  29. }
  30. return {
  31. tableOptions,
  32. handlePageChange
  33. };
  34. }