import React from 'react'; import { CascaderOptionType } from 'antd/es/cascader'; import { Dayjs } from 'dayjs'; import { StandardProps } from '../@types/common'; export interface SearchHeadHandles { /** 清除筛选项 */ clear: () => void; /** 清空指定项 */ resetState: (paramNameList: string[]) => void; } export interface NodeType { key: string; /** * input 输入框 * select 下拉框 * multiple 下拉复选框 * rangeInput 范围输入框 * cascader 级联选择器 * datePicker 日期选择 * rangePicker 日期范围选择 */ type: | 'input' | 'select' | 'multiple' | 'rangeInput' | 'cascader' | 'datePicker' | 'monthPicker' | 'rangePicker'; /** 是否隐藏 */ hidden?: boolean; label: string; placeholder?: string; placeholders?: [string, string]; /** select时需要 */ options?: JSX.Element[]; /** 控件宽度 */ width?: number | string; /** 额外属性 */ extraProps?: { [key: string]: any }; /** cascader时需要 */ cascaderOptionMap?: CascaderOptionType[]; validator?: (param: { [key: string]: any }) => boolean; /** 浮块渲染的目标dom */ getPopupContainer?: (node?: HTMLElement) => HTMLElement; } /** 查询时抛出来的参数类型 */ export type SearchHeadCallbackParamsType = | React.ReactText | React.ReactText[] | Dayjs | Dayjs[] | { [key: string]: any }; export interface ValidatorMapType { [key: string]: (value: any) => boolean; } export interface SearchHeadProps extends StandardProps { searchNode: NodeType[]; defaultValues?: { [key: string]: any }; onSearch: (values: { [key: string]: any }, type: 'search' | 'reset') => void; /** 隐藏重置按钮,默认不隐藏为false */ hideResetButton?: boolean; } declare const XuiSearchHead: React.ComponentType; export default XuiSearchHead;