cnd-components-mcp
Version:
An MCP service for Cnd components query | 一个减少 Cnd 组件代码生成幻觉的 MCP 服务,包含系统提示词、组件文档、API 文档、代码示例和更新日志查询
124 lines • 36.1 kB
Markdown
选择器也称为下拉框、选择框,常用于快速录入已经信息选项的场景,包括单选和多选,在选择器的下拉框中可以提供搜索功能方便用户快速定位选项,也可以同时提供创建引导链接,让用户能增加选项。
| 参数 | 说明 | 类型 | 默认值 | 是否必填 | 支持版本 |
| ---------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------- | -------- | -------- |
| size | 选择器尺寸 | 'small' | 'medium' | 'large' | 'medium' | | - |
| children | 子元素,详细使用方法参考 demo | ReactElementWithTypeMark | ReactElementWithTypeMark\[] | - | | - |
| name | name | string | - | | - |
| value | 当前值,用于受控模式 | DataSourceItem | DataSourceItem\[] | - | | - |
| defaultValue | 初始的默认值 | DataSourceItem | DataSourceItem\[] | - | | - |
| placeholder | 没有值的时候的占位符 | string | - | | - |
| autoWidth | 下拉菜单的宽度是否与选择器保持统一 | boolean | true | | - |
| label | 自定义内联 label | `React.ReactNode` | - | | - |
| hasClear | 是否有清除按钮(单选模式有效) | boolean | - | | - |
| state | 校验状态 | 'error' | 'loading' | 'success' | 'warning' | - | | - |
| readOnly | 是否只读,只读模式下可以展开弹层但不能选 | boolean | - | | - |
| disabled | 是否禁用选择器 | boolean | - | | - |
| visible | 当前弹层是否显示 | boolean | - | | - |
| defaultVisible | 弹层初始化是否显示 | boolean | - | | - |
| onVisibleChange | 弹层显示或隐藏时触发的回调 | (visible: boolean, type?: VisibleChangeType) => void | - | | - |
| popupContainer | 弹层挂载的容器节点 | string | HTMLElement | ((target: HTMLElement) => HTMLElement) | - | | - |
| popupClassName | 弹层的 className | string | - | | - |
| popupStyle | 弹层的内联样式 | `React.CSSProperties` | - | | - |
| popupProps | 添加到弹层上的属性 | PopupProps | - | | - |
| followTrigger | 是否跟随 trigger 滚动 | boolean | - | | - |
| popupContent | 自定义弹层的内容 | `React.ReactNode` | - | | - |
| menuProps | 弹层菜单属性 | MenuProps | - | | 1.18 |
| filterLocal | 是否使用本地过滤,在数据源为远程的时候需要关闭此项 | boolean | true | | - |
| filter | 本地过滤方法,返回一个 Boolean 值确定是否保留<br/><br/>**签名**:<br/>**参数**:<br/>*key*: 搜索关键字<br/>*item*: 渲染节点的 item | (key: string | number, item: ObjectItem) => boolean | - | | - |
| onToggleHighlightItem | 键盘上下键切换菜单高亮选项的回调 | (highlightKey?: unknown, type?: HighlightChangeType) => void | - | | - |
| useVirtual | 是否开启虚拟滚动模式 | boolean | - | | - |
| dataSource | 传入的数据源,可以动态渲染子项 | Array\<DataSourceItem> | - | | - |
| itemRender | 渲染 MenuItem 内容的方法<br/><br/>**签名**:<br/>**参数**:<br/>*item*: 渲染节点的 item<br/>*searchValue*: 搜索关键字(如果开启搜索) | (item: ObjectItem, searchValue: string | undefined) => `React.ReactNode` | - | | - |
| mode | 选择器模式 | 'single' | 'multiple' | 'tag' | 'single' | | - |
| notFoundContent | 弹层内容为空的文案 | `React.ReactNode` | - | | - |
| onChange | Select 发生改变时触发的回调<br/><br/>**签名**:<br/>**参数**:<br/>*value*: 选中的值<br/>*actionType*: 触发的方式,'itemClick', 'enter', 'tag'<br/>*item*: 选中的值的对象数据 (useDetailValue=false 有效) | (<br/> value: DataSourceItem | DataSourceItem\[],<br/> actionType: string,<br/> item?: ObjectItem | ObjectItem\[]<br/> ) => void | - | | - |
| hasBorder | 是否有边框 | boolean | - | | - |
| hasArrow | 是否有下拉箭头 | boolean | true | | - |
| showSearch | 展开后是否能搜索(tag 模式下固定为 true) | boolean | false | | - |
| onSearch | 当搜索框值变化时回调 | (value: string, e: `React.ChangeEvent`\<HTMLInputElement>) => void | - | | - |
| onSearchClear | 当搜索框值被清空时候的回调 | (actionType?: string) => void | - | | - |
| hasSelectAll | 多选模式下是否有全选功能 | boolean | string | - | | - |
| fillProps | 填充到选择框里的值的 key | string | - | | - |
| useDetailValue | onChange 返回的 value 使用 dataSource 的对象 | boolean | - | | - |
| cacheValue | dataSource 变化的时是否保留已选的内容 | boolean | true | | - |
| valueRender | 自定义渲染 Select 选中值的效果 | (item: ObjectItem, props?: SelectProps) => `React.ReactNode` | item => `item.label \|\| item.value` | | - |
| searchValue | 受控搜索值,一般不需要设置 | string | - | | - |
| tagInline | 是否一行显示,仅在 mode 为 multiple 的时候生效 | boolean | false | | - |
| maxTagCount | 最多显示多少个 tag | number | - | | - |
| adjustTagSize | tag 尺寸是否和 select 尺寸保持一致,仅在 multiple/tag 模式下有用 | boolean | false | | 1.24 |
| maxTagPlaceholder | 隐藏多余 tag 时显示的内容,在 maxTagCount 生效时起作用<br/><br/>**签名**:<br/>**参数**:<br/>*selectedValues*: 当前已选中的元素<br/>*totalValues*: 总待选元素 | (<br/> selectedValues: ObjectItem\[],<br/> totalValues: ObjectItem\[]<br/> ) => `React.ReactNode` | HTMLElement | - | | - |
| hiddenSelected | 选择后是否立即隐藏菜单 (mode=multiple/tag 模式生效) | boolean | - | | - |
| showDataSourceChildren | 是否展示 dataSource 中 children | boolean | true | | - |
| onRemove | tag 删除回调 | (item: ObjectItem) => void | - | | - |
| onFocus | Select 获得焦点时的回调 | (e: `React.FocusEvent`\<HTMLInputElement>) => void | - | | - |
| onBlur | Select 失去焦点时的回调 | (e: `React.FocusEvent`\<HTMLInputElement>) => void | - | | - |
| onKeyDown | Select 触发键盘事件时的回调 | (e: `React.KeyboardEvent`\<HTMLElement>) => void | - | | - |
| isPreview | 是否为预览态 | boolean | - | | - |
| renderPreview | 渲染预览态的内容<br/><br/>**签名**:<br/>**参数**:<br/>*values*: 选中的值<br/>*props*: 当前的属性 | (<br/> values: DataSourceItem | DataSourceItem\[],<br/> props?: SelectProps<br/> ) => `React.ReactNode` | - | | - |
| autoHighlightFirstItem | 自动高亮第一个选项 | boolean | true | | - |
| highlightKey | 高亮 key | string | - | | - |
| defaultHighlightKey | 默认高亮 key | string | null | - | | - |
| popupAutoFocus | 展开下拉菜单时是否自动焦点到弹层 | boolean | false | | - |
| popupComponent | 渲染弹层使用的组件 | `React.FunctionComponent` | `React.ComponentClass` | string | - | | - |
| tagClosable | 是否可以关闭 tag | boolean | true | | 1.20 |
| 参数 | 说明 | 类型 | 默认值 | 是否必填 |
| ---------------------- | -------------------------------------------------- | --------------------------------------------------------------- | -------- | -------- |
| size | 选择器尺寸 | 'small' | 'medium' | 'large' | 'medium' | |
| value | 当前值,用于受控模式 | string | number | null | - | |
| defaultValue | 初始化的默认值 | string | number | - | |
| placeholder | 没有值的时候的占位符 | string | - | |
| autoWidth | 下拉菜单的宽度是否与选择器保持统一 | boolean | true | |
| label | 自定义内联 label | `React.ReactNode` | - | |
| hasClear | 是否有清除按钮(单选模式有效) | boolean | - | |
| state | 校验状态 | 'error' | 'loading' | 'success' | 'warning' | - | |
| readOnly | 是否只读,只读模式下可以展开弹层但不能选 | boolean | - | |
| disabled | 是否禁用选择器 | boolean | - | |
| visible | 当前弹层是否显示 | boolean | - | |
| defaultVisible | 弹层初始化是否显示 | boolean | - | |
| onVisibleChange | 弹层显示或隐藏时触发的回调 | (visible: boolean, type?: VisibleChangeType) => void | - | |
| popupContainer | 弹层挂载的容器节点 | string | HTMLElement | ((target: HTMLElement) => HTMLElement) | - | |
| popupClassName | 弹层的 className | string | - | |
| popupStyle | 弹层的内联样式 | `React.CSSProperties` | - | |
| popupProps | 添加到弹层上的属性 | PopupProps | - | |
| popupContent | 自定义弹层的内容 | `React.ReactNode` | - | |
| followTrigger | 是否跟随 trigger 滚动 | boolean | - | |
| filterLocal | 是否使用本地过滤,在数据源为远程的时候需要关闭此项 | boolean | true | |
| filter | 本地过滤方法,返回一个 Boolean 值确定是否保留 | (key: string | number, item: ObjectItem) => boolean | - | |
| onToggleHighlightItem | 键盘上下键切换菜单高亮选项的回调 | (highlightKey: unknown, ...args: unknown\[]) => void | - | |
| useVirtual | 是否开启虚拟滚动模式 | boolean | - | |
| dataSource | 传入的数据源,可以动态渲染子项 | Array\<DataSourceItem> | - | |
| itemRender | 渲染 MenuItem 内容的方法 | (item: ObjectItem) => `React.ReactNode` | - | |
| onChange | AutoComplete 发生改变时触发的回调 | (value: string, actionType: string, item?: ObjectItem) => void | - | |
| onKeyDown | - | (e: `React.KeyboardEvent`\<HTMLElement>) => void | - | |
| fillProps | 填充到选择框里的值的 key | string | 'value' | |
| autoHighlightFirstItem | 自动高亮第一个选项 | boolean | true | |
| highlightKey | 高亮 key | string | - | |
| defaultHighlightKey | 默认高亮 key | string | - | |
| onFocus | AutoComplete 获得焦点时的回调 | InputProps\['onFocus'] | - | |
| children | 子元素,详细使用方法参考 demo | ReactElementWithTypeMark | ReactElementWithTypeMark\[] | - | |
| highlightHolder | 是否将当前高亮的选项作为 placeholder | boolean | - | |
| 参数 | 说明 | 类型 | 默认值 | 是否必填 |
| ----- | -------------- | --------------- | ------ | -------- |
| label | 设置分组的文案 | `React.ReactNode` | - | |
| 参数 | 说明 | 类型 | 默认值 | 是否必填 |
| -------- | -------- | ------------------------------------------------ | ------ | -------- |
| value | 选项值 | string | number | boolean | null | undefined | - | 是 |
| disabled | 是否禁用 | boolean | - | |
| 参数 | 说明 | 类型 | 默认值 | 是否必填 |
| ----------- | ---- | ------------------------------------------------ | ------ | -------- |
| value | - | string | number | boolean | null | undefined | - | |
| label | - | string | number | boolean | - | |
| color | - | string | - | |
| disabled | - | boolean | - | |
| children | - | DataSourceItem\[] | - | |
| title | - | string | - | |
| \_\_isAddon | - | boolean | - | |
| 参数 | 说明 | 类型 | 默认值 |
| ----- | ------------------------------------------------------------------------------------------------------------------------------------------------ | -------- | ------ |
| focus | 获取焦点<br><br>**签名**:<br> Function(start:Number, end: Number)<br>**参数**:<br>*start*: {Number} 光标起始位置<br>*end*: {Number} 选择结束位置 | Function | |
| 按键 | 说明 |
| :--------- | :------------------- |
| Up Arrow | 获取当前项前一项焦点 |
| Down Arrow | 获取当前项后一项焦点 |
| Enter | 打开列表或选择当前项 |
| Esc | 关闭列表 |