/** * 表格列定义在进 AG Grid 之前的收口。 * * AG Grid 把 ColDef.sort 当成**受控属性**:每次 columnDefs 引用变化都会 * `_updateColumnState` → `updateColSort`。sort 有值就强制写回该列,undefined 才不动。 * * 列表的默认排序写在 colDef.sort 上(如送货单 `number: 'asc'`)。行点击会 * setState → 父组件重建 columnDefs → 默认列被重新套上升序。用户刚点的「送货日期 desc」 * 还在,于是变成多列排序;qc-ui `getSort` 又只取列状态里**第一个**有 sort 的列 * (单号钉在最左),请求就改回单号升序。表现就是:点成时间降序后,再点单元格,排序自己变了。 * * 处理:把 `sort` 挪到 `initialSort`。AG Grid 只在建列时读 initialSort,之后更新列定义不会再套。 * * @author nokecy */ type GridColumnLike = { sort?: string; initialSort?: string; children?: GridColumnLike[]; }; /** AG Grid 更新列定义时对 ColDef.sort 的处理(ag-grid-community SortService.updateColSort)。 */ export declare const applyColDefSort: (current: string | undefined, colDefSort: string | undefined) => string | undefined; /** qc-ui getSort:列状态里第一个带 sort 的列,拼成 `colId direction`。 */ export declare const firstGridSorter: (cols: readonly { colId: string; sort?: string; }[]) => string; /** * 去掉列定义上的 live `sort`,只保留 `initialSort`(首屏建列用)。 * 没有 sort、也没有 children 的列保持原引用。 */ export declare const detachLiveSortFromColumnDefs: (columns: T[] | null | undefined) => T[] | null | undefined; export {};