No.31 vue-element-admin 学习使用(二十六)集成vxe-table 树形表格

1,780 阅读2分钟

这是我参与8月更文挑战的第31天,活动详情查看:8月更文挑战

普通树形表格

树形表格是常见的需求,学习一下使用,基础的树形表格是这样的,指定数据中的children字段,该节点就可以展开了,但是这种情况是后端一下子把所有数据全部返回来的,不合理,因为数据过多的时候,效率会很差,一般情况下还是要进行懒加载的,后面再讲。

image.png

image.png

普通树

在一些数据需要单纯树形展示的时候,不想用表格的话,可以这样 image.png

这些图标都是可以自定义的,通过设置 tree-config={iconOpen, iconClose} 局部替换默认的图标,例如第三方图标库:font-awesome、inconfont,效果如下

image.png

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",设置表格的最大高度

官方给出了一个深层查找的例子,可以参考一下

image.png 调用了searchTree方法,筛选出符合条件的数据

image.png

懒加载

树形的懒加载,通过配置 row-id 和 tree-config={lazy, loadMethod} 加载方法来开启树形懒加载

启用懒加载后,必须通过 hasChild 属性来标识是否存在子节点,从而控制该节点是否允许被点击。

因为前段需要知道当前节点是不是叶子节点,所以后端返回数据的时候,只需要返回当前节点还有没有子节点就可以了,如果有子节点的话,就还可以继续向下展开。

点击加载后,请求后端接口,拿到数据

image.png

需要注意的是,拿到请求的数据后,需要resolve

image.png

还可以通过设置 expandRowKeys 属性,默认展开指定节点