import { SelectProps } from 'antd/lib/select'; import React from 'react'; import { ColDef, ColGroupDef } from 'ag-grid-community'; import type { PagedApiAdapter } from '../adapters'; import type { SelectDisplayField } from '../array-table/readOnlyFormatters'; import './index.less'; /** 选择窗口的行选择模式。 */ type DialogSelectionMode = 'single' | 'multiple'; interface IDialogSelectProps extends SelectProps { /** 自定义限定候选的名称解析;不会触发选择或联动。@author nokecy */ resolveSelected?: (values: any[]) => Promise; /** 名称查询的业务范围;如库位所属仓库,变更后不复用旧范围标签。@author nokecy */ selectedScopeKey?: string | number; /** 回显编码或名称,保持原始 value/label 和联动回调不变。@author nokecy */ displayField?: SelectDisplayField; /** 隐藏选择窗口入口(输入框内的后缀图标),只保留输入与下拉。 */ hideBtn?: boolean; request?: any; columnDefs?: (ColDef | ColGroupDef)[] | null; labelField?: any; valueField?: any; queryFun?: (item: any) => void; onChangeItem?: (item: any) => void; useAutoComplete?: boolean; /** 分页 API 适配器(默认 ABP)。@author nokecy */ pagedApiAdapter?: PagedApiAdapter; /** 选择窗口宽度,默认 960。 */ modalWidth?: number | string; /** 选择窗口层级,默认 9999(高于抽屉、其他弹窗)。 */ dialogZIndex?: number; /** 选择窗口中的行选择模式;缺省按 `mode` 推断,外层 Select 仍可保持单值。 */ dialogMode?: DialogSelectionMode; /** 选择窗口表格的初始分页大小;不影响外层 Select。 */ dialogPageSize?: number; /** 选择窗口表格可选分页大小。 */ dialogPageSizeOptions?: number[]; /** 选择窗口表格的列方案标识。 */ dialogGridKey?: string; /** 已由业务限定范围的本地候选;传入后不再请求接口,表格直接筛选完整候选集且不分页。 */ dialogDataSource?: any[]; /** 业务限制下不可带入的行;单击、确认和双击共用该条件。 */ dialogIsRowSelectable?: (row: any) => boolean; /** 自定义选择窗口内容;确认时回传所选行。传入后不再渲染内置的表格窗口。 */ dialogRenderer?: (context: { open: boolean; mode: DialogSelectionMode; onCancel: () => void; onConfirm: (rows: any[]) => void; }) => React.ReactNode; /** 选择窗口里使用的表格组件,默认 `AgGridPlus`;宿主可注入自己封装过的表格基座。 */ gridComponent?: React.ComponentType; } export { IDialogSelectProps }; declare const _default: (props: IDialogSelectProps) => React.ReactElement; export default _default;