vue2 - 详细介绍element UI中在el-select嵌套el-tree树形控件实现下拉选择树型结构数据的效果实例(组件封装)

本文详细介绍了如何在Vue2项目中,利用Element UI的el-select和el-tree组件,结合自定义代码,实现下拉选择树型结构数据的功能。通过一次性返回的树形数据,当点击最后一层时,动态追加带有勾选框的子项,满足单选并返回选中节点及其父节点的需求。同时,文章提供了具体的代码实现和效果展示。
摘要由CSDN通过智能技术生成

前言

在项目上常用使用到 el-select 和 el-tree 组合实现,记录下两者结合的实现过程。(代码以及注释清晰明了,代码直接使用即可)

要求根据项目接口提供的数据,el-tree 里的数据是一次性返回来的,点击最后一层级时,请求接口,在点击层级下方追加数据追加的数据要显示勾选框,可进行勾选,且是单选勾选后需要返回勾选的层级以及它的父级

实现效果如下

数据回显效果: 

实现关键部分

el-tree里的显示勾选框不符合当前“追加的数据要显示勾选框,可进行勾选”这个需求,所以我修改了el-tree的源码进行使用。

追加子级数据,el-tree 文档提供了这个这个方法,可以追加子级

  • 21
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
Vue.js ,如果你想要批量修改 `el-select` 组件的状态,你需要先获取到这些组件的引用,通常通过 `v-for` 或者动态绑定的方式。假设你有一个包含多个 `el-select` 的数组,你可以按照以下步骤操作: 1. 获取选的值:首先,在数据模型为每个 `el-select` 存储对应的值,如 `selectedOptions` 数组,键通常是选项的唯一标识。 ```javascript data() { return { selectedOptions: [], // ...其他数据 } } ``` 2. 遍历元素并更新选择:在需要修改的函数,遍历这个数组,并使用 Vue 的 `$set` 方法来安全地更新选值,例如: ```javascript updateSelectValues(newOptions) { this.selectedOptions.forEach((option, index) => { this.$set(this.selectedOptions, index, option); // 更新对应索引的选择 }); } ``` 这里的 `newOptions` 是你想设置的新选择项。 3. 触发改变事件:如果你想触发选状态的变化,可以调用 `el-select` 的 `change` 事件,或者直接操作 `el-option` 元素。 ```javascript // 调用 change 事件 this.$refs.selects.map(selectEl => selectEl.$el.querySelector('el-option').trigger('change')); // 直接操作 DOM this.$nextTick(() => { this.$refs.selects.forEach(selectEl => { const options = selectEl.$el.querySelectorAll('el-option'); options.forEach(option => { if (option.value === newOptionValue) { option.selected = true; } else { option.selected = false; // 如果不是新选项,则取消选 } }); }); }); ``` 记得在模板给每个 `el-select` 组件加上 ref 属性以便引用它们: ```html <template> <div v-for="(select, index) in selects" :key="index"> <el-select :ref="'select_' + index'" v-model="selectedOptions[index]"> <!-- ... --> </el-select> </div> </template> ```
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值