zoukankan      html  css  js  c++  java
  • 使用element-ui框架积累(三)

    el-tree组件实现禁止选中父组件操作

    关键点:disabled:true。

    tree.json数据

    [{
            "id": "1",
            "name": "计算机信息管理",
            "children": [{
                "id": "a1",
                "name": "团委",
                "children":[{
                    "id":"b1",
                    "name":"Lisa"
                },{
                    "id":"b2",
                    "name":"Lizzy"
                }]
            }, {
                "id": "a2",
                "name": "同学1"
            }, {
                "id": "a3",
                "name": "同学2"
            }, {
                "id": "a4",
                "name": "同学3"
            }, {
                "id": "a20",
                "name": "同学4"
            }, {
                "id": "a5",
                "name": "同学5"
            }]
        }, {
            "id": "2",
            "name": "计算机网络通信",
            "children": [{
                "id": "a6",
                "name": "同学6"
            }, {
                "id": "a7",
                "name": "Linda"
            }]
        }, {
            "id": "3",
            "name": "计算机大数据",
            "children": [{
                "id": "a8",
                "name": "黄1"
            }, {
                "id": "a9",
                "name": "吕1"
            }, {
                "id": "a10",
                "name": "聂1"
            }, {
                "id": "a11",
                "name": "童1"
            }]
        },{
            "id":"4",
            "name":"计算机软件开发",
            "children":[
                {
                    "id": "a12",
                    "name": "韩1"
                }
            ]
        },{
            "id":"5",
            "name":"其他",
            "children":[
            ]
        }
    ]

    index.vue

    <template>
        <el-tree
            :data="treeData"
            show-checkbox ref="tree"
            :props="defaultProps"
            :highlight-current="true"
            node-key="id"
            empty-text="数据加载中……"
            :check-strictly="true"></el-tree>
    </template>
    
    <script>
      export default {
        data() {
          return {
            treeData: [], //树型结构数据
            defaultProps:{//树型图配置
              children:"children",//指定子树为节点对象的某个属性值
              label:"name"//指定节点标签为节点对象的某个属性值
            },
    
          }
        },
        mounted() {
          this.init();
        },
        methods: {
          init() {
            this.$http.get("http://localhost:3000/public/tree.json").then(res => {
    
              this.treeData = this.disabledParent(res.data);
              console.log(this.treeData)
            })
          },
          // 禁止父节点被点击
          disabledParent(data){
            data.forEach((node)=>{
              console.log(node)
              if(node.children){
                node.disabled=true;
                this.disabledParent(node.children)
              }else{
                return
              }
            })
            return data;
          },
        }
      };
    </script>

    总结:循环遍历数据,判断某一项是否有子节点,有子节点代表是父节点,给相应的父节点添加"父节点.disabled:true"属性,因为可能数据会层层嵌套,所以要使用递归进行判断,能够找到里面的所有父节点进行设置.  要加上  :check-strictly="true"属性,设置父子节点不关联.

     效果图

  • 相关阅读:
    cshtml折叠
    toggleClass通过切换类实现样式变换
    Spring Initailizr(项目初始化向导)
    @EnableConfigurationProperties + @ConfigurationProperties 注解
    @Component + @ConfigurationProperties 注解
    入门案例(hello-springBoot)
    SSM 项目整合(书籍管理系统)
    SSM 项目整合 (用户管理系统)
    SpringBoot 配置
    SpringBoot 概念
  • 原文地址:https://www.cnblogs.com/shanchui/p/14372030.html
Copyright © 2011-2022 走看看