| | |
| | | import { VNodeChild } from 'vue'; |
| | | import { PaginationProps } from './pagination'; |
| | | import { FormProps } from '/@/components/Form/index'; |
| | | import { |
| | | ExpandedRowRenderRecord, |
| | | PaginationConfig, |
| | | SorterResult, |
| | | TableCurrentDataSource, |
| | | TableCustomRecord, |
| | | TableRowSelection, |
| | | } from 'ant-design-vue/types/table/table'; |
| | | import { ColumnProps } from 'ant-design-vue/types/table/column'; |
| | | import type { VNodeChild } from 'vue'; |
| | | import type { PaginationProps } from './pagination'; |
| | | import type { FormProps } from '/@/components/Form'; |
| | | import type { |
| | | ColumnProps, |
| | | TableRowSelection as ITableRowSelection, |
| | | } from 'ant-design-vue/lib/table/interface'; |
| | | |
| | | import { ComponentType } from './componentType'; |
| | | import { VueNode } from '/@/utils/propTypes'; |
| | | |
| | | export declare type SortOrder = 'ascend' | 'descend'; |
| | | |
| | | export interface TableCurrentDataSource<T = Recordable> { |
| | | currentDataSource: T[]; |
| | | } |
| | | |
| | | export interface TableRowSelection<T = any> extends ITableRowSelection { |
| | | /** |
| | | * Callback executed when selected rows change |
| | | * @type Function |
| | | */ |
| | | onChange?: (selectedRowKeys: string[] | number[], selectedRows: T[]) => any; |
| | | |
| | | /** |
| | | * Callback executed when select/deselect one row |
| | | * @type FunctionT |
| | | */ |
| | | onSelect?: (record: T, selected: boolean, selectedRows: Object[], nativeEvent: Event) => any; |
| | | |
| | | /** |
| | | * Callback executed when select/deselect all rows |
| | | * @type Function |
| | | */ |
| | | onSelectAll?: (selected: boolean, selectedRows: T[], changeRows: T[]) => any; |
| | | |
| | | /** |
| | | * Callback executed when row selection is inverted |
| | | * @type Function |
| | | */ |
| | | onSelectInvert?: (selectedRows: string[] | number[]) => any; |
| | | } |
| | | |
| | | export interface TableCustomRecord<T> { |
| | | record?: T; |
| | | index?: number; |
| | | } |
| | | |
| | | export interface ExpandedRowRenderRecord<T> extends TableCustomRecord<T> { |
| | | indent?: number; |
| | | expanded?: boolean; |
| | | } |
| | | export interface ColumnFilterItem { |
| | | text?: string; |
| | | value?: string; |
| | | children?: any; |
| | | } |
| | | |
| | | export interface RenderEditableCellParams { |
| | | dataIndex: string; |
| | | component?: ComponentType; |
| | | componentOn?: { [key: string]: Fn }; |
| | | componentProps?: any; |
| | | export interface TableCustomRecord<T = Recordable> { |
| | | record?: T; |
| | | index?: number; |
| | | } |
| | | |
| | | export interface SorterResult { |
| | | column: ColumnProps; |
| | | order: SortOrder; |
| | | field: string; |
| | | columnKey: string; |
| | | } |
| | | |
| | | export interface FetchParams { |
| | | searchInfo?: any; |
| | | searchInfo?: Recordable; |
| | | page?: number; |
| | | sortInfo?: Recordable; |
| | | filterInfo?: Recordable; |
| | | } |
| | | |
| | | export interface GetColumnsParams { |
| | | ignoreIndex?: boolean; |
| | | ignoreAction?: boolean; |
| | | sort?: boolean; |
| | | } |
| | | |
| | | export type SizeType = 'default' | 'middle' | 'small' | 'large'; |
| | | |
| | | export interface TableActionType { |
| | | reload: (opt?: FetchParams) => Promise<void>; |
| | | getSelectRows: () => any[]; |
| | | getSelectRows: <T = Recordable>() => T[]; |
| | | clearSelectedRowKeys: () => void; |
| | | expandAll: () => void; |
| | | collapseAll: () => void; |
| | | getSelectRowKeys: () => string[]; |
| | | deleteSelectRowByKey: (key: string) => void; |
| | | setPagination: (info: Partial<PaginationProps>) => void; |
| | | setTableData: (values: any[]) => void; |
| | | setTableData: <T = Recordable>(values: T[]) => void; |
| | | getColumns: (opt?: GetColumnsParams) => BasicColumn[]; |
| | | setColumns: (columns: BasicColumn[] | string[]) => void; |
| | | getDataSource: () => any[]; |
| | | getDataSource: <T = Recordable>() => T[]; |
| | | setLoading: (loading: boolean) => void; |
| | | setProps: (props: Partial<BasicTableProps>) => void; |
| | | redoHeight: () => void; |
| | | setSelectedRowKeys: (rowKeys: string[] | number[]) => void; |
| | | getPaginationRef: () => PaginationProps | boolean; |
| | | getSize: () => SizeType; |
| | | getRowSelection: () => TableRowSelection<Recordable>; |
| | | getCacheColumns: () => BasicColumn[]; |
| | | emit?: EmitType; |
| | | updateTableData: (index: number, key: string, value: any) => Recordable; |
| | | setShowPagination: (show: boolean) => Promise<void>; |
| | | getShowPagination: () => boolean; |
| | | setCacheColumnsByField?: (dataIndex: string | undefined, value: BasicColumn) => void; |
| | | } |
| | | |
| | | export interface FetchSetting { |
| | |
| | | } |
| | | |
| | | export interface BasicTableProps<T = any> { |
| | | // 点击行选中 |
| | | clickToRowSelect?: boolean; |
| | | isTreeTable?: boolean; |
| | | // 自定义排序方法 |
| | | sortFn?: (sortInfo: SorterResult) => any; |
| | | // 排序方法 |
| | | filterFn?: (data: Partial<Recordable<string[]>>) => any; |
| | | // 取消表格的默认padding |
| | | inset?: boolean; |
| | | // 显示表格设置 |
| | | showTableSetting?: boolean; |
| | | tableSetting?: TableSetting; |
| | |
| | | // 是否自动生成key |
| | | autoCreateKey?: boolean; |
| | | // 计算合计行的方法 |
| | | summaryFunc?: (...arg: any) => any[]; |
| | | summaryFunc?: (...arg: any) => Recordable[]; |
| | | // 自定义合计表格内容 |
| | | summaryData?: Recordable[]; |
| | | // 是否显示合计行 |
| | | showSummary?: boolean; |
| | | // 是否可拖拽列 |
| | | canColDrag?: boolean; |
| | | // 是否树表 |
| | | isTreeTable?: boolean; |
| | | // 接口请求对象 |
| | | api?: (...arg: any) => Promise<any>; |
| | | // 请求之前处理参数 |
| | |
| | | // 在开起搜索表单的时候,如果没有数据是否显示表格 |
| | | emptyDataIsShowTable?: boolean; |
| | | // 额外的请求参数 |
| | | searchInfo?: any; |
| | | |
| | | searchInfo?: Recordable; |
| | | // 使用搜索表单 |
| | | useSearchForm?: boolean; |
| | | // 表单配置 |
| | |
| | | // 在分页改变的时候清空选项 |
| | | clearSelectOnPageChange?: boolean; |
| | | // |
| | | rowKey?: string | ((record: any) => string); |
| | | rowKey?: string | ((record: Recordable) => string); |
| | | // 数据 |
| | | dataSource?: any[]; |
| | | dataSource?: Recordable[]; |
| | | // 标题右侧提示 |
| | | titleHelpMessage?: string | string[]; |
| | | // 表格滚动最大高度 |
| | |
| | | * @default 'children' |
| | | * @type string | string[] |
| | | */ |
| | | childrenColumnName?: string | string[]; |
| | | childrenColumnName?: string; |
| | | |
| | | /** |
| | | * Override default table elements |
| | |
| | | * Row selection config |
| | | * @type object |
| | | */ |
| | | rowSelection?: TableRowSelection<T>; |
| | | rowSelection?: TableRowSelection; |
| | | |
| | | /** |
| | | * Set horizontal or vertical scrolling, can also be used to specify the width and height of the scroll area. |
| | |
| | | * Table title renderer |
| | | * @type Function | ScopedSlot |
| | | */ |
| | | title?: VNodeChild | JSX.Element; |
| | | title?: VNodeChild | JSX.Element | string | ((data: Recordable) => string); |
| | | |
| | | /** |
| | | * Set props on per header row |
| | | * @type Function |
| | | */ |
| | | customHeaderRow?: (column: ColumnProps<T>, index: number) => object; |
| | | customHeaderRow?: (column: ColumnProps, index: number) => object; |
| | | |
| | | /** |
| | | * Set props on per row |
| | |
| | | * @param sorter |
| | | * @param currentDataSource |
| | | */ |
| | | onChange?: ( |
| | | pagination: PaginationConfig, |
| | | filters: Partial<Record<keyof T, string[]>>, |
| | | sorter: SorterResult<T>, |
| | | extra: TableCurrentDataSource<T> |
| | | ) => void; |
| | | onChange?: (pagination: any, filters: any, sorter: any, extra: any) => void; |
| | | |
| | | /** |
| | | * Callback executed when the row expand icon is clicked |
| | |
| | | onExpandedRowsChange?: (expandedRows: string[] | number[]) => void; |
| | | } |
| | | |
| | | export interface BasicColumn<T = any> extends ColumnProps<T> { |
| | | export type CellFormat = |
| | | | string |
| | | | ((text: string, record: Recordable, index: number) => string | number) |
| | | | Map<string | number, any>; |
| | | |
| | | // @ts-ignore |
| | | export interface BasicColumn extends ColumnProps { |
| | | children?: BasicColumn[]; |
| | | filters?: { |
| | | text: string; |
| | | value: string; |
| | | children?: |
| | | | unknown[] |
| | | | (((props: Record<string, unknown>) => unknown[]) & (() => unknown[]) & (() => unknown[])); |
| | | }[]; |
| | | |
| | | // |
| | | flag?: 'INDEX' | 'DEFAULT' | 'CHECKBOX' | 'RADIO' | 'ACTION'; |
| | | customTitle?: VueNode; |
| | | |
| | | slots?: Recordable; |
| | | |
| | | // Whether to hide the column by default, it can be displayed in the column configuration |
| | | defaultHidden?: boolean; |
| | | |
| | | // Help text for table column header |
| | | helpMessage?: string | string[]; |
| | | |
| | | format?: CellFormat; |
| | | |
| | | // Editable |
| | | edit?: boolean; |
| | | editRow?: boolean; |
| | | editable?: boolean; |
| | | editComponent?: ComponentType; |
| | | editComponentProps?: Recordable; |
| | | editRule?: boolean | ((text: string, record: Recordable) => Promise<string>); |
| | | editValueMap?: (value: any) => string; |
| | | onEditRow?: () => void; |
| | | } |