项目中用到了vue的element-ui框架,用到了el-tree组件。由于数据量很大,使用了数据懒加载模式,即异步树。异步树采用复选框进行结点选择的时候,没法自动展开,官方文档找了半天也没有找到好的办法! 找不到相关的配置,或者方法可以使用。 经过调试与阅读elment-ui源码才发现有现成的方法可以进行结点展开。下面就介绍结点...
注意,如果树组件开启了懒加载模式,就不用在el-tree组件标签中写:data="data属性了,因为load绑定的函数,有两个参数,node和resolve,node是树节点,而resolve又是一个函数,相当于高阶函数(函数柯里化)了,我们只需要把后端返回的数据(单层数组结构),放在这个函数里面,这个函数会自动把数据传递到树组件里面去,同时渲染...
1//懒加载获取树形结构2loadNode(node, resolve) {3console.log(node, resolve);4if(node.level == 0) {//node其实是需要展开树节点,但是第一次的node是个无用的数据,可以认为这个node是element给我们创建的,判断的话,就是level等于05this.getTreeData(0, resolve);6}else{7this.getTreeData(node, resol...
<el-tree :props="props" :load="loadNode" lazy></el-tree> 1. 懒加载—由于在点击节点时才进行该层数据的获取,默认情况下 Tree 无法预知某个节点是否为叶子节点,所以会为每个节点添加一个下拉按钮,如果节点没有下层数据,则点击后下拉按钮会消失。同时,你也可以提前告知 Tree 某个节点是否为叶子节点,从而避...
项目中使用到element-ui的el-tree组件,现在要求使用懒加载加载数据,需要默认展开并选中其中几个节点,尝试使用:default-checked-keys="defaultSelectNode"但是因为懒加载id未知。 <el-tree :data="treeData" :props="defaultProps" :load="loadNode" lazy node-key="id" @check="handleNodeClick" show-checkbox :...
js部分:用chooseNode: new Map()来存所有选中的节点,选中添加,取消移除。具体参照checkChange函数。 showTreeChecked函数也是重点 ,保证每次刷新数据的时候树节点都能把默认选中的数据置为选中状态。 此处本人用的是setCheckedKeys,当然官网也有setCheckedNodes,setChecked可以选择,setTimeout主要是为了保证异步渲染能正确...
<el-tree ref="tree" lazy :props="props" :load="loadNode" node-key="label" highlight-current @node-click="handleNodeClick"> <!-- template 标签内的内容是节点前面的自定义图标, 如果不需要自定义图标,整个 template 标签直接全部删掉即可
首先,使用el-tree树组件必须指定lazy和load属性 lazy告知树组件开启懒加载模式,加上即可 load绑定的是一个函数,这个函数主要是用来在页面初始化加载的时候,用于向后端发请求获取el-tree的树结构的数据的。页面初始化加载,load绑定的函数会自动执行 注意,如果树组件开启了懒加载模式,就不用在el-tree组件标签中写:data...
{// 控制侧边栏 false为折叠, true为展开isCollapse:false,data:[],defaultProps:{childre:'childre',// 这里因为拿到数据没有children、所以可有可无label:'areaName',// 指定树结构的label值,后面的值都为拿到数据里有的值isLeaf:'hasChild',// isleaf决定是否为有子节点},url:{getChildListBatch:'maintain...