树的结构如下:

<el-tree
          ref="navTree"
          :props="navTreeProps"
          :load="loadNode"
          :data="navList"
          :default-checked-keys="hasCheck"
          node-key="id"
          lazy
          check-strictly
          show-checkbox
        />

ref代表该树所在节点的唯一标识

props可配置该树的具体信息,包括指定树节点标签为对象的指定值,子树节点标签的指定值,树节点是否为叶子节点(仅在懒加载模式下生效)等等。

navTreeProps: {
        label: function(data, node) {
          if (node.data.title) {
            return node.data.title
          } else {
            return node.data.method
          }
        },
        children: 'title',
        isLeaf: function(data, node) {
          if (node.data.title) {
            return false
          } else {
            return true
          }
        }
      }

label:若树节点对象存在title属性则将其设置为节点值,否则将method属性指定为节点值。

children:子树节点全部将title属性指定为值

isLeaf:若树节点对象中不包含title属性,则该树节点为叶子节点(即不显示倒三角标志)

load:绑定了加载子树数据的方法

该方法中resolve参数接收的数据作为懒加载所得的数据

default-checked-keys:指定一个数组,该数组包含所有树默认选择的节点的key

node-key:指定节点的key,作为每个节点的唯一标识

check-strictly:展示复选框的情况下,开启父子节点互不关联(默认为关联)

树节点选择后如何保存:

const checkList = this.$refs.navTree.getCheckedNodes()

该方法可得到该树所选择的所有节点(不包含未加载的数据)

如何在获取数据后设置节点默认选择(回填数据):

this.$refs.navTree.setCheckedKeys(this.hasCheck)

该方法可选择数组中所有树节点

Logo

前往低代码交流专区

更多推荐