Vue 学习随笔系列一 -- Cascader 级联选择器

Vue 学习随笔系列一 -- Cascader 级联选择器Vue 学习随笔 Cascader 级联选择器 前言 随笔一 记录 Cascader 级联选择器使用 一 Cascader 级联选择器 二 使用步骤 1 引入 代码如下 lt el form item label xxx prop

大家好,我是讯享网,很高兴认识大家。

Vue 学习随笔 —— Cascader 级联选择器

前言


一、Cascader 级联选择器

在这里插入图片描述
讯享网

二、使用步骤

1. 引入

代码如下:

<el-form-item label="xxx" prop="item" > <el-cascader ref="cascader" clearable :props="props1" :value="id" // v-model 与 value 使用其中一个即可 :options="itemList" // 接口返回的树形字典数据  :show-all-levels="false" placeholder="请选择" @change="handleChange" > </el-cascader> </el-form-item> 

讯享网

2. 数据定义

代码如下:

讯享网data() { 
    return { 
    props1: { 
    value:'id', label:'label', }, id:[], form: { 
    item: '', itemList: [], // 分类 }, releaseTime: "", } } } 

3. 获取点击label的值

handleChange() { 
    // 使用 getCheckedNodes 可以获取到数组 this.form.item = this.$refs["cascader"].getCheckedNodes()[0].pathLabels[2] console.log("this.form.item",this.form.item) }, 

4、 推荐方法

获取 label 中文值, props 抛出 lebel 值

讯享网 <el-cascader ref="cascader" clearable :value="id" v-model="form.Item" :options="ItemList" :show-all-levels="false" :props="{value: 'label'}" placeholder="请选择" @change="handleDept" > </el-cascader> 

获取 id 值, props 抛出 id 的值

 <el-cascader ref="cascader" clearable :value="id" :options="departmentList" :show-all-levels="false" :props="{value: 'id'}" placeholder="请选择" @change="handleDept" > </el-cascader> 

数据处理,取最后一级

讯享网handleChange(val) { 
    console.log(111, val) if(!val) return this.form.Item = val.slice(-1).toString() }, 

三、补充

tips 1

filterable 表示可在输入框中输入文字进行模糊查询
collapse-tags 表示折叠显示多选项
:show-all-levels=“false” 表示不显示选中项的所有层级,只展示最后一层数据

<el-cascader size="small" style="width: 100%;" placeholder="试试搜索" v-model="form.data" :options="dataOptions" :props="{ multiple: true }" @change="getData" :show-all-levels="false" collapse-tags filterable clearable> </el-cascader> 

在这里插入图片描述
在这里插入图片描述

tps2

讯享网<el-cascader size="small" style="width: 85%;" :options="profitOptions" v-model="form.data" :props="{ multiple: true, checkStrictly: true, emitPath: false }" :show-all-levels="false" @change="getData" collapse-tags filterable clearable> </el-cascader> <script> ... // 可通过次方法获取多选中的最后一层数据 methods: { 
    getData(val){ 
    let data = val.map( v=> { 
    return v.slice(-1).toString() }) } } </script> 
 <el-cascader size="small" style="width: 85%;" :options="profitOptions" v-model="profitCenterList" :props="{ multiple: true, checkStrictly: true, propsCascader}" :show-all-levels="false" @change="getProfitCenter" collapse-tags filterable clearable> </el-cascader> // 级联选择器回显 getParentsById(list, id) { 
    // list - 数据列表 // id --- 最后一层的 id for (let i in list) { 
    if (list[i][this.propsCascader.value || 'value'] == id) { 
    return [list[i][this.propsCascader.value || 'value']] } if (list[i].children) { 
    let node = this.getParentsById(list[i].children, id) if (node !== undefined) { 
    // 追加父节点 node.unshift(list[i][this.propsCascader.value || 'value']) return node } } } }, 
小讯
上一篇 2025-03-13 13:58
下一篇 2025-02-14 15:20

相关推荐

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/21478.html