/** * 分页改变获取数据, 配合useTableData使用 * @param getData 获取数据的方法, 在调用的文件处完成getData方法的实现后传入 */ export function usePagination(getData: Function) { const tableOptions = ref({ data: [], total: 0, page: 1, limit: 10, loading: false }) /** * 分页改变 * @param newPageOrObj * @param newSize 每页条数 */ async function handlePageChange(newPageOrObj: any, newSize?: any) { if (typeof newPageOrObj === 'object' && newPageOrObj.currentPage && newPageOrObj.pageSize) { // 处理 vxe-pager 的分页参数 tableOptions.value.page = newPageOrObj.currentPage; tableOptions.value.limit = newPageOrObj.pageSize; } else { // 处理 element-plus 的分页参数 tableOptions.value.page = newPageOrObj; tableOptions.value.limit = newSize; } await getData(); } return { tableOptions, handlePageChange }; }