Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

el-tree增加虚拟滚动后,深度搜索结果树,在滚动中出现空白偏移。如果能在深度搜索中,匹配文字可以特殊标记就更好。 #85

Open
nanmu32 opened this issue Mar 8, 2021 · 4 comments

Comments

@nanmu32
Copy link

nanmu32 commented Mar 8, 2021

组件初始化正常,出如关键字查询,显示新的树,滚动树的滚动条,渐渐空白拉大。到底部几乎全部空白

@Victor-dreamer
Copy link

Victor-dreamer commented Mar 12, 2021

element的tree是通过一个visible变量来控制树节点的显示的,可能是传入vue-virtual-scroll-list的data-sources数据和实际显示的节点不一致导致的显示错误,
可以尝试在tree.vue中的flattenTree方法中添加一个判断,过滤掉传入data-sources的数据

flattenTree(datas) {
  return datas.reduce((conn, data) => {
    if (data.visible) { // 添加一个判断
      conn.push(data); 
    }
    if (data.expanded && data.childNodes.length) {
      conn.push(...this.flattenTree(data.childNodes));
    }
    return conn;
  }, []);
 },

@NoPersonal-git
Copy link

过滤掉传入数据不现实 如果tree组件有勾选功能 数据过滤了怎么勾选 filter-node-method节点的样式是display:none 整体tree的padding计算时候没考虑style:none节点。

@nanmu32
Copy link
Author

nanmu32 commented Apr 2, 2021

element的tree是通过一个visible变量来控制树节点的显示的,可能是传入vue-virtual-scroll-list的data-sources数据和实际显示的节点不一致导致的显示错误,
可以尝试在tree.vue中的flattenTree方法中添加一个判断,过滤掉传入data-sources的数据

flattenTree(datas) {
  return datas.reduce((conn, data) => {
    if (data.visible) { // 添加一个判断
      conn.push(data); 
    }
    if (data.expanded && data.childNodes.length) {
      conn.push(...this.flattenTree(data.childNodes));
    }
    return conn;
  }, []);
 },

你的这种方法可以使用,他的数据存在node里面并没有破坏原始数据,还能及时更新虚拟滚动的列表

@NoPersonal-git
Copy link

element的tree是通过一个visible变量来控制树节点的显示的,可能是传入vue-virtual-scroll-list的data-sources数据和实际显示的节点不一致导致的显示错误,
可以尝试在tree.vue中的flattenTree方法中添加一个判断,过滤掉传入data-sources的数据

flattenTree(datas) {
  return datas.reduce((conn, data) => {
    if (data.visible) { // 添加一个判断
      conn.push(data); 
    }
    if (data.expanded && data.childNodes.length) {
      conn.push(...this.flattenTree(data.childNodes));
    }
    return conn;
  }, []);
 },

你的这种方法可以使用,他的数据存在node里面并没有破坏原始数据,还能及时更新虚拟滚动的列表
能更新到你的git上吗这个方法

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants