跳转到内容

Cascader 级联选择器

何时使用

  • 需要从一组相关联的数据集合进行选择,例如省市区,公司层级,事物分类等。
  • 从一个较大的数据集合中进行选择时,用多级分类进行分隔,方便选择。
  • 比起 Select 组件,可以在同一个浮层中完成选择,有较好的体验。

代码演示

基本

loading

默认值

loading

可以自定义显示

loading

移入展开

loading

禁用选项

loading

选择即改变

loading

多选

loading

自定义回填方式

loading

大小

loading

自定义已选项

loading

搜索

loading

动态加载选项

loading

自定义字段名

loading

前后缀

loading

扩展菜单

loading

弹出位置

loading

形态变体

loading

自定义状态

loading

API

参数说明类型默认值版本
allowClear支持清除boolean | { clearIcon?: VNode }true5.8.0: 支持对象形式
autofocus自动获取焦点booleanfalse
changeOnSelect单选时生效(multiple 下始终都可以选择),点选每级菜单选项值都会发生变化。booleanfalse
class自定义类名string-
classNames语义化结构 classRecord<SemanticDOM, string>-5.25.0
defaultOpen是否默认展示浮层boolean-
disabled禁用booleanfalse
displayRender选择后展示的渲染函数(label, selectedOptions) => VNodelabel => label.join(/)multiple: 4.18.0
tagRender自定义 tag 内容 render,仅在多选时生效({ label: string, onClose: function, value: string }) => VNode-
popupRender自定义下拉框内容(menus: VNode) => VNode-
expandIcon自定义次级菜单展开图标VNode-4.4.0
expandTrigger次级菜单的展开方式,可选 'click' 和 'hover'stringclick
fieldNames自定义 options 中 label value children 的字段object{ label: label, value: value, children: children }
getPopupContainer菜单渲染父节点。默认渲染到 body 上,如果你遇到菜单滚动定位问题,试试修改为滚动的区域,并相对其定位。示例function(triggerNode)() => document.body
loadData用于动态加载选项,无法与 showSearch 一起使用(selectedOptions) => void-
maxTagCount最多显示多少个 tag,响应式模式会对性能产生损耗number | responsive-4.17.0
maxTagPlaceholder隐藏 tag 时显示的内容VNode | function(omittedValues)-4.17.0
maxTagTextLength最大显示的 tag 文本长度number-4.17.0
notFoundContent当下拉列表为空时显示的内容VNodeNot Found
open控制浮层显隐boolean-4.17.0
options可选项数据源Option[]-
placeholder输入框占位文本string-
placement浮层预设位置bottomLeft bottomRight topLeft topRightbottomLeft4.17.0
prefix自定义前缀VNode-5.22.0
showSearch在选择框中显示搜索框boolean | Objectfalse
size输入框大小large | middle | small-
status设置校验状态'error' | 'warning'-4.19.0
styles语义化结构 styleRecord<SemanticDOM, CSSProperties>-5.25.0
suffixIcon自定义的选择框后缀图标VNode-
value(v-model)指定选中项string[] | number[]-
variant形态变体outlined | borderless | filled | underlinedoutlined5.13.0 | underlined: 5.24.0
onChange选择完成后的回调(value, selectedOptions) => void-
onOpenChange显示/隐藏浮层的回调(value) => void-
multiple支持多选节点boolean-4.17.0
showCheckedStrategy定义选中项回填的方式。Cascader.SHOW_CHILD: 只显示选中的子节点。Cascader.SHOW_PARENT: 只显示父节点(当父节点下所有子节点都选中时)。Cascader.SHOW_PARENT | Cascader.SHOW_CHILDCascader.SHOW_PARENT4.20.0
removeIcon自定义的多选框清除图标VNode-
~searchValue~设置搜索的值,需要与 showSearch 配合使用string-4.17.0
~onSearch~监听搜索,返回输入的值(search: string) => void-4.17.0
popupMenuColumnStyle下拉菜单列的样式CSSProperties-
optionRender自定义渲染下拉选项(option: Option) => VNode-5.16.0

showSearch

showSearch 为对象时,其中的字段:

参数说明类型默认值版本
autoClearSearchValue是否在选中项后清空搜索框,只在 multipletrue 时有效booleantrue5.9.0
filter接收 inputValue path 两个参数,当 path 符合筛选条件时,应返回 true,反之则返回 falsefunction(inputValue, path): boolean-
limit搜索结果展示数量number | false50
matchInputWidth搜索结果列表是否与输入框同宽(效果booleantrue
render用于渲染 filter 后的选项function(inputValue, path): VNode-
sort用于排序 filter 后的选项function(a, b, inputValue)-
searchValue设置搜索的值,需要与 showSearch 配合使用string-4.17.0
onSearch监听搜索,返回输入的值(search: string) => void-4.17.0

Option

typescript
interface Option {
  value: string | number;
  label?: VNode;
  disabled?: boolean;
  children?: Option[];
  // 标记是否为叶子节点,设置了 `loadData` 时有效
  // 设为 `false` 时会强制标记为父节点,即使当前节点没有 children,也会显示展开图标
  isLeaf?: boolean;
}

方法

名称描述版本
blur()移除焦点
focus()获取焦点

注意,如果需要获得中国省市区数据,可以参考 china-division

基于 MIT 许可发布