/** * ProTable 列配置接口 */ export interface Column { prop?: string; key?: string; label?: string; width?: number | string; minWidth?: number | string; fixed?: boolean | 'left' | 'right'; align?: 'left' | 'center' | 'right'; sorter?: boolean | ((a: any, b: any) => number); filters?: Array<{ text: string; value: any; }>; filterMethod?: (value: any, row: any) => boolean; valueType?: 'select' | 'date' | 'dateTime' | 'dateRange' | 'time' | 'timeRange' | 'text' | 'textarea' | 'password' | 'textRange'; valueEnum?: Record; hideInSearch?: boolean; hideInTable?: boolean; colSpan?: number | object; span?: number | object; slots?: { default?: string; label?: string; error?: string; }; fieldProps?: Record | ((row: any, index?: number) => Record); formItemProps?: Record; showWhenCollapsed?: boolean; initialValue?: any; rules?: any; required?: boolean; error?: string; rangeCompareMessage?: string; showMessage?: boolean; inlineMessage?: boolean; mode?: string; plain?: boolean; light?: boolean; emptyText?: string; component?: any; componentProps?: Record; statusField?: string; statusValue?: any; columnBackgroundColor?: boolean; warningText?: string; warningTooltip?: string | string[] | ((row: any, index?: number) => string | string[]); isRangeColumn?: boolean; rangePairProp?: string; maxRangeCount?: number | ((row: any) => number); cellBackgroundColor?: (row: any) => string | { backgroundColor?: string; color?: string; } | undefined; children?: Column[]; collapsibleActions?: boolean; maxVisibleActions?: number; collapsible?: boolean; defaultCollapsed?: boolean; expandIcon?: any; foldIcon?: any; formatter?: (row: any, column?: Column, cellValue?: any, index?: number) => any; clearRelatedFields?: string | string[]; }