import { FilterType } from "../filter/types"; import { SortItemProps } from "../sort/types"; import React from "react"; export declare type StorageMode = "" | "localStorage"; /** * 排序总配置 */ export declare type SortType = { /** 排序是否展示 */ show: boolean; /** 排序存储模式 */ storageMode: StorageMode; list: SortItemProps[]; }; /** * 列展示总配置 */ export declare type ColumnSettingType = { /** 列设置是否展示 */ show: boolean; /** 列设置存储模式 */ storageMode: StorageMode; }; declare type DataSourceListItemType = { isCustom: boolean; columnKey?: string; label?: string; name?: string | string[]; isHidden?: boolean; }; /** * 数据源分组总配置 */ export declare type DataSourceGroupType = { /** 分组设置是否展示 */ show: boolean; /** 分组设置存储模式 */ storageMode: StorageMode; /** */ list: DataSourceListItemType[]; }; /** * Gallery封面总配置 */ declare type GalleryCoverType = { /** 封面是否展示 */ show: boolean; /** * 封面图片可以使用的字段 */ fields: string[]; /** * 封面高度 */ height: number; /** 图片裁剪方式 */ objectFit: "fill" | "cover"; }; /** * Gallery标题总配置 */ declare type GalleryTitleType = { /** 标题使用的字段 */ field: string; /** 标题行数 */ line: number; }; /** * Gallery头部区域总配置 */ declare type GalleryHeaderType = { /** 头部区域插槽 */ slot?: (record: Record, index: number) => React.ReactNode; /** 头部区域其他字段设置 */ fields: { /** 头部区域其他字段是否展示 */ show: boolean; /** 头部区域其他字段 */ list: string[]; }; }; /** * Gallery内容区域总配置 */ declare type GalleryContentType = { /** 内容区域字段配置 */ fields: { columnKey: string; show: boolean; }[]; }; export declare type GallerySettingValueType = { coverField: string | "noCover"; coverObjectFit: "fill" | "cover"; compactMode: "default" | "compact"; isShowLabel: boolean; }; /** * Gallery底部区域总配置 */ declare type GalleryFooterType = { /** 底部区域自定义渲染 */ render: (record: Record, index: number) => React.ReactNode; /** 底部区域高度 */ height: number; }; /** * Gallery模式总配置 */ export declare type GallerySettingType = { /** 卡片最小宽度 */ cardMinWidth: number; /** 卡片最大宽度 */ cardMaxWidth: number; /** 水平间隔 */ horizontalGutter: number; /** 垂直间隔 */ verticalGutter: number; /** 封面配置 */ cover: GalleryCoverType; /** 标题配置 */ title: GalleryTitleType; /** 头部区域 */ header: GalleryHeaderType; /** 内容区域 */ content: GalleryContentType; /** 固定高度 */ fixedHeight: boolean; /** 固定的卡片高度 */ cardHeight: number; /** 固定顶部 */ fixedHeader: boolean; /** 固定底部 */ fixedFooter: boolean; /** 底部区域 */ footer: GalleryFooterType; /** 卡片点击时间 */ onItem: (record: Record, index: number) => void; }; /** 视图模式 */ export declare type ModeType = "grid" | "gallery" | "kanban"; /** * 视图模式总配置 */ export declare type GridViewType = { /** 默认视图模式 */ defaultViewMode: ModeType; /** 开启多视图模式可进行页面内转换 */ multiple: boolean; /** 当前可用的视图模式列表 */ modeList: ModeType[]; }; declare type SortDetail = { fromIndex: number; toIndex: number; dataSource: Record[]; fromId: number | string; toId: number | string; fromItem: Record; toItem: Record; }; /** 导入导出模式 */ export declare type ExportImportModeType = "import" | "export" | "export_file" | "import_log"; /** * @title: 导出导入api * @description: * @return {*} * @Author: WangHan * @Date: 2024-09-11 15:44 */ export declare type ApiProps = { export?: string; import?: string; export_file: string; import_log?: string; template?: string; }; /** * 导入导出配置 */ export declare type ExportImportType = { /** 是否展示 */ show: boolean; /** 当前所选项 */ selectLists: string[]; /** 导入模版链接 */ templateFileUrl: string; /** 标题 */ title: string; hiddenKeys?: string[]; apiUrl?: ApiProps; otherParams?: any; }; /** * 设置记忆范围 */ export declare type LocalSettingsScope = "filters" | "sorting" | "columns"; /** * 本地记忆设置 */ export declare type LocalSettingsType = { /** 启用设置记忆 */ enable: boolean; /** 记忆范围 */ scope: LocalSettingsScope[]; /** 不需要记忆的筛选字段(当 scope 包含 filters 时生效) */ excludedFilterFields?: string[]; }; export declare type GridViewProps = { columns: any; dataSource: any[]; dispatch: any; /** * 画册模式的配置 */ gallery: GallerySettingType; /** * 视图设置 */ view: GridViewType; style: React.CSSProperties; pagination: any; filter: FilterType; buttons: React.ReactNode | any[]; actionButtons: any; sort: SortType; title?: React.ReactNode | (() => React.ReactNode); showTitle?: boolean; subTitle?: React.ReactNode | (() => React.ReactNode); showSubTitle?: boolean; exportImport: ExportImportType; onValuesChange: (changedValues: any, values: any) => void; summary: any; utils: any; rowKey: ((record: Record) => string) | string; columnSetting?: ColumnSettingType; dataSourceGroup?: DataSourceGroupType; loading: boolean; dragSort: boolean; onSortChange?: (detail: SortDetail) => boolean; __id?: string; __designMode?: "design"; /** * 当前本地配置的key 用此hash是否改变用来判断是否清空本地配置 不填默认使用columns数据生成hash */ currentSettingKey?: string; /** * 当前本地配置的唯一值, 不填默认使用currentSettingKey */ currentComponentId?: string; /** * 当前表格中数据发生变化事件 包含本地筛选和外部传入数据变化 * @param currentDataSource */ onDataSourceChange?: (currentDataSource: Record[]) => void; tabs: { show: boolean; type: 'default' | 'button' | 'buttonGroup' | 'dropdown'; items: { name: string; filterBy?: Record; sortBy?: string; }[]; }; /** 本地记忆设置 */ localSettings?: LocalSettingsType; }; export {};