zoukankan      html  css  js  c++  java
  • 【vue+elementUI】根据数据默认展开图层树指定节点,default-expanded-keys

    需求:根据传入数据默认展开图层树,数据中isLoad为true表示当前节点需要展开。(数据不定)

    参考elementUI组件el-tree的default-expanded-keys使用,将要展开的节点标识(树的id)绑定到该属性。

    elementUI组件案例

    重点:实际传入数据是以Id字段作为树的标识,同时数据为多层嵌套的图层,需要逐层筛选。

          <el-tree
            id="lay-tree"
            :props="defaultProps"//配置选项,用来关联实际字段
            :data="treedata"//图层树数据
            node-key="Id"//绑定数据中的实际标识字段
            :default-expanded-keys="expandedKeys"//默认展开节点
            ref="layerTree"
          ></el-tree>
    

    data参数:

      data() {
        return {
          treedata: [],
          expandedKeys: [],
          defaultProps: {
            children: "children",
            label: "text",
            id: "Id",
            IlayerTrans: "sort"
          },
        };
      }
    

    props的配置项说明

    接下来就是在根据图层树数据treeData获取到指定展开节点expandedKeys数组:

      watch: {
        treedata: {
          handler() {
           this.getExpandedKeys(this.treedata);
          },
          deep: true
        }
      },
      methods: {
        getExpandedKeys(arr) {
          arr.forEach(item => {
            if (item.Isload) {
              this.expandedKeys.push(item.Id);
            }
            if (item.children) {
              this.getExpandedKeys(item.children);
            }
          });
        }
      }
    

    最后为传入的图层树数据结构:

    图层树数据

  • 相关阅读:
    CSS设置行高
    微信小程序-水平垂直居中
    CSS布局
    HTML学习笔记—标签
    微信小程序--通过请求网页获取信息并显示
    docker 安装完mysql 后客户端无法访问
    Docker
    docker安装成功启动失败
    嵌入式Servlet容器自动配置和启动原理
    springboot外置的Servlet容器
  • 原文地址:https://www.cnblogs.com/qiuyueding/p/13727067.html
Copyright © 2011-2022 走看看