这是我参与8月更文挑战的第31天,活动详情查看:8月更文挑战
普通树形表格
树形表格是常见的需求,学习一下使用,基础的树形表格是这样的,指定数据中的children字段,该节点就可以展开了,但是这种情况是后端一下子把所有数据全部返回来的,不合理,因为数据过多的时候,效率会很差,一般情况下还是要进行懒加载的,后面再讲。
普通树
在一些数据需要单纯树形展示的时候,不想用表格的话,可以这样
这些图标都是可以自定义的,通过设置 tree-config={iconOpen, iconClose} 局部替换默认的图标,例如第三方图标库:font-awesome、inconfont,效果如下
highlight-current-row可以高亮当前的行,
设置type="radio",可以添加单选框列
<vxe-table-column type="radio" title="Name" width="400" tree-node></vxe-table-column>
手风琴效果,设置tree-config={accordion} 属性,同一级的节点,限制只能展开一个
设置type="checkbox",可以添加复选框列
<vxe-table-column type="checkbox" title="ID" width="280" tree-node></vxe-table-column>
设置fixed="left",固定当前列
max-height="400",设置表格的最大高度
官方给出了一个深层查找的例子,可以参考一下
调用了searchTree方法,筛选出符合条件的数据
懒加载
树形的懒加载,通过配置 row-id 和 tree-config={lazy, loadMethod} 加载方法来开启树形懒加载
启用懒加载后,必须通过 hasChild 属性来标识是否存在子节点,从而控制该节点是否允许被点击。
因为前段需要知道当前节点是不是叶子节点,所以后端返回数据的时候,只需要返回当前节点还有没有子节点就可以了,如果有子节点的话,就还可以继续向下展开。
点击加载后,请求后端接口,拿到数据
需要注意的是,拿到请求的数据后,需要resolve
还可以通过设置 expandRowKeys 属性,默认展开指定节点