Element: Whether the isLeaf property of the [Feature Request] Tree component can be used in non lazy mode

Created on 28 Mar 2018  ·  4Comments  ·  Source: ElemeFE/element

Existing Component

Component Name

Tree

Description

Tree组件的isLeaf属性必须是在lazy=true下才能使用,这个局限太大了,不能完全交给用户去控制

Most helpful comment

有时候业务时非常复杂的,我现在的这个场景
两部分数据
1.一个单位的组织机构,有个2百多条数据,可以一次性加载,结合tree的filterNode实用性很强
2.每个组织机构下有人员,人员总共有6千多条数据,只能在展开机构时去加载数据。

现在我基于eleme的tree基本实现了功能,只是叶子机构不能显示展开图标

All 4 comments

Translation of this issue:

Existing Component

yes

Component Name

Tree

Description

The isLeaf property of the Tree component must be used under the lazy=true, which is too limited to be completely handed over to the user.

对于非 lazy 情况,所有数据都已经拿到了,每个节点是否为叶子节点是确定的。

有时候业务时非常复杂的,我现在的这个场景
两部分数据
1.一个单位的组织机构,有个2百多条数据,可以一次性加载,结合tree的filterNode实用性很强
2.每个组织机构下有人员,人员总共有6千多条数据,只能在展开机构时去加载数据。

现在我基于eleme的tree基本实现了功能,只是叶子机构不能显示展开图标

@xugege @Leopoldthecoder
+1,isLeaf应该可以交由用户去控制。试想一下如果是文件夹结构,那么如果这个文件夹下面没有文件,那么下拉箭头难道可以去掉么?对业务来讲,这是显然不正确的。

合理的做法是:当用户没有设置isLeaf的时候,element-Tree组件去判断他是不是leaf;如果当用户设置了isLeaf,则依照用户的设置,去显示是不是leaf。

目前我遇到的问题是在加载完第一级树的数据之后(/api/database),先行渲染database列表,再去加载第二级树的数据(/api/table),安插在parent.children的空数组里面,用以渲染table。但由于异步的数据加载的形式,导致不配置lazy(由于业务需要,不能使用lazy)的时候显示不正常。

ezgif-1-880754d909

Was this page helpful?
0 / 5 - 0 ratings

Related issues

EdenSpark picture EdenSpark  ·  3Comments

yuchonghua picture yuchonghua  ·  3Comments

dbskccc picture dbskccc  ·  3Comments

yubo111 picture yubo111  ·  3Comments

Zhao-github picture Zhao-github  ·  3Comments