/**
 * 分页改变获取数据, 配合useTableData使用
 * @param getData 获取数据的方法, 在调用的文件处完成getData方法的实现后传入
 */
export function usePagination(getData: Function) {
  const tableOptions = ref({
    data: [],
    total: 0,
    page: 1,
    limit: 15,
    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
  };
}
