///
import { IChosenFieldField, IChosenFieldFieldEvents } from '@/components/chose-field/types';
import { FieldProps } from 'choerodon-ui/pro/lib/data-set/Field';
import { SelectProps } from 'choerodon-ui/pro/lib/select/Select';
import { DatePickerProps } from 'choerodon-ui/pro/lib/date-picker/DatePicker';
import { DataSet } from 'choerodon-ui/pro';
import { ButtonProps } from 'choerodon-ui/pro/lib/button/Button';
import { CheckBoxProps } from 'choerodon-ui/pro/lib/check-box/CheckBox';
import { ITableColumnCheckBoxesDataProps, ITableColumnCheckBoxesOptionData } from '@/components/table-column-check-boxes';
import { OptionProps } from 'choerodon-ui/lib/select';
interface EventsProps extends IChosenFieldFieldEvents {
loadRecordAxios?: (store: IssueExportStore) => Promise; /** 查询导出记录 */
exportBefore?: (data: any) => any; /** 导出前对数据转换 */
exportAxios?: (searchData: any, fieldSort: string | undefined) => Promise; /** 导出 */
}
interface IDownLoadInfo {
id: string | null;
fileUrl: string | null;
creationDate: string | null;
lastUpdateDate: string | null;
}
interface IssueExportStoreProps {
dataSetSystemFields?: FieldProps[]; /** dataSet 数据管理 系统字段配置 */
defaultCheckedExportFields?: string[]; /** 默认选中导出字段 */
defaultInitOptions?: (data: {
options: Array;
checkedOptions: string[];
dataSet: DataSet;
}) => Array<{
label: string;
value: string;
checkBoxProps?: CheckBoxProps;
}> | void; /** 初始化选择字段的字段选项时调用 当返回空时则不进行选项覆盖 */
defaultInitFieldAction?: (data: IChosenFieldField, store: IssueExportStore) => IChosenFieldField | false | undefined | void; /** 初始化字段时调用,当返回值不为IChosenFieldField 则跳过此字段 */
defaultInitFieldFinishAction?: (data: {
customFields: IChosenFieldField[];
systemFields: IChosenFieldField[];
currentChosenField: Map;
}, store: IssueExportStore) => void; /** 初始化字段完成时调用 */
transformSystemFilter?: (data: any) => any; /** 提交数据前 对系统筛选字段数据转换 */
transformExportFieldCodes?: (data: Array, otherData: ITableColumnCheckBoxesDataProps) => Array; /** 提交数据 对系统导出字段数据转换 */
reverseTransformExportFieldCodes?: (data: Array) => Array;
events?: EventsProps;
renderField?: (field: IChosenFieldField, otherComponentProps: Partial | Partial, { dataSet }: {
dataSet: DataSet;
}) => React.ReactElement | false | null; /** 系统筛选字段项渲染 */
extraFields?: IChosenFieldField[]; /** 额外的筛选字段项 不在下拉菜单中 */
exportButtonConfig?: {
component?: React.ReactElement | ((exportEvent: (() => void)) => React.ReactElement);
buttonProps?: Partial;
buttonChildren?: any;
};
checkboxOptionsExtraConfig?: Map;
}
export { IssueExportStoreProps };
declare class IssueExportStore {
dataSetSystemFields: FieldProps[];
transformSystemFilter: (data: any) => object;
transformExportFieldCodes: (data: any, d2: any) => string[];
reverseTransformExportFieldCodes: (data: string[]) => string[];
events: EventsProps;
defaultCheckedExportFields: string[];
defaultInitFieldAction: any;
defaultInitFieldFinishAction: any;
defaultExportBefore: (data: any) => any;
defaultInitOptions: (data: any) => void;
renderField: any;
exportButtonConfig: IssueExportStoreProps['exportButtonConfig'];
checkboxOptionsExtraConfig: IssueExportStoreProps['checkboxOptionsExtraConfig'];
innerState: import("mobx").ObservableMap;
extraFields: IChosenFieldField[];
setDefaultCheckedExportFields(data: any): void;
constructor(props?: IssueExportStoreProps);
downloadInfo: IDownLoadInfo;
exportBtnHidden: boolean;
currentChosenFields: import("mobx").ObservableMap;
setState(key: string, value: any): void;
getState(key: string): any;
setDownloadInfo(data: IDownLoadInfo): void;
addExtraField(data: IChosenFieldField): void;
get getExtraFields(): IChosenFieldField[];
setExportBtnHidden(data: boolean): void;
get getDownloadInfo(): IDownLoadInfo;
setDefaultCurrentChosenFields(dataArr: IChosenFieldField[]): void;
get getCurrentChosenFieldsArr(): IChosenFieldField[];
initField(field: IChosenFieldField): IChosenFieldField | false;
initFieldFinish(customFields: IChosenFieldField[], systemFields: IChosenFieldField[], currentChosenField: Map): IChosenFieldField | false;
initChosenField(field: IChosenFieldField): IChosenFieldField | false;
exportBefore(data: T): T;
exportAxios(searchData: any, fieldSort: string | undefined): Promise;
loadRecordAxios(store: IssueExportStore): Promise;
}
export default IssueExportStore;