UNPKG

fastlion-amis

Version:

一种MIS页面生成工具

102 lines (101 loc) 3.33 kB
import React from 'react'; import { OptionsControlProps, Option, FormOptionsControl } from './Options'; import { Api } from '../../types'; import { SchemaApi } from '../../Schema'; import { TransferControlSchema } from './Transfer'; /** * Select 下拉选择框。 * 文档:https://baidu.gitee.io/amis/docs/components/form/select */ export interface SelectControlSchema extends FormOptionsControl { type: 'select' | 'multi-select'; /** * 自动完成 API,当输入部分文字的时候,会将这些文字通过 ${term} 可以取到,发送给接口。 * 接口可以返回匹配到的选项,帮助用户输入。 */ autoComplete?: SchemaApi; /** * 是否可以搜索值 */ searchable?: boolean; /** * 可以自定义菜单展示。 */ menuTpl?: string; /** * 边框模式,全边框,还是半边框,或者没边框。 */ borderMode?: 'full' | 'half' | 'none'; /** * 勾选展示模式 */ selectMode?: 'table' | 'group' | 'tree' | 'chained' | 'associated'; /** * 当 selectMode 为 associated 时用来定义左侧的选项 */ leftOptions?: Array<Option>; /** * 当 selectMode 为 associated 时用来定义左侧的选择模式 */ leftMode?: 'tree' | 'list'; /** * 当 selectMode 为 associated 时用来定义右侧的选择模式 */ rightMode?: 'table' | 'list' | 'tree' | 'chained'; /** * 搜索结果展示模式 */ searchResultMode?: 'table' | 'list' | 'tree' | 'chained'; /** * 当 selectMode 为 table 时定义表格列信息。 */ columns?: Array<any>; /** * 当 searchResultMode 为 table 时定义表格列信息。 */ searchResultColumns?: Array<any>; /** * 搜索 API */ searchApi?: SchemaApi; showCount?: number; } export interface SelectProps extends OptionsControlProps { autoComplete?: Api; searchable?: boolean; defaultOpen?: boolean; useMobileUI?: boolean; } export default class SelectControl extends React.Component<SelectProps, any> { static defaultProps: Partial<SelectProps>; input: any; unHook: Function; lazyloadRemote: Function; constructor(props: SelectProps); componentWillUnmount(): void; inputRef(ref: any): void; foucs(): void; changeValue(value: Option | Array<Option> | void): void; loadRemote(input: string): Promise<(() => void) | { options: Option[]; }>; mergeOptions(options: Array<object>): Option[]; renderMenu(option: Option, state: any): JSX.Element; reload(): void; option2value(): void; renderOtherMode(): JSX.Element; render(): JSX.Element; } export interface TransferDropDownProps extends OptionsControlProps, Omit<TransferControlSchema, 'type' | 'options' | 'inputClassName' | 'className' | 'descriptionClassName'> { borderMode?: 'full' | 'half' | 'none'; useMobileUI?: boolean; showCount?: number; labelTpl?: string; } export declare class SelectControlRenderer extends SelectControl { } export declare class MultiSelectControlRenderer extends SelectControl { static defaultProps: { multiple: boolean; }; }