在el-tree中显示数据

树形组件中的data绑定的数据必须是树形格式的数据,如下所示

<el-tree :data="data" :props="defaultProps" @node-click="handleNodeClick"></el-tree>

<script>
  export default {
    data() {
      return {
        data: [{
          label: '一级 1',
          children: [{
            label: '二级 1-1',
            children: [{
              label: '三级 1-1-1'
            }]
          }]
        }
        }],
        defaultProps: {
          children: 'children',
          label: 'label'
        }
      };
    },
    methods: {
      handleNodeClick(data) {
        console.log(data);
      }
    }
  };
</script>

而我们后台拿到的数据一般都是平铺的,所以我们要将其转换为树形结构,具体如何转换可以看我前面的文章。

<!-- 树形结构数据展示 -->
<el-tree
    :data="permissionData"
    // :props="{ label: 'name' }"这样写是因为树形组件只识别label来当作名称,
    //不识别name所以我们要把data中的name属性替换为label
    :props="{ label: 'name' }"
/>

属性配置

想去官网看的这有链接
https://element.eleme.cn/#/zh-CN/component/tree#scoped-slot

el-tree进一步设置实现以下功能:

  1. 显示选择框---------show-checkbox 显示选择框
  2. 默认全部展开-------- default-expand-all 默认展开
  3. 关闭父子关联---------check-strictly 设置true,可以关闭父子关联
<!-- 权限点数据展示 -->
      <el-tree
        :data="permissionData"
        :props="{ label: 'name' }"
         default-expand-all
        :show-checkbox="true"
        :check-strictly="true"
      />

default-expand-all写法等价于:default-expand-all="true"

将数据回填到el-tree中

已经获取到了数据了,如何把它填充到el-tree中,让某些个复选框处于选中状态?

答: setCheckedKeys + node-key

  1. 给tree补充属性node-key
<!-- 权限点数据展示 -->
    <el-tree
      ref="refTree"
      :data="permissionData"
      :props="{ label: 'name' }"
      :default-expand-all="true"
      :show-checkbox="true"
      :check-strictly="true"
+     node-key="id"
    />
  1. 调用方法回填数据
// 获取角色现有的权限
    async loadRoleDetail() {
      const res = await getRoleDetail(this.roleId)
      console.log('获取角色现有的权限', res.data.permIds)

      // 回填
      this.$refs.refTree.setCheckedKeys(res.data.permIds)
    },

小结

业务:在el-tree组件中通过setCheckedKeys方法 + node-key将数据 回显到el-tree组件中:处于选中状态

  • 3
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值