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

Vue 学习随笔系列一 — Cascader 级联选择器这篇文章介绍了如何在 Vue 项目中使用 Cascader 组件 包括引入组件 设置数据 通过 v model 绑定值 处理 change 事件以及获取选中项的值

大家好,欢迎来到IT知识分享网。

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

<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 } } } }, 

免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://haidsoft.com/120444.html

(0)
上一篇 2025-10-29 18:10
下一篇 2025-10-29 18:20

相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注微信