/** * @desc 文件导出 * @author 智慧能源事业部-阳昊宸 */ import { CheckboxOptionType } from 'antd'; import React from 'react'; import { TableProColumn } from '../../hooks/useTable/types'; import { ISlideDrawerType } from '../SlideDrawer'; import { ColumnsSetting } from '../CustomColumn/types'; /** 导出列信息 */ export type ExportFileInfo = { /** 选中的列 */ checkedColumns: { key: string; label: string; }[]; /** 选中的列及其祖先列 */ tableColumns: { key: string; label: string; }[]; /** 导出格式 */ exportFormat: ExportFormat; /** 水印配置 */ waterMark?: { /** 水印内容 */ content?: string; /** 水印透明度,默认`0.5` */ opacity?: number; }; }; export interface FileExportProps { /** 是否显示抽屉,如果使用`FileExport.Button`组件,则无需传入此参数 */ visible: boolean; /** 关闭抽屉回调,如果使用`FileExport.Button`组件,则无需传入此参数 */ onClose: () => void; /** 列配置 */ columns?: TableProColumn[]; /** 用户配置,默认全选所有列时传递空对象 */ columnsSetting?: ColumnsSetting; /** 在`columnsSetting`中,标记为`hidden`时该列的表现形式。`checked`表示显示并默认勾选,`unchecked`表示显示但不勾选,`hidden`表示不显示。根据 UI 要求,默认选中全部列,默认不显示的列直接不显示,因此设置为`hidden`。*/ hiddenFieldMode?: 'checked' | 'unchecked' | 'hidden'; /** 是否允许用户操作水印配置,部分场景下可能管理员强制添加水印或不允许有水印,则可通过该参数禁用操作 */ enableWaterMarkConfig?: boolean; /** 是否默认启用水印配置功能,为`true`时,水印配置界面才显示 */ defaultShowWaterMarkConfig?: boolean; /** 水印配置,仅当`defaultShowWaterMarkConfig`为`true`时生效 */ waterMark?: ExportFileInfo['waterMark']; /** 默认导出格式,默认`excel` */ defaultExportFormat?: ExportFormat; /** 默认启用的导出格式选项,未启用的格式选项将会禁止勾选 */ enableFormats?: ExportFormat[]; /** 自定义抽屉属性,详见`SlideDrawer`组件介绍 */ drawerProps?: Omit, 'onClose' | 'visible'>; /** 字段选项宽度 */ optionWidth?: string | number; /** 导出按钮加载状态 */ exporting?: boolean; /** 导出回调 */ onExport: (params: ExportFileInfo, closeDrawer: () => void) => Promise | void; } /** 导出格式 */ export type ExportFormat = 'excel' | 'word' | 'pdf' | 'image'; /** 默认导出格式选项 */ export declare const exportFormatData: CheckboxOptionType[]; declare const FileExport: { (props: FileExportProps): React.JSX.Element; Button: (props: import("./ExportButton").ExportButtonProps) => React.JSX.Element; }; export default FileExport;