/** * 表头分组配置类型定义 * 支持 AG-Grid 的单层和多层表头分组 */ /** * 扁平化列配置项 * 用于 UI 展示和编辑,通过 parentId 和 level 维护层级关系 */ export interface FlatColumnItem { /** 唯一标识 */ id: string; /** 节点类型 */ type: 'group' | 'column'; /** 父节点 ID,undefined 表示根级别 */ parentId?: string; /** 层级深度,0 为根级别 */ level: number; /** 排序序号,用于维护节点顺序 */ order: number; /** 显示名称 (当前值,可被用户修改) */ headerName: string; /** 原始显示名称 (用于对比和重置) */ originalHeaderName?: string; /** AG-Grid 分组标识(仅分组类型) */ groupId?: string; /** 子列是否必须保持一起(仅分组类型) */ marryChildren?: boolean; /** 列字段名(仅列类型) */ field?: string; /** AG-Grid 列标识;业务控件列可以只有 colId,多列也可共用同一 field。@author nokecy */ colId?: string; /** 列宽 */ width?: number; /** 是否隐藏 */ hide?: boolean; /** 固定位置 */ pinned?: 'left' | 'right' | 'notPinned'; /** 单元格样式类 */ cellClass?: string; /** 是否占满剩余空间 */ flex?: number; /** 是否可排序 */ sortable?: boolean; /** 是否可过滤 */ filter?: boolean | string; /** 是否显示列过滤按钮 */ suppressHeaderFilterButton?: boolean; /** 是否新添加的节点(用于高亮显示) */ _isNew?: boolean; /** 分组是否折叠(仅分组类型,临时状态不持久化) */ _collapsed?: boolean; } /** * 旧版本列配置(用于数据迁移) */ export interface OldColumnState { field: string; headerName: string; groupName?: string; width?: number; hide?: boolean; pinned?: string; cellClass?: string; flex?: number; suppressHeaderFilterButton?: boolean; [key: string]: any; }