Skip to content

DataTablePlus 数据表格增强

Demo

loading

Types

ts
export type ClassStyle = & {
  class?: string
  style?: CSSProperties | string
}
export type DataTablePlusExpose<P extends DataObject = DataObject, D extends DataObject = DataObject, R extends DataObject = DataObject> = UseDataRequestReturns<P, D, R> & {
  filters: Ref<DataTableFilterState | undefined>
  sorters: Ref<Record<string, DataTableSortState> | undefined>
  dataTableRef: Readonly<ShallowRef<DataTableInst | null>>
}
export type DataTablePlusFields = DataRequestFields & {
  filter?: string
  sorter?: string
  rowKey?: string
  search?: string
  children?: string
}
export type DataTablePlusProps<P extends DataObject = DataObject, D extends DataObject = DataObject, R extends DataObject = DataObject> = RemoteRequestProps<P, D> & {
  title?: string
  columns?: DataTableColumns<R>
  fields?: DataTablePlusFields
  search?: SearchInputProps & ClassStyle | boolean
  pagination?: Omit<PaginationProps, 'page' | 'pageSize' | 'itemCount'> & ClassStyle | boolean
  columnsFilterOptions?: (filters: DataTableFilterState) => Record<string, any>
  columnsSorterOptions?: (sorters: Record<string, DataTableSortState>) => Record<string, any>
  dataTableProps?: DataTableProps & ClassStyle
}
export type DataTablePlusEmits<P extends DataObject = DataObject, D extends DataObject = DataObject, R extends DataObject = DataObject> = RemoteRequestEmits<P, D> & {
  (e: 'clickRow', row: R, index: number, event: MouseEvent, currentData: R[]): void
  (e: 'contextMenuRow', row: R, index: number, event: MouseEvent, currentData: R[]): void
  (e: 'load', row: R): Promise<void>
  (e: 'scroll', ev: Event): void
  (e: 'scrollBottom', ev: Event): void
  (e: 'update:checkedRowKeys', keys: (string | number)[], rows: (R | undefined)[], meta: {
    row: R | undefined
    action: 'check' | 'uncheck' | 'checkAll' | 'uncheckAll'
  }, currentData: R[]): void
  (e: 'update:expandedRowKeys', keys: (string | number)[], currentData: R[]): void
  (e: 'update:filters', filterState: FilterState, sourceColumn: TableBaseColumn): void
  (e: 'update:sorter', options: DataTableSortState | DataTableSortState[] | null): void
  (e: 'update:page', page: number): void
  (e: 'update:pageSize', pageSize: number): void
}

Props

NameTypeDefaultDescription
api(params:Object)=>Promise-异步接口返回的数据的方法
defaultParamsObject-默认的参数
manualboolean-是否手动触发请求
titleString-标题
columnsDataTableColumns-数据表格的列
fieldsObject-内置参数的字段
searchSearchInputProps or Boolean-搜索框配置
paginationPaginationProps or Boolean-数据表格的分页配置
dataTablePropsDataTableProps-数据表格的配置
requestOptionsUseRequestOptions-VueHooks UseRequest 的请求配置
requestPluginsUseRequestPlugin[]-VueHooks UseRequest 的插件配置

Emits

NameTypeDescription
before(params: D[]) => void数据加载前
success(data: D, params: P[]) => void数据加载完成
error(error: Error, params: P[]) => void数据加载失败
finallyparams: (P[], data?: D, err?: Error) => void数据加载完成或失败
click-row(data: DataTablePlusClickRowType) => void行点击事件
context-menu-row(data: DataTablePlusClickRowType) => void上下文菜单点击事件
context-menu-select(data: ContextMenuSelectType) => void上下文菜单选择事件
n-data-table-emitslink