fastlion-amis
Version:
一种MIS页面生成工具
98 lines (97 loc) • 2.96 kB
TypeScript
import React from 'react';
import { OptionsControlProps, Option, FormOptionsControl } from './Options';
import { SchemaNode, Action, PlainObject } from '../../types';
import { SchemaTpl } from '../../Schema';
/**
* Picker
* 文档:https://baidu.gitee.io/amis/docs/components/form/picker
*/
export interface PickerControlSchema extends FormOptionsControl {
type: 'picker';
/**
* 可用来生成选中的值的描述文字
*/
labelTpl?: SchemaTpl;
/**
* 建议用 labelTpl
* 选中一个字段名用来作为值的描述文字
*/
labelField?: string;
/**
* 选一个可以用来作为值的字段。
*/
valueField?: string;
/**
* 弹窗选择框详情。
*/
pickerSchema?: any;
/**
* 弹窗模式,dialog 或者 drawer
*/
modalMode?: 'dialog' | 'drawer';
/**
* 内嵌模式,也就是说不弹框了。
*/
embed?: boolean;
/**
* 最大选中个数
*/
maxSelected?: number;
/**
* 最小选中个数
*/
minSelected?: number;
}
export interface PickerProps extends OptionsControlProps {
modalMode: 'dialog' | 'drawer';
pickerSchema: PlainObject;
labelField: string;
}
export interface PickerState {
isOpened: boolean;
isFocused: boolean;
schema: SchemaNode;
maxTagCount?: number;
}
export default class PickerControl extends React.PureComponent<PickerProps, any> {
static propsList: Array<string>;
static defaultProps: Partial<PickerProps>;
state: PickerState;
adaptation: React.RefObject<any>;
input: React.RefObject<HTMLInputElement>;
componentDidMount(): void;
componentDidUpdate(prevProps: PickerProps): void;
fetchOptions(): void;
buildSchema(props: PickerProps): {
labelTpl: any;
type: string;
pickerMode: boolean;
syncLocation: boolean;
api: import("../../Schema").SchemaApi | undefined;
keepItemSelectionOnPageChange: any;
valueField: any;
labelField: string;
bulkActions: any;
checkOnItemClick: boolean;
};
crud: any;
crudRef(ref: any): void;
reload(): void;
open(): void;
close(): void;
handleModalConfirm(values: Array<any>, action: Action, ctx: any, components: Array<any>): void;
showModal(val?: string): void;
handleChange(items: Array<any>): void;
removeItem: (index: number) => void;
handleKeyDown(e: React.KeyboardEvent): void;
handleFocus(): void;
handleBlur(): void;
handleClick(): void;
clearValue(): void;
renderValues(): React.JSX.Element;
handleIten(item: Option, index: number, bled?: boolean): React.JSX.Element;
renderBody({ popOverContainer }?: any): JSX.Element;
render(): React.JSX.Element;
}
export declare class PickerControlRenderer extends PickerControl {
}