import React from 'react'; import type { CSSProperties, ForwardedRef, ReactElement, ReactNode } from 'react'; import { type DataGridRef } from '../data-grid'; import type { ColType, CustomColumnData, DataGridProps, PaginationType, SortType } from '../data-grid/typings'; import type { FilterProps } from '../filter/typings'; import type { SideBarDef } from 'ag-grid-community'; export interface SelectViewBodyOpts { loading: boolean; setLoading: (loading: boolean) => void; params: ParamsType; selectedData: RecordType[]; selectedKeys: string[]; onSelectChange: (keys: string[] | Set, records: RecordType[], rowDoubleClicked?: boolean) => void; } export interface SelectViewProps extends Pick, 'defaultColDef' | 'rowHeight' | 'cellDisplayFlex' | 'isRowSelectable' | 'rowMultiSelectWithClick' | 'suppressRowClickSelection'> { value?: RecordType[]; onChange?: (value: RecordType[], rowDoubleClicked?: boolean) => void; /** * @description 页脚 */ pagination?: boolean | PaginationType; /** * @description 是否多选 * @default true */ multiple?: boolean; /** * @description 选择列表列设置 */ columns: ColType[]; /** * @description 已选择列表列设置 */ selectedColumns?: ColType[]; /** * @description 请求方法 */ fetch?: (query: { current: number; pageSize: number; sort: SortType[]; params: ParamsType; }) => Promise<{ total: number; data: RecordType[]; }>; /** * @description 数据源 */ dataSource?: RecordType[]; /** * @description 用来对本地数据进行筛选 */ rowFilter?: (row: RecordType, params: ParamsType) => boolean; rowKey: string | ((item: RecordType) => string); /** * @description 筛选器设置 */ filter?: { sider?: (props: { value: ParamsType; onChange: (value: Partial) => void; style?: CSSProperties; }) => ReactElement; } & FilterProps; /** * 筛选参数校验,如日期范围,true: 校验通过 */ checkSearchParams?: (params: ParamsType) => boolean; loading?: boolean; readOnly?: boolean; /** * @description 表格控制栏 Specifies the side bar components. */ sideBar?: SideBarDef | string | string[] | boolean | null; /** * @description 自定义列保存 * suppressFieldValueGetter 自定义列是否计算 */ customColumnPanelStorage?: { suppressFieldValueGetter?: boolean; set: (data: CustomColumnData) => Promise | void; get: () => Promise | CustomColumnData | null | undefined; }; /** * @description 表格顶部header区域自定义 * @default null */ header?: ReactElement | ((opts: { filter: ReactElement | null; }) => ReactElement) | null; /** * @description 自定义已选择datagrid */ customSelectedGridProps?: DataGridProps; /** * @description 自定义主datagrid */ customDataGridProps?: DataGridProps; /** * @description 自定义body区域,支持函数形式获取组件内部状态 */ body?: ReactElement | ((opts: SelectViewBodyOpts) => ReactNode); } declare function SelectView, ParamsType extends Record>(originalProps: SelectViewProps, ref?: ForwardedRef>): JSX.Element; declare const _default: , ParamsType extends Record>(props: SelectViewProps & { ref?: React.ForwardedRef> | undefined; }) => JSX.Element; export default _default;