Element树形控件el-tree懒加载并设置默认展开和选中的效果

使用elementui树组件,通过懒加载加载数据,并设置默认展开和全部选中的效果。

<el-tree
      :load="loadNode"
      node-key="org_id"
      is-connection-line
      show-checkbox
      lazy
      :default-checked-keys="defaultSelectCids"
      :default-expanded-keys="defaultExpandedCids"
      :props="defaultProps"
      @check-change="handleCheckChange"
      ref="orgTreeData"
    >
      <span class="custom-tree-node" slot-scope="{ node, data }">
        <span>{{ node.label }}</span>
        <span style="padding-left: 10px"> {{ data.in_service.count }} </span>
      </span>
    </el-tree>

主要设置load替换data属性。

还设置属性lazy,以及default-checked-keys和default-expanded-keys属性。并配置options的isLeaf属性。

dataTree = [];
  defaultProps = {
    children: 'child',
    label: 'org_name',
    isLeaf: data => {
      return !data.has_child;
    },
  };
  defaultExpandedCids = []; // 选出所有pid为0的 cid节点
  defaultSelectCids = []; // 选出所有cid
async loadNode(node, resolve) {
    if (!node.data) {
      const res = await this.getOrg(null);
      if (res && Array.isArray(res)) {
        res.forEach(item => {
          if (item.has_child && item.parent.id === 0) {
            this.defaultExpandedCids.push(item.org_id);
          }
          this.defaultSelectCids.push(item.org_id);
        });
      }
      resolve(res);
    } else {
      resolve(await this.getOrg(node.data.org_id));
    }
  }
  handleCheckChange(data, checked, indeterminate) {
    console.log(data, checked, indeterminate, this.$refs.orgTreeData.getCheckedKeys());
  }
  async getOrg(orgId) {

    this.orgTreeLoading = true;
    const {
      data: { tree_data = {} },
      error,
    } = await http.API();
    if (!error) {
      this.orgTreeLoading = false;
      return new Promise(resolve => {
        resolve(tree_data);
      });
    }
  }

效果图如下

到此这篇关于Element树形控件el-tree懒加载并设置默认展开和选中的效果的文章就介绍到这了,更多相关Element el-tree懒加载内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • Vue使用Element折叠面板Collapse如何设置默认全部展开

    目录 Element折叠面板Collapse设置默认全部展开 Vue实现展开折叠效果 总结 Element折叠面板Collapse设置默认全部展开 这个适用于需要for循环 <el-collapse-item> 负责展开的属性是value <el-collapse :value="opened">   <el-collapse-item v-for="o in List" :key="o.aaa":name=&quo

  • vue使用ElementUI时导航栏默认展开功能的实现

    本文主要参考: http://element.eleme.io/#/zh-CN/component/menu 在使用elementUI的时候发现,能够展开的导航栏是不能展开的,效果这里先不演示了.可以在上边的网站上看到. 现在有这样的需求,就是说,默认的时候需要展开这些导航,就是一打开界面的时候就能够显示导航里面的菜单内容. 具体操作是这样的: <script src="//unpkg.com/vue/dist/vue.js"></script> <scr

  • Vant UI中van-collapse下拉折叠面板默认展开第一项的方法

    目录 问题重现 需求实现 附:vant之van-collapse无法默认展开某一项的解决方法 总结 问题重现 最近在做项目时,有一个需求是让 van-collapse 下拉折叠面板的第一项默认是展开状态:我使用到了 Vant UI 组件,首先按照官网文档的写法直接引入: <!--下拉折叠面板--> <van-collapse class="collapse" v-model="activeNames" is-link="false&quo

  • Element树形控件el-tree懒加载并设置默认展开和选中的效果

    使用elementui树组件,通过懒加载加载数据,并设置默认展开和全部选中的效果. <el-tree :load="loadNode" node-key="org_id" is-connection-line show-checkbox lazy :default-checked-keys="defaultSelectCids" :default-expanded-keys="defaultExpandedCids" :

  • 详解如何实现Element树形控件Tree在懒加载模式下的动态更新

    Element提供的Tree树形控件,可以用清晰的层级结构展示信息,还可以展开或折叠.Tree支持两种加载模式:一次性加载全部树节点和懒加载模式.所谓懒加载模式,是指当需要展开父节点时才渲染子节点.懒加载模式的应用场景适合树节点数据量大的情形,在一定程度上可以优化图形用户界面的响应效率以及提升用户体验.但是,懒加载模式对数据动态刷新应用需求的支持不尽如意.树形控件节点一旦展开就缓存在本地,后续不会再继续更新和刷新节点数据.本文将介绍如何实现Element树形控件Tree在懒加载模式下的动态更新.

  • Element树形控件整合带图标的下拉菜单(tree+dropdown+input)

    目录 需求说明: 实现步骤: 本文主要讲述:自定义树形控件<el-tree> 需求说明: Element UI 官网提供的树形控件包含基础的.可选择的.自定义节点内容的.带节点过滤的以及可拖拽节点的树形结构 如下: 我想要的效果是支持搜索效果的树,将鼠标悬浮后显示添加修改图标,点击图标后弹出对应页面:并且在每个文件夹前添加自定义图标. 实现效果: 实现步骤: 1.使用插槽(slot) <el-col :span="4" :xs="24"> &

  • vue+element tree懒加载更新数据的示例代码

    使用element tree实现懒加载,更新某一节点的数据 1.tree 懒加载 只需要在el-tree标签上面添加lazy,load属性,load的接收是一个函数.这里贴上官网给出的方法 <el-tree :data="treeList" ref="tree" class="vue-tree" lazy :load="loadNode" :highlight-current="true" :node

  • vue通过element树形控件实现树形表格

    目录 实现效果图 安装依赖 自定义树形控件 其他实现 总结 在vue中通过element树形控件来实现树形表格的效果 通过缩进来实现近似树形表格的效果 实现效果图 安装依赖 $ npm install element-plus --save Element官网 自定义树形控件 分析图中控件分布,每个参数都有固定的width,通过width让数值达到对齐的效果 代码主要通过renderContent函数来自定义树形控件 <template> <div class="mytree&

  • Vue element树形控件添加虚线详解

    目录 1.实现效果 2.实现代码 3.其他实现 总结 1.实现效果 2.实现代码 树形控件虚线的添加主要通过控制css来实现,并且在树形控件的缩进数只能为0,令class="mytree" <div class="mytree"> <!--indent只能为0--> <el-tree :data="tree_data" :props="defaultProps" @node-click="

  • element tree懒加载:load="loadNode"只触发一次的解决方案

    当tree 懒加载获取 信息时,只有在第一次 加载时,触发 :load=“loadNode” ,但是这样明显是不合理的,因为当增删改查,后端数据已经改变,但是咱们的:load=“loadNode” 不会再次触发,导致数据显示问题; <el-tree :props="props" :load="loadNode" lazy @node-click="handleNodeClick"></el-tree> data() { r

  • 详解el Cascader懒加载数据回显示例

    正文 数据回显时保证 v-model props options 绑定的数据是正确的. 调用 props.lazyLoad 方法中的 resolve 回掉函数设置数据,示例来自el官网. 好多例子中说需要设置 options, 但是异步获取子节点,设置它是没有用的. <el-cascader :props="props"></el-cascader> <script> let id = 0 export default { data() { retu

  • 如何隐藏element-ui中tree懒加载叶子节点checkbox(分页懒加载效果)

    目录 1.首先按照官网 2.由于属性是isleaf 3. 分页懒加载实现功能也比较简单 根据最新的工作需求中指示,要求Tree树组件为lazy懒加载,且能够进行复选框选择,这个实现简单,设置show-checkbox即可,若此处要求叶子节点也不能包含复选框,就有些困扰了 1.首先按照官网 拷贝tree树组件代码,设置完show-checkbox,图中查看更多为叶子节点,且设置数据节点属性为disabled <el-tree ref="treeRef" class="tr

  • Element-ui树形控件el-tree自定义增删改和局部刷新及懒加载操作

    需求: vue-cli项目树形控件:一级节点为本地节点,默认展开一级节点,增删改后局部刷新数据. 增加节点,点击确定后局部刷新,渲染新数据. 源码 element组件样式 <el-tree class="treeitems" :data="data" node-key="id" :props="defaultProps" :load="loadNode" lazy :default-expanded-

随机推荐