Vue checkbox 处理有层级关系的元素

阅读: 评论:0

Vue checkbox 处理有层级关系的元素

Vue checkbox 处理有层级关系的元素

准备实现这样一个功能,如图选中一级步骤,所有的子级步骤都选中,取消选中一级步骤,所有的 子级步骤都取消选中

 其中一级步骤是li元素,二级步骤是li中的ul下的li,代码结果大致如下:

 <ul v-for="(step,index) in operate_steps" :key="index" class="list-group text-ul"><li class="ol-list list-group-item" :class="checkd_oper_steps.indexOf(step.id)!=-1?'list-group-item-success':''"><span class="oper_title">{{step.name}}</span><el-checkbox @change="oper_check(step)" class="oper_check_box" :label="step.id" v-model="checkd_oper_steps">完成请勾选</el-checkbox><i class="oper_check_icon el-icon-check" style=""></i><ul v-if="step.children"><li v-for="(sub_step,index2) in step.children" :key="index2"  class="ol-list list-group-item" :class="checkd_oper_steps.indexOf(sub_step.id)!=-1?'list-group-item-success':''"><span class="oper_title">{{sub_step.name}}</span><el-checkbox  @change="oper_check(sub_step)" class="oper_check_box" :label="sub_step.id" v-model="checkd_oper_steps">完成请勾选</el-checkbox></li></ul></li></ul>

checkbox绑定的变量checkd_oper_steps是在组件中申明的变量

 export default {name:"Catelog",data(){return{checkd_oper_steps:[]}},

checkbox中的:label绑定的值,在选中后自动赋值到checkd_oper_steps(v-model中绑定的变量),若checkd_oper_steps是数组的话,则是自动作为元素加入到checkd_oper_steps中。

 checkbox 的@change="oper_check(step)"绑定的函数oper_check,主要处理的是:若是加入操作,判断加入的元素节点是否有子节点,有的话,子节点也加入;若是取消操作,判断取消的元素节点是否有子节点,有的话,子节点取消。

 oper_check(step){let index=this.checkd_oper_steps.indexOf(step.id)if(index!=-1&&step.children){for(let i=0;i<step.children.length;i++){this.checkd_oper_steps.push(step.children[i].id)}}else{if(step.children){for(let i=0;i<step.children.length;i++){let index=this.checkd_oper_steps.indexOf(step.children[i].id)this.checkd_oper_steps.splice(index,1)}}}

 

注意,若对数组使用for/in,取的是数组的下标

function myFunction() {var cars = ["BMW", "Volvo", "Saab", "Ford"];var i,j;var text="";for (i in cars) {text =text+";"+ cars[i];}ElementById("demo").innerHTML = text;
}

展示的内容:

;BMW;Volvo;Saab;Ford

本文发布于:2024-02-01 16:59:03,感谢您对本站的认可!

本文链接:https://www.4u4v.net/it/170677794238111.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:层级   元素   关系   Vue   checkbox
留言与评论(共有 0 条评论)
   
验证码:

Copyright ©2019-2022 Comsenz Inc.Powered by ©

网站地图1 网站地图2 网站地图3 网站地图4 网站地图5 网站地图6 网站地图7 网站地图8 网站地图9 网站地图10 网站地图11 网站地图12 网站地图13 网站地图14 网站地图15 网站地图16 网站地图17 网站地图18 网站地图19 网站地图20 网站地图21 网站地图22/a> 网站地图23