UNPKG

nowrapper-json

Version:

nowrapper

55 lines (52 loc) 1.93 kB
import React from "react"; import { AxiosRequestConfig } from "axios"; import { SelectProps, OptionProps, OptGroupProps } from "antd/lib/select/index.d"; type Options = Array<{ label: any; value: any; [key: string]: any }>; export interface FetchOptions { /** 后端接口地址 */ url: string; /** 处理后端接口响应,返回标准options */ resMap?: (response: any) => Options; /** 处理后端接口响应,返回的options为,res[ resMapKeys[0] ] [ resMapKeys[1] ] ...*/ resMapKeys?: Array<{ key: string }>; /** 其他请求配置 */ axiosConfig?: AxiosRequestConfig; /** 默认选项 */ defaultOptions?: Options; } export interface SuggestOptions { /** 后端接口地址 */ url: string; /** 处理后端接口响应,返回标准options */ resMap?: (response: any) => Options; /** 处理后端接口响应,返回的options为,res[ resMapKeys[0] ] [ resMapKeys[1] ] ...*/ resMapKeys?: Array<{ key: string }>; /** 其他请求配置 */ axiosConfig?: AxiosRequestConfig; /** 第一个请求参数的name */ name: string; /** 输入停顿时间,发起请求,默认300ms */ debounce?: number; /** 默认选项 */ defaultOptions?: Options; } export type ISelectProps = SelectProps & { /** 一次请求数据生成选项 */ fetchOptions?: FetchOptions; /** 选项 */ options?: Array<{ label: string; value: any }>; /** 实时搜索请求数据生成选项 */ suggestOptions?: SuggestOptions; /** 将options通过Select.Option标签生成选项,用以在Select组件onChange时获取Option上的属性 */ childrenMode?: boolean; /** 与chilrenMode结合使用,自定义选项内容 */ optionRender?: (opt: any) => React.ReactNode; }; export default class Select extends React.Component<ISelectProps, any> { static Option: React.ClassicComponentClass<OptionProps>; static OptGroup: React.ClassicComponentClass<OptGroupProps>; }