interface TableColumn {
dataKey: string; // 数据字段
title: string | I18n; // 列头标题
width?: string; // 列宽度可以为px或者%
dataType: 'text' | 'link' | 'file' | 'image' | 'timestamp' | 'cascadeTimestamp' | 'employee' | 'money' | 'moneyRange' | 'enum' | 'custom'; // 数据类型
float?: '' | 'left' | 'right'; // 图片浮动(仅移动端卡片模式生效)
imageProps?: React.CSSProperties; // 图片样式
imageWrapProps?: React.CSSProperties; // 图片容器样式
imageOnClick?: (e: Event, column: number) => void; // 图片点击回调
enumBadgeType?: '' | 'color' | 'background'; // 枚举样式
enumData?: any; // 枚举数据
editType?: 'text' | 'link' | 'file' | 'image' | 'timestamp' | 'cascadeTimestamp' | 'employee' | 'money' | 'moneyRange' | 'enum' | 'custom'; // 编辑格式
timeFormatter?: 'YYYY-MM-DD HH:mm:ss' | 'YYYY-MM-DD HH:mm' | 'YYYY-MM-DD' | 'YYYY-MM' | 'YYYY'; // 时间格式
align?: 'left' | 'center' | 'right'; // 对齐方式
lock?: 'none' | 'left' | 'right'; // 列固定
groupName?: string; // 分组标题
message?: string; // 用户提示
sortable?: boolean; // 是否排序
highlight?: boolean; // 是否突出显示,仅移动端卡片模式下有效
hidden?: boolean; // 是否隐藏;
resizable?: boolean; // 列宽是否可调整,必须与 宽度 重设列尺寸的时候触发的事件 搭配使用
titleRender?: (title: string) => ReactNode; // 标题定制渲染
render?: (value: any, index: number, rowData) => ReactNode; // 内容定制渲染
canEdit?: boolean; // 是否可以编辑
renderField?: (props: any, value: any, rowData: any) => ReactNode; // 定制编辑态渲染
editProps?: any; // 编辑配置
filters?: {
label: string;
value: string;
}[];
filterMode?: 'multiple' | 'single'; // 过滤模式
}