@wetspace/pro-components
Version:
::: tip 基本介绍
409 lines (407 loc) • 15 kB
TypeScript
import { ExtractPropTypes, Component, VNode, PropType } from 'vue';
import { ElTooltipProps, PaginationProps, TableColumnCtx } from 'element-plus';
import { WetValueType, WetSchemaItemType, WetSchemaProps } from '../../pro-form';
import { WetFormOption } from '../../types';
export declare const wetBaseColumnProps: {
type: {
type: StringConstructor;
default: string;
};
label: StringConstructor;
className: StringConstructor;
labelClassName: StringConstructor;
property: StringConstructor;
prop: StringConstructor;
width: {
type: (StringConstructor | NumberConstructor)[];
default: string;
};
minWidth: {
type: (StringConstructor | NumberConstructor)[];
default: string;
};
renderHeader: PropType<(data: {
column: TableColumnCtx<any>;
$index: number;
}) => VNode<import('vue').RendererNode, import('vue').RendererElement, {
[key: string]: any;
}>>;
sortable: {
type: (BooleanConstructor | StringConstructor)[];
default: boolean;
};
sortMethod: PropType<(a: any, b: any) => number>;
sortBy: PropType<string | string[] | ((row: any, index: number) => string)>;
resizable: {
type: BooleanConstructor;
default: boolean;
};
columnKey: StringConstructor;
align: StringConstructor;
headerAlign: StringConstructor;
showOverflowTooltip: {
type: PropType<boolean | Partial<Pick<ElTooltipProps, "transition" | "hideAfter" | "appendTo" | "showArrow" | "effect" | "enterable" | "popperClass" | "offset" | "placement" | "popperOptions" | "showAfter">>>;
default: undefined;
};
fixed: (BooleanConstructor | StringConstructor)[];
formatter: PropType<(row: any, column: TableColumnCtx<any>, cellValue: any, index: number) => string | VNode<import('vue').RendererNode, import('vue').RendererElement, {
[key: string]: any;
}>>;
selectable: PropType<(row: any, index: number) => boolean>;
reserveSelection: BooleanConstructor;
filterMethod: PropType<import('element-plus/es/components/table/src/table-column/defaults').FilterMethods<any>>;
filteredValue: PropType<string[]>;
filters: PropType<import('element-plus/es/components/table/src/table-column/defaults').Filters>;
filterPlacement: StringConstructor;
filterMultiple: {
type: BooleanConstructor;
default: boolean;
};
filterClassName: StringConstructor;
index: PropType<number | ((index: number) => number)>;
sortOrders: {
type: PropType<("ascending" | "descending")[]>;
default: () => string[];
validator: (val: ("ascending" | "descending")[]) => boolean;
};
};
export type CloumnPropsType = ExtractPropTypes<typeof wetBaseColumnProps>;
export type WetProTableRequstRes = {
data: any;
total: number;
success?: boolean;
};
export interface TableSpanMethodProps<T = any> {
row: T;
column: TableColumnCtx<T>;
rowIndex: number;
columnIndex: number;
}
export type WetBaseColumns = {
title?: string;
label?: string;
isScrollMark?: boolean;
dataIndex: string | string[];
tooltip?: string;
ellipsis?: boolean | Partial<ElTooltipProps>;
valueEnum?: WetFormOption[];
isRender?: boolean;
render?: (rowInfo: {
row: any;
$index: number;
}) => Component | VNode | undefined;
columns?: WetBaseColumns[];
} & Partial<Omit<TableColumnCtx<any>, 'columns'>>;
export type WetRowSelection = {
type: 'checkbox' | 'radio' | 'line';
fixed?: boolean;
onChange?: (selectedRows: any[]) => void;
};
export type WetTableExpandable = {
columns: WetBaseColumns[];
dataIndex?: string | string[];
dataOutput?: (row: any, index: number) => any;
showIndex?: boolean;
expandable?: WetTableExpandable;
size?: "" | "small" | "default" | "large";
stripe?: boolean;
} | boolean;
export declare const wetSchemaTableProps: {
emptyFormat: {
type: StringConstructor;
default: string;
};
rowKey: {
type: PropType<string | string[]>;
};
fill: {
type: BooleanConstructor;
};
columns: {
type: PropType<WetBaseColumns[]>;
default(): any[];
};
showIndex: {
type: BooleanConstructor;
default: boolean;
};
ellipsisProps: {
type: PropType<Partial<ElTooltipProps>>;
default(): {
effect: string;
placement: string;
};
};
selections: {
type: PropType<any[]>;
default(): any[];
};
rowSelection: {
type: PropType<WetRowSelection>;
};
expandable: {
type: PropType<WetTableExpandable>;
};
mergeDataIndexs: {
type: PropType<(string | string[])[]>;
};
data: {
type: PropType<any[]>;
default: () => never[];
};
size: {
readonly type: PropType<import('element-plus/es/utils').EpPropMergeType<StringConstructor, "" | "default" | "small" | "large", never>>;
readonly required: false;
readonly validator: (val: unknown) => boolean;
__epPropKey: true;
};
width: (StringConstructor | NumberConstructor)[];
height: (StringConstructor | NumberConstructor)[];
maxHeight: (StringConstructor | NumberConstructor)[];
fit: {
type: BooleanConstructor;
default: boolean;
};
stripe: BooleanConstructor;
border: BooleanConstructor;
showHeader: {
type: BooleanConstructor;
default: boolean;
};
showSummary: BooleanConstructor;
sumText: StringConstructor;
summaryMethod: PropType<import('element-plus/es/components/table/src/table/defaults').SummaryMethod<any>>;
rowClassName: PropType<import('element-plus/es/components/table/src/table/defaults').ColumnCls<any>>;
rowStyle: PropType<import('element-plus/es/components/table/src/table/defaults').ColumnStyle<any>>;
cellClassName: PropType<import('element-plus/es/components/table/src/table/defaults').CellCls<any>>;
cellStyle: PropType<import('element-plus/es/components/table/src/table/defaults').CellStyle<any>>;
headerRowClassName: PropType<import('element-plus/es/components/table/src/table/defaults').ColumnCls<any>>;
headerRowStyle: PropType<import('element-plus/es/components/table/src/table/defaults').ColumnStyle<any>>;
headerCellClassName: PropType<import('element-plus/es/components/table/src/table/defaults').CellCls<any>>;
headerCellStyle: PropType<import('element-plus/es/components/table/src/table/defaults').CellStyle<any>>;
highlightCurrentRow: BooleanConstructor;
currentRowKey: (StringConstructor | NumberConstructor)[];
emptyText: StringConstructor;
expandRowKeys: PropType<string[]>;
defaultExpandAll: BooleanConstructor;
defaultSort: PropType<import('element-plus/es/components/table/src/table/defaults').Sort>;
tooltipEffect: StringConstructor;
tooltipOptions: PropType<Partial<Pick<ElTooltipProps, "transition" | "hideAfter" | "appendTo" | "showArrow" | "effect" | "enterable" | "popperClass" | "offset" | "placement" | "popperOptions" | "showAfter">>>;
spanMethod: PropType<(data: {
row: any;
rowIndex: number;
column: TableColumnCtx<any>;
columnIndex: number;
}) => number[] | {
rowspan: number;
colspan: number;
}>;
selectOnIndeterminate: {
type: BooleanConstructor;
default: boolean;
};
indent: {
type: NumberConstructor;
default: number;
};
treeProps: {
type: PropType<import('element-plus/es/components/table/src/table/defaults').TreeProps>;
default: () => {
hasChildren: string;
children: string;
checkStrictly: boolean;
};
};
lazy: BooleanConstructor;
load: PropType<(row: any, treeNode: import('element-plus/es/components/table/src/table/defaults').TreeNode, resolve: (data: any[]) => void) => void>;
style: {
type: PropType<import('vue').CSSProperties>;
default: () => {};
};
className: {
type: StringConstructor;
default: string;
};
tableLayout: {
type: PropType<"fixed" | "auto">;
default: string;
};
scrollbarAlwaysOn: BooleanConstructor;
flexible: BooleanConstructor;
showOverflowTooltip: PropType<boolean | Partial<Pick<ElTooltipProps, "transition" | "hideAfter" | "appendTo" | "showArrow" | "effect" | "enterable" | "popperClass" | "offset" | "placement" | "popperOptions" | "showAfter">>>;
appendFilterPanelTo: StringConstructor;
scrollbarTabindex: {
type: (StringConstructor | NumberConstructor)[];
default: undefined;
};
};
export type WetSchemaTableProps = ExtractPropTypes<typeof wetSchemaTableProps>;
export type WetSchemaTableInstance = {
scrollToIndex: (index: number) => void;
};
export type WetProTableColumns = Omit<WetBaseColumns, 'columns'> & {
required?: boolean;
columns?: WetProTableColumns[];
valueType?: WetValueType;
formItemProps?: Partial<WetSchemaItemType>;
fieldProps?: Record<string, any>;
search?: boolean;
hideInSearch?: boolean;
hideInTable?: boolean;
};
export type WetProTableRequest = <T>(fromValue: T, pagination: {
pageSize: number;
currentPage: number;
}, sort?: any, filter?: any) => Promise<WetProTableRequstRes>;
export declare const wetProTableProps: {
title: StringConstructor;
request: PropType<WetProTableRequest>;
search: {
type: PropType<boolean | (Partial<Omit<WetSchemaProps, "span" | "labelWidth">> & {
collapsed?: boolean;
labelWidth?: number;
collapseShowNum?: number;
span: number;
})>;
default(): boolean;
};
columns: {
type: PropType<WetProTableColumns[]>;
default(): any[];
};
pagination: {
type: PropType<boolean | (Partial<PaginationProps> & {
position: 'left' | 'right' | 'center';
})>;
default(): boolean;
};
showMoreTools: {
type: BooleanConstructor;
default: boolean;
};
cardBordered: BooleanConstructor;
emptyFormat: {
type: StringConstructor;
default: string;
};
rowKey: {
type: PropType<string | string[]>;
};
fill: {
type: BooleanConstructor;
};
showIndex: {
type: BooleanConstructor;
default: boolean;
};
ellipsisProps: {
type: PropType<Partial<ElTooltipProps>>;
default(): {
effect: string;
placement: string;
};
};
selections: {
type: PropType<any[]>;
default(): any[];
};
rowSelection: {
type: PropType<WetRowSelection>;
};
expandable: {
type: PropType<WetTableExpandable>;
};
mergeDataIndexs: {
type: PropType<(string | string[])[]>;
};
data: {
type: PropType<any[]>;
default: () => never[];
};
size: {
readonly type: PropType<import('element-plus/es/utils').EpPropMergeType<StringConstructor, "" | "default" | "small" | "large", never>>;
readonly required: false;
readonly validator: (val: unknown) => boolean;
__epPropKey: true;
};
width: (StringConstructor | NumberConstructor)[];
height: (StringConstructor | NumberConstructor)[];
maxHeight: (StringConstructor | NumberConstructor)[];
fit: {
type: BooleanConstructor;
default: boolean;
};
stripe: BooleanConstructor;
border: BooleanConstructor;
showHeader: {
type: BooleanConstructor;
default: boolean;
};
showSummary: BooleanConstructor;
sumText: StringConstructor;
summaryMethod: PropType<import('element-plus/es/components/table/src/table/defaults').SummaryMethod<any>>;
rowClassName: PropType<import('element-plus/es/components/table/src/table/defaults').ColumnCls<any>>;
rowStyle: PropType<import('element-plus/es/components/table/src/table/defaults').ColumnStyle<any>>;
cellClassName: PropType<import('element-plus/es/components/table/src/table/defaults').CellCls<any>>;
cellStyle: PropType<import('element-plus/es/components/table/src/table/defaults').CellStyle<any>>;
headerRowClassName: PropType<import('element-plus/es/components/table/src/table/defaults').ColumnCls<any>>;
headerRowStyle: PropType<import('element-plus/es/components/table/src/table/defaults').ColumnStyle<any>>;
headerCellClassName: PropType<import('element-plus/es/components/table/src/table/defaults').CellCls<any>>;
headerCellStyle: PropType<import('element-plus/es/components/table/src/table/defaults').CellStyle<any>>;
highlightCurrentRow: BooleanConstructor;
currentRowKey: (StringConstructor | NumberConstructor)[];
emptyText: StringConstructor;
expandRowKeys: PropType<string[]>;
defaultExpandAll: BooleanConstructor;
defaultSort: PropType<import('element-plus/es/components/table/src/table/defaults').Sort>;
tooltipEffect: StringConstructor;
tooltipOptions: PropType<Partial<Pick<ElTooltipProps, "transition" | "hideAfter" | "appendTo" | "showArrow" | "effect" | "enterable" | "popperClass" | "offset" | "placement" | "popperOptions" | "showAfter">>>;
spanMethod: PropType<(data: {
row: any;
rowIndex: number;
column: TableColumnCtx<any>;
columnIndex: number;
}) => number[] | {
rowspan: number;
colspan: number;
}>;
selectOnIndeterminate: {
type: BooleanConstructor;
default: boolean;
};
indent: {
type: NumberConstructor;
default: number;
};
treeProps: {
type: PropType<import('element-plus/es/components/table/src/table/defaults').TreeProps>;
default: () => {
hasChildren: string;
children: string;
checkStrictly: boolean;
};
};
lazy: BooleanConstructor;
load: PropType<(row: any, treeNode: import('element-plus/es/components/table/src/table/defaults').TreeNode, resolve: (data: any[]) => void) => void>;
style: {
type: PropType<import('vue').CSSProperties>;
default: () => {};
};
className: {
type: StringConstructor;
default: string;
};
tableLayout: {
type: PropType<"fixed" | "auto">;
default: string;
};
scrollbarAlwaysOn: BooleanConstructor;
flexible: BooleanConstructor;
showOverflowTooltip: PropType<boolean | Partial<Pick<ElTooltipProps, "transition" | "hideAfter" | "appendTo" | "showArrow" | "effect" | "enterable" | "popperClass" | "offset" | "placement" | "popperOptions" | "showAfter">>>;
appendFilterPanelTo: StringConstructor;
scrollbarTabindex: {
type: (StringConstructor | NumberConstructor)[];
default: undefined;
};
};
export type WetProTablePropsType = ExtractPropTypes<typeof wetProTableProps>;