vue中element的树形控件el-tree

//显示菜单数据树形控件
//data要显示的数据
//show-checkbox是否显示checkbox框数据node-key: node的key对应的菜单数据的编号
//props节点配置{chiLdren(下级节点):‘菜单数据中对应的下级名称',Label(节点显示的名称):'菜单数据中的标题'}defauLt-expand-all是否展开所有的节点
      //<!--:default-expanded-keys 默认展开的选项 id选择-->
     //<!-- :default-checked-keys 默认选择id为5的 -->

 

 <el-tree id="testTree" :data="enterpriselist" show-checkbox node-key="id" ref="treeForm"
          :default-expanded-keys="[4399]" @check-change="handleCheckChange">
          </el-tree>
		//在vue data中可以写你的数据
		enterpriselist: [{
          id: 4399,
          label: '产业片区',
          disabled: true,
          children: []
        }],
        //因为我的数据是接口请求过来的所以我在方法里动态添加的
         this.$axios.get("/apg/industry/industrialAll").then(res => {
              if (res.data.data) {
                _this.arealist = res.data.data
                console.log(_this.arealist);
                // 将一个对象数组数据拿出来变成另一个对象
                _this.arealist.map(((item, index) => {
                  _this.enterpriselist[0].children.push(Object.assign({}, {
                    id: item.industrialAreaId,
                    label: item.industrialAreaName + `(${item.industrialCompanyCount}家)`,
                    children: []
                  }))
                }))
                console.log(_this.enterpriselist[0].children);
              }
            })
		 // 树形结构企业列表点击
      handleCheckChange(data, checked, node) {
          //这里的判断条件可以让复选框变成单选的
        if (checked == true) {
          this.checkedId = data.id;
          this.$refs.treeForm.setCheckedKeys([data.id]);
        }else {
          if (this.checkedId == data.id) {
              this.$refs.treeForm.setCheckedKeys([data.id]);
          }
        }
        //这里你可以判断复选框被选中拿到其id值
         if (checked  == true) {
          console.log(data.id);
          this.initialid = data.id;
         }    
      }
 //css显示最后一级节点上一级的复选框
 // ::v-deep #testTree {
  //   .el-checkbox .el-checkbox__inner {
  //     display: none;
  //   }
  //   div[role="group"] {
  //     .el-checkbox .el-checkbox__inner {
  //       display: inline-block;
  //     }
  //   }
  // }
  // 只显示最后一级节点复选框
  ::v-deep .el-tree-node {
    .is-leaf + .el-checkbox .el-checkbox__inner {
      display: inline-block;
    }
    .el-checkbox .el-checkbox__inner {
      display: none;
    }
  }

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值