UNPKG

@cainiaofe/cn-ui-m

Version:
128 lines (127 loc) 3.21 kB
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; }