Python私教张大鹏 Vue3整合AntDesignVue之Cascader 级联选择

Python私教张大鹏 Vue3整合AntDesignVue之Cascader 级联选择

码农世界 2024-06-18 后端 86 次浏览 0个评论

何时使用

需要从一组相关联的数据集合进行选择,例如省市区,公司层级,事物分类等。

从一个较大的数据集合中进行选择时,用多级分类进行分隔,方便选择。

比起 Select 组件,可以在同一个浮层中完成选择,有较好的体验。

案例:省市区级联

核心代码:



第一步:使用组件


第二步:定义options

  • value:真实的值
  • label:显示的标签
  • children:级联选择,下级
    const options = [
      {
        value: 'zhejiang',
        label: 'Zhejiang',
        children: [
          {
            value: 'hangzhou',
            label: 'Hangzhou',
            children: [
              {
                value: 'xihu',
                label: 'West Lake',
              },
            ],
          },
        ],
      }
    ]
    

    vue3示例:

    
    
    

    Python私教张大鹏 Vue3整合AntDesignVue之Cascader 级联选择

    案例:移入展开

    通过移入展开下级菜单,点击完成选择。

    核心代码:

    
    
    

    如何实现:expand-trigger="hover"

    vue3示例:

    
    
    

    Python私教张大鹏 Vue3整合AntDesignVue之Cascader 级联选择

    案例:搜索

    可以直接搜索选项并选择。

    核心代码:

    
    
    

    第一步:添加搜索功能

    :show-search="{ filter }"
    

    第二步:编写搜索方法

    const filter = (inputValue, path) => {
      return path.some(option => option.label.toLowerCase().indexOf(inputValue.toLowerCase()) > -1);
    };
    

    属性

    参数说明类型默认值Version
    allowClear是否支持清除booleantrue
    autofocus自动获取焦点booleanfalse
    bordered是否有边框booleantrue3.2
    clearIcon自定义的选择框清空图标slot-3.2
    changeOnSelect(单选时生效)当此项为 true 时,点选每级菜单选项值都会发生变化,具体见上面的演示booleanfalse
    defaultValue默认的选中项string[] | number[][]
    disabled禁用booleanfalse
    displayRender选择后展示的渲染函数,可使用 #displayRender=“{labels, selectedOptions}”({labels, selectedOptions}) => VNodelabels => labels.join(' / ')
    popupClassName自定义浮层类名string-4.0
    dropdownStyle自定义浮层样式CSSProperties{}3.0
    expandIcon自定义次级菜单展开图标slot-3.0
    expandTrigger次级菜单的展开方式clickhover‘click’
    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-3.0
    maxTagPlaceholder隐藏 tag 时显示的内容v-slot | function(omittedValues)-3.0
    multiple支持多选节点boolean-3.0
    notFoundContent当下拉列表为空时显示的内容string | slot‘Not Found’
    open控制浮层显隐boolean-3.0
    options可选项数据源Option[]-
    placeholder输入框占位文本string‘请选择’
    placement浮层预设位置bottomLeftbottomRighttopLeft
    showCheckedStrategy定义选中项回填的方式。Cascader.SHOW_CHILD: 只显示选中的子节点。Cascader.SHOW_PARENT: 只显示父节点(当父节点下所有子节点都选中时)。Cascader.SHOW_PARENTCascader.SHOW_CHILDCascader.SHOW_PARENT
    removeIcon自定义的多选框清除图标slot-3.2
    searchValue设置搜索的值,需要与 showSearch 配合使用string-3.0
    showSearch在选择框中显示搜索框boolean | objectfalse
    status设置校验状态‘error’ | ‘warning’-3.3.0
    size输入框大小largedefaultsmall
    suffixIcon自定义的选择框后缀图标string | VNode | slot-
    tagRender自定义 tag 内容,多选时生效slot-3.0
    value(v-model)指定选中项string[] | number[]-

    showSearch 属性

    参数说明类型默认值
    filter接收 inputValue path 两个参数,当 path 符合筛选条件时,应返回 true,反之则返回 false。function(inputValue, path): boolean
    limit搜索结果展示数量number | false50
    matchInputWidth搜索结果列表是否与输入框同宽boolean
    render用于渲染 filter 后的选项,可使用 #showSearchRender=“{inputValue, path}”function({inputValue, path}): VNode
    sort用于排序 filter 后的选项function(a, b, inputValue)

    事件

    事件名称说明回调参数版本
    change选择完成后的回调(value, selectedOptions) => void-
    dropdownVisibleChange显示/隐藏浮层的回调(value) => void-3.0
    search监听搜索,返回输入的值(value) => void-3.0

转载请注明来自码农世界,本文标题:《Python私教张大鹏 Vue3整合AntDesignVue之Cascader 级联选择》

百度分享代码,如果开启HTTPS请参考李洋个人博客
每一天,每一秒,你所做的决定都会改变你的人生!

发表评论

快捷回复:

评论列表 (暂无评论,86人围观)参与讨论

还没有评论,来说两句吧...

Top