import React from 'react'; import { CascaderOptionType } from 'antd/es/cascader'; import { Dayjs } from 'dayjs'; import { StandardProps } from '../@types/common'; export interface SearchFrameHandles { /** 清除筛选项 */ clear: () => void; /** 清空指定项 */ resetState: (paramNameList: string[]) => void; } export interface NodeType { key: string; /** * input 输入框 * select 下拉框 * multiple 下拉复选框 * treeSelect 树状选择 * treeSelectMultiple 树状选择复选 * rangeInput 范围输入框 * cascader 级联选择器 * datePicker 日期选择 * rangePicker 日期范围选择 */ type: | 'input' | 'select' | 'treeSelect' | 'treeSelectMultiple' | 'multiple' | 'rangeInput' | 'cascader' | 'datePicker' | 'monthPicker' | 'rangePicker'; /** 是否隐藏 */ hidden?: boolean; label: string; placeholder?: string; placeholders?: [string, string]; /** 额外属性 */ extraProps?: { [key: string]: any }; /** select treeSelect时需要 */ options?: JSX.Element[]; /** cascader时需要 */ cascaderOptionMap?: CascaderOptionType[]; /** cascader可选, 输入框展示内容自定义 */ displayRender?: (label: string[]) => string; validator?: (param: any) => boolean; /** 浮块渲染的目标dom */ getPopupContainer?: (node?: HTMLElement) => HTMLElement; /** select多级选择联动时需要 */ onChange?: (param: any) => void; /** rangeInput datePicker需要 */ disabledProps?: { title: string; curKey: string; disabledKey: string }; } /** 查询时抛出来的参数类型 */ export type SearchFrameCallbackParamsType = | React.ReactText | React.ReactText[] | Dayjs | Dayjs[] | { [key: string]: any }; export interface ValidatorMapType { [key: string]: (value: any) => boolean; } export interface SearchFrameProps extends StandardProps { searchNode: NodeType[]; defaultValues?: { [key: string]: any }; onSearch: (values: { [key: string]: any }, type: 'search' | 'reset') => void; } declare const XuiSearchFrame: React.ComponentType; export default XuiSearchFrame;