Cascader 级联选择器-------------子级全选则传父级, 子级未全选则传子级
我需要的级联选择器一共是三级:
其中 this.$refs.departList是 ref 名
通过 getCheckedNodes() 方法, 可以获取所有已勾选的节点
当子级全选时CheckedNodes[0].hasChildren为true,否则为false
console.log(val) var arr = []; var arr2 = []; let CheckedNodes = this.$refs.departList.getCheckedNodes(); CheckedNodes = CheckedNodes.filter(option => !(option.parent && option.parent.checked)); console.log(CheckedNodes) if (CheckedNodes.length > 0) { if (CheckedNodes[0].hasChildren == true) { arr.push(CheckedNodes[0].value) } } for (var i = 0; i < val.length; i++) { for (var j = 0; j < val[i].length; j++) { console.log(val[i][val[i].length-1])//获取数组的最后一个元素 arr.push(val[i][val[i].length-1]); } } var flag; for (var i in arr) {//去重 flag = true; for (var j in arr2) { if (arr2[j] == arr[i]) { flag = false; break } } if (flag) { arr2.push(arr[i]) } } if (val == '') { arr2 = null } console.log(arr2)
包括了子级全选则传父级, 子级未全选则传子级及去重