@cainiaofe/cn-ui-m
Version:
128 lines (127 loc) • 3.21 kB
TypeScript
import type { BaseFieldPreviewProps, BasicComponentProps } from "../../../types";
import { ReactNode } from 'react';
import type { CnCascaderSelectItem } from './cn-cascader-select-item';
import type { ExtraCallbackProps } from './extra-callback-props';
import type { CnCascaderSelectRequestConfig } from './cn-cascader-select-requestConfig';
export interface CnCascaderSelectProps extends BasicComponentProps, BaseFieldPreviewProps {
/**
* 数据源
*/
dataSource?: CnCascaderSelectItem[];
/**
* 展示模式,级联和树形
*/
mode?: 'cascade' | 'tree';
/**
* 请求配置
*/
requestConfig?: CnCascaderSelectRequestConfig;
/**
* 远程懒加载,仅在配置requestConfig后生效,默认请求参数为"value",可通过修改requestConfig.remoteLazyLoadKey来更改
*/
enableRemoteLazyLoad?: boolean;
/**
* 是否禁用
*/
disabled?: boolean;
/**
* 是否只读
*/
readOnly?: boolean;
/**
* 是否可清空
*/
hasClear?: boolean;
/**
* onChange事件是否只透出最后一个选项的值
*/
useSimpleValue?: boolean;
/**
* 异步加载数据的回调
*/
loadData?: (item?: any) => Promise<any>;
/**
* 默认值
*/
defaultValue?: any;
/**
* 受控值
*/
value?: any;
/**
* 是否多选 `v0.12.6+`
* @since 0.12.6
*/
multiple?: boolean;
/**
* 占位文案
*/
placeholder?: string;
/**
* 选中项展示的分隔符
*/
separator?: string;
/**
* 选择提示文案
*/
rootTipText?: string | ReactNode;
/**
* 尺寸
*/
size?: 'small' | 'medium' | 'large';
/**
* 抽屉容器类名
*/
drawerClassName?: string;
/**
* 是否可搜索
*/
showSearch?: boolean;
/**
* 是否本地搜索
*/
filterLocal?: boolean;
/**
* 点击选项事件
*/
onSelect?: (val?: any, item?: any) => void;
/**
* 点击清空事件
*/
onClear?: () => void;
/**
* 点击取消事件
*/
onCancel?: (reason?: string) => void;
/**
* 数据变更的回调
*/
onChange?: (value?: any, data?: CnCascaderSelectItem | CnCascaderSelectItem[], extra?: ExtraCallbackProps) => void;
/**
* 用户搜索时回调
*/
onSearch?: (value?: string) => void;
/**
* 抽屉可见变化时的回调,返回可见状态和触发可见变化的来源
*/
onVisibleChange?: (visible: boolean, reason: string | undefined) => void;
/**
* 自定义选中项的渲染事件
*/
renderContent?: (value?: CnCascaderSelectItem[], separator?: string) => ReactNode | string;
/**
* 内部变量,是否在 CnFilter quick 模式下使用
* @ignore 内部使用
*/
insideFilter?: boolean;
/**
* 用于标定是否存在于 Form 内(解决样式边距问题)
* @ignore 内部使用
*/
insideForm?: boolean;
/**
* 是否选中即发生改变, 该属性仅在单选模式下有效
* @since 0.12.6
*/
changeOnSelect?: boolean;
}