级联选择器el-cascader ——实现树形数据下的,选择任意一级和只展示选中的数据

本文档详细解析了Element UI中级联选择器的配置与使用,特别是`show-all-levels`、`props`、`checkStrictly`和`expandTrigger`等关键属性。当`show-all-levels`设为`false`时,仅显示最后一级选择;通过设置`checkStrictly`为`true`,允许选择任意层级;`expandTrigger`控制子菜单的展开方式;`children`指定选项的子选项属性。尽管展示值为单个,但绑定值仍为包含所有路径的数组,要获取与展示数据一致的字符串,可取数组最后一个元素。
部署运行你感兴趣的模型镜像

element文档上面对于这些功能是有介绍的,但是文档写的不是很清楚,而且是多个例子,没有进行整合,这是我使用后的一个例子。
我这里的需求是可以选择每一级,,并且只显示选择的哪一级数据。
在这里插入图片描述
在这里插入图片描述
show-all-levels设置为false的时候显示的就是选择的最后一级
props是级联选择器的配置项
checkStrictly为true的情况下可以遵守父子节点不互相关联,可以选择任意一级
expandTrigger是控制次级菜单的展开方式
children是指定选项的子选项为选项对象的某个属性值
这样配置好之后,虽然展示的值是单个的,但是绑定的值还是一个拥有全部路径的数组,假如想得到一个和展示的数据一样的字符串,获取绑定值这个数组的下标为数组长度-1的数据就行。

您可能感兴趣的与本文相关的镜像

Yolo-v8.3

Yolo-v8.3

Yolo

YOLO(You Only Look Once)是一种流行的物体检测和图像分割模型,由华盛顿大学的Joseph Redmon 和Ali Farhadi 开发。 YOLO 于2015 年推出,因其高速和高精度而广受欢迎

Element UI的`el-cascader`级联选择器中,可通过`@change`事件`getCheckedNodes`方法来获取选中的对象数据。 ### 利用`@change`事件 `@change`事件会在选中值发生变化时触发,它的回调函数会传入当前选中的值,通常是一个数组,代表选中项的路径值。可以结合级联选择器的`options`来找到对应的对象数据。 示例代码如下: ```vue <template> <div> <el-cascader :options="options" @change="handleChange" ></el-cascader> </div> </template> <script> export default { data() { return { options: [ { value: 'zhinan', label: '指南', children: [ { value: 'shejiyuanze', label: '设计原则', children: [ { value: 'yizhi', label: '一致' } ] } ] } ] }; }, methods: { handleChange(value) { let currentOptions = this.options; const selectedObject = []; for (let i = 0; i < value.length; i++) { const currentValue = value[i]; const found = currentOptions.find(item => item.value === currentValue); if (found) { selectedObject.push(found); currentOptions = found.children || []; } } console.log(selectedObject); } } }; </script> ``` 在上述代码里,`handleChange`方法接收选中的值数组`value`,接着遍历该数组,在每一级`options`中查找对应值的对象并添加到`selectedObject`数组里,最终输出选中的对象数据。 ### 利用`getCheckedNodes`方法 `getCheckedNodes`方法可以直接获取选中的节点对象。要调用此方法,需给`el-cascader`添加`ref`。 示例代码如下: ```vue <template> <div> <el-cascader ref="cascaderRef" :options="options" @change="handleChange" ></el-cascader> </div> </template> <script> export default { data() { return { options: [ { value: 'zhinan', label: '指南', children: [ { value: 'shejiyuanze', label: '设计原则', children: [ { value: 'yizhi', label: '一致' } ] } ] } ] }; }, methods: { handleChange() { const checkedNodes = this.$refs.cascaderRef.getCheckedNodes(); const selectedObjects = checkedNodes.map(node => node.data); console.log(selectedObjects); } } }; </script> ``` 在这个例子中,`handleChange`方法调用`getCheckedNodes`获取选中的节点对象,再通过`map`方法将节点对象的数据提取出来,存于`selectedObjects`数组并输出。
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值