import { SoulUIModule } from '../component' import { Table } from '../table' import { Grid, GridRenderParams } from '../grid' import { ColumnConfig } from '../column' /** * 导出 */ export declare class Export extends SoulUIModule {} /** * 导出参数 */ export interface ExportOptons { /** * 文件名 */ filename?: string; /** * 表名 */ sheetName?: string; /** * 文件类型 */ type?: string; /** * 可选文件类型列表 */ types?: string[]; /** * 输出数据的方式 */ mode?: string; /** * 输出数据的方式列表 */ modes?: string[]; /** * 是否为源数据 */ original?: boolean; /** * 是否显示内置的消息提示 */ message?: boolean; /** * 是否需要表头 */ isHeader?: boolean; /** * 是否需要表尾 */ isFooter?: boolean; /** * 是否马上下载,如果设置为 false 则通过返回结果为内容的 Promise */ download?: boolean; /** * 自定义数据 */ data?: any[]; /** * 自定义列 */ columns?: ColumnConfig[]; /** * 列过滤方法 */ columnFilterMethod?(column: ColumnConfig, $columnIndex: number, columns: ColumnConfig[]): boolean; /** * 数据过滤方法 */ dataFilterMethod?(row: any, $rowIndex: number, data: any[]): boolean; /** * 表尾过滤方法 */ footerFilterMethod?(cells: any[], $rowIndex: number, footerData: any[][]): boolean; /** * 是否服务端导出 */ remote?: boolean; /** * 只对 remote=true 有效,用于自定义导出逻辑 */ exportMethod?(params: { $table: Table, $grid: Grid, options: ExportOptons }): Promise; } /** * 导入参数 */ export interface ImportOptons { /** * 可选文件类型列表 */ types?: string[]; /** * 导入数据的方式 */ mode?: string; /** * 是否显示内置的消息提示 */ message?: boolean; /** * 是否服务端导出 */ remote?: boolean; /** * 只对 remote=true 有效,用于自定义导入逻辑 */ importMethod?(params: { $table: Table, $grid: Grid, file: File, options: ExportOptons }): Promise; } /** * 打印参数 */ export interface PrintOptons { /** * 表名 */ sheetName?: string; /** * 输出数据的方式 */ mode?: string; /** * 输出数据的方式列表 */ modes?: string[]; /** * 是否为源数据 */ original?: boolean; /** * 是否需要表头 */ isHeader?: boolean; /** * 是否需要表尾 */ isFooter?: boolean; /** * 自定义数据 */ data?: any[]; /** * 自定义列 */ columns?: ColumnConfig[]; /** * 列过滤方法 */ columnFilterMethod?(column: ColumnConfig, $columnIndex: number, columns: ColumnConfig[]): boolean; /** * 数据过滤方法 */ dataFilterMethod?(row: any, $rowIndex: number, data: any[]): boolean; /** * 表尾过滤方法 */ footerFilterMethod?(cells: any[], $rowIndex: number, footerData: any[][]): boolean; } export interface ReadFileOptions { multiple?: boolean; types?: string[]; message?: boolean; } export interface ColumnExportCellRenderParams extends GridRenderParams { row: any; column: ColumnConfig; } export interface ColumnExportFooterRenderParams extends GridRenderParams { items: any[]; _columnIndex: number; column: ColumnConfig; }