UNPKG

@wetspace/pro-components

Version:
409 lines (407 loc) 15 kB
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>;