# 表格 y-table

表格,支持slot

# 组件名称

y-table

# 基础用法

# 固定列, 宽度一定要是px

# 总计, 第一列不可为数字

# 属性


export type DataType = { [key: string]: string | number | object | Array<string | number | object> }[]

/**
 * 属性
 */
export interface YTableProps extends Record<string, unknown> {

  /***
   * 表头
   */
  options: TableHeadItem[]

  /**
   * 表内容
   */
  data: DataType[]

  /**
   * 总计显示位置
   */
  summary?: SummaryType
}

/**
 * 表头item
 */
export interface TableHeadItem extends Record<string, unknown> {
  /**
   * 列宽度,百分数,默认等距
   * 如果设置,每列都要设置,
   */
  width?: string
  /**
   * 列名称
   */
  label: string

  /***
   * 列key
   */
  columnKey: string

  /**
   * 排序, sort(不排序) desc(降序),asc(升序)
   */
  sort?: SortType

  /**
   * 固定位置
   */
  fixed?: FixedDirectionEnum
}
/**
 * 列固定位置
 */
export enum FixedDirectionEnum {
  /**
   * 左
   */
  LEFT = 'left',

  /**
   * 右
   */
  RIGHT = 'right',
}
/**
 * 统计所在行
 */
export enum SummaryType {
  /**
   * 第一行
   */
  TOP = 'top',

  /**
   * 最后一行
   */
  BOTTOM = 'bottom'
}

# 事件

/**
 * 点击排序回调结果
 */
export interface SortCallBackResult extends Record<string, unknown> {
  /**
   * 所在列名
   */
  columnKey: string

  /**
   * 顺序: ''(不排序) desc(降序),asc(升序)
   */
  sort: string
}

/**
 * 行点击回调结果
 */
export interface RowClickCallBackResult extends Record<string, unknown> {

  /**
   * 行下标,从0开始
   */
   index: number
}

/**
 * 事件
 */
interface Event {

  /**
   * 排序事件
   */
  onSort: SortCallBackResult

  /**
   * 行点击事件
   */
  onRowClick: RowClickCallBackResult
}