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)

包括了子级全选则传父级, 子级未全选则传子级及去重

posted @ 2021-05-28 16:44  代码是我蓝朋友  阅读(1131)  评论(0编辑  收藏  举报