element树形复选框实现一级菜单单选

Posted 等风来灬

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了element树形复选框实现一级菜单单选相关的知识,希望对你有一定的参考价值。

  

<!DOCTYPE html>
<html lang="en">

<head>
  <meta charset="UTF-8">
  <meta http-equiv="X-UA-Compatible" content="IE=edge">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>Document</title>
  <link rel="stylesheet" href="https://unpkg.com/element-ui/lib/theme-chalk/index.css">
  <script src="https://unpkg.com/vue@2/dist/vue.js"></script>
  <script src="https://unpkg.com/element-ui/lib/index.js"></script>
  <style>
    .part2 
      margin: 0 auto;
    
  </style>
</head>

<body>
  <div id="app">
    <div >
      <el-select ref="selectTree" clearable v-model="value" placeholder="总行(默认)" class="part2">
        <el-option :value="selectValue" >
          <el-tree :data="centerOptions" :props="defaultProps" node-key="id" show-checkbox ref="Tree"
             @check="checkClick">
            </e1-tree>
        </el-option>
      </el-select>
    </div>
  </div>
  <script>
    new Vue(
      
        el: \'#app\',
        data: 
          value: [],
          selectValue: [],
          defaultProps: 
            children: "children",
            value: "id",
            label: "name",
          ,
          centerOptions: [
            
              "name": "陕西省分行",
              "checked": false,
              "type": \'one\',
              "id": "11005293",
              "children": [
                
                  id: 1,
                  name: "A支行",
                  type: "one",
                ,
                
                  id: 2,
                  name: "B支行",
                  type: \'one\'
                ,
                
                  id: 3,
                  name: "c 支行",
                  type: \'one\'
                
              ]
            ,
            
              "name": "厦门分行",
              "checked": false,
              "type": \'two\',
              "id": "110052931",
              children: [
                
                  "id": 4,
                  name: "D支行",
                  type: \'two\'
                ,
                
                  id: 5,
                  name: "E支行",
                  type: \'two\'
                
              ]
            
          ],
          initArr: [] // 存放选中的值
        ,
        methods: 
          checkClick(checkedNodes, checkedKeys, halfCheckedNodes, halfCheckedKeys) 
            this.initArr.push(checkedNodes);
            if (this.initArr.length > 1) 
              if (this.initArr[0].type != this.initArr[1].type)  // 一级选中和跨级选中进行判断
                this.initArr = [this.initArr[1]];
                this.$nextTick(() => 
                  this.$refs.Tree.setCheckedKeys([this.initArr[0].id]);
                )
               else if (this.initArr[this.initArr.length - 2].type != this.initArr[this.initArr.length - 1].type)  // 选中多个的时候进行判断
                this.initArr = [this.initArr[this.initArr.length - 1]];
                this.$nextTick(() => 
                  this.$refs.Tree.setCheckedKeys([this.initArr[this.initArr.length - 1].id]);
                )
              
            
          ,
        
      
    )
  </script>
</body>

</html>

  代码思路:

           1. 通过点击第二次复选框与前一次点击复选框进行唯一值判断,相同类型的不做处理,不同类型的值取后面一次点击的,前面的数据都清空。

           2. this.initArr[0].type != this.initArr[1].type   // 一级选中和跨级选中进行判断

           3. 除了2情况外,就是点击全选中的时候数据是多个,需要判断最后一个与最后倒数二个   this.initArr[this.initArr.length - 2].type != this.initArr[this.initArr.length - 1].type

vue+ element ui 树形控件tree实现单选功能 2021-04-28

参考技术A 每天进步一点点~ 加油!

需求:
1:父子节点不关联,且,
2:父节点不显示复选框,并且不传值给后端
3:实现单选
1:解决父子节点不关联

2:父节点不显示复选框
****注意:****
如果标签上有scoped 会有样式修改失败的情况,去掉之后,在el-tree前加当前页面的id或者class就可以了,也可以 避免样式污染

3:实现单选

如果对小伙伴们有帮助,大家别忘了 双击点赞哦

以上是关于element树形复选框实现一级菜单单选的主要内容,如果未能解决你的问题,请参考以下文章

vue+ element ui 树形控件tree实现单选功能 2021-04-28

Element-ui中 树形控件(Tree)实现只显示某一层级复选框且单选

java如何实现二级树形菜单动态显示。要求加载页面时显示一级,点击一级菜单再去数据库查找出二级菜单

Java----如何在窗口中创建菜单

Vue+element使用table实现树形菜单

关于element-ui的tree树形组件的bug