export interface GlobalOptions {
  /**
   * 入参 current
   *
   * Default: 'pageNo'
   */
  currentKey?: string;

  /**
   * 每页条数
   *
   * Default: 'pageSize'
   */
  pageSizeKey?: string;

  /**
   * 表格数据 key
   *
   * Default: ['data', 'list']
   */
  dataSourceKey?: string | string[];

  /**
   * 总数 key
   *
   * Default: ['data', 'total']
   */
  totalKey?: string | string[];

  /**
   * 每页条数
   *
   * Default: 10
   */
  pageSize?: number;
}
export interface UseTableOptions extends GlobalOptions {
  /**
   * 表格列
   */
  columns: any[];

  /**
   * 在请求之前做一些处理
   */
  beforeRun?(): void;

  /**
   * 在请求之后做一些处理，主要用来格式化数据
   */
  afterRun?(dataSource: any, data: any): any;

  /**
   * 表格改变时触发 change，可以对 filters 和 sorter 进行格式化，改变入参
   */
  afterChange?(
    pagination: any,
    filters: any,
    sorter: any,
    { action, currentDataSource }: { action: string; currentDataSource: any[] }
  ): void;

  /**
   * 入参
   */
  inParams?: Record<string, any>;

  /**
   * 页码
   *
   * Default: 1
   */
  current?: number;

  /**
   * 是否在 onMounted 立即调用接口渲染
   *
   * Default: true
   */
  immediate?: boolean;
}
