Enterprise: Datagrid 列过滤器不适合树形网格

创建于 2018-11-23  ·  19评论  ·  资料来源: infor-design/enterprise

我们一直在数据目录项目中尝试使用树形网格,但遇到了许多使其无法使用的问题。 问题是在 4.11 中发现的。 它们中的大多数可能更多地与 ids-enterprise 相关,但我将它们全部放在这里。 把这个写在我的手机上,下周我可以根据需要添加截图示例。

  • [x] 1. 行为:过滤器只匹配顶级树项。
    期望:过滤器应该匹配树中较低的项目,显示匹配的项目以及父母,祖父母等作为上下文~~

  • [x] 2. 行为:将一行与子项匹配继续显示展开/折叠按钮,但单击它不会执行任何操作。 有时也会导致缩进的一般怪异,我将在下周尝试重现。
    期望:如果父项是匹配项,则应该可以展开以查看所有子项。 如果它的一个孩子也是匹配的,我不太确定应该是什么行为......~~

  • [x] 3. 行为:树形网格格式具有误导性。 子项的缩进与父项上展开/折叠按钮产生的缩进相匹配,使其看起来好像在同一级别。
    期望:兄弟元素的文本都应该有匹配的缩进,展开/折叠按钮不应该改变缩进

  • [ ] 4. 行为:在不破坏树的情况下,使用带有 Angular 组件的展开/折叠按钮将自定义格式应用于列似乎是不可能的。
    期望:自定义格式应该与树形网格一起保持可能

[5] type

最有用的评论

将此添加为 api 设置allowChildExpandOnMatch: boolean

allowChildExpandOnMatch === true

  • 如果只有父节点匹配,那么也添加子节点
  • 如果一个或多个子节点匹配,则添加父节点和所有子节点

allowChildExpandOnMatch === false

  • 如果只有父节点匹配,则 (disable|hide|anything-else) +/- 按钮并且不添加子节点
  • 如果一个或多个子节点匹配,则添加父节点并仅添加匹配的子节点(就像现在所做的那样)

所有19条评论

我认为我们应该将其移至 EP 项目。 你能帮我搬一下吗@clepore

我对你的问题进行了编号,以便我可以回应它们。 我们还需要一种方法来更好地重现这些。

  1. 此问题可能已在 #437 上修复,您可以在http://4130-beta0-enterprise.demo.design.infor.com/components/datagrid/test-tree-filter.html 上重新测试吗

  2. 需要一种方法来重现这一点。 可能与#405有关

  3. 需要一个例子。

  4. 如果您完全复制树格式化程序代码并将您的自定义添加到您的版本中,这可能是可能的https://github.com/infor-design/enterprise/blob/master/src/components/datagrid/datagrid.formatters.js #L368 -L378

我会看看其他的,但我现在可以回复 4:我确实尝试将 Tree 格式化程序代码复制到组件中,但是提供展开/折叠按钮功能的代码没有找到按钮。

好的。 我认为 4. 创建 subFormatter 的概念会更好,因此您可以指定它,并且在某些格式化程序中可以格式化该部分。 Fx 隔离树格式器的文本部分。

3 是树形网格设计中固有的一个问题:

2018-11-26 5

根据我的回忆,这是在初始设计期间讨论过的,但“预期”版本对我来说似乎更具可读性。 你怎么看@kayiuho

我认为 2 也被 1 解决了。 如果我可以再次在 Enterprise-ng 中重现它,我会告诉你的。

@tmcconechy仅从视觉比较

3 在 12 月 sprint 中被推。

总之

  1. 已修复另一个问题 #437
  2. 已修复另一个问题 #437
  3. @chrisfried修复了这个 sprint - 谢谢!
  4. 还是个问题

所以我们要分这张票。 如果你仍然想要它,你可以为 #4 创建一个新问题吗@chrisfried
然后我们可以稍后解决此问题,因为此票已移至 QA 以进行您所做的修复。 如果你把票放在你的名字上,那就更好了。 谢谢!

当您应用与父节点匹配的过滤器时,行为编号 2 仍然会发生。 显示展开/折叠按钮但不执行任何操作。
脚步:

  1. 转至https://4140-beta0-enterprise.demo.design.infor.com/components/datagrid/test-tree-filter.html
  2. 在带有“HMM”字样的任务列上应用包含过滤器
  3. 尝试展开/折叠第一行,没有任何反应。

@deep7102你能看看这个额外的案例吗?

目前,#2 的最后一部分不起作用的原因是在那里没有匹配的孩子。 我注意到它说“期望:如果父母是匹配的,它应该可以展开以查看所有孩子。”

我们真的认为即使他们不匹配也应该向孩子们展示吗? 我不太确定,并且倾向于这是正确/可接受的行为?

我们怎么想? @EdwardCoyle @clepore @pwpatton @deep7102 @brianjuan @chrisfried

对于默认搜索行为,我认为这可能取决于。 也许一个开关是有序的(allowChildExpandOnMatch)或其他东西。

在地标中,我们有一个示例,即使子节点与搜索条件不匹配,我们也允许扩展匹配节点(我们延迟加载并自己管理所有这些行为,而无需默认搜索/过滤器,因为我们无法在记忆)。

将此添加为 api 设置allowChildExpandOnMatch: boolean

allowChildExpandOnMatch === true

  • 如果只有父节点匹配,那么也添加子节点
  • 如果一个或多个子节点匹配,则添加父节点和所有子节点

allowChildExpandOnMatch === false

  • 如果只有父节点匹配,则 (disable|hide|anything-else) +/- 按钮并且不添加子节点
  • 如果一个或多个子节点匹配,则添加父节点并仅添加匹配的子节点(就像现在所做的那样)

听起来这会涵盖它 - 大变化?

可能正在思考它需要跟踪过滤器和过滤器节点和深度等

好的,我建议我们稍后再提出一个新问题。 目前这还不完全在范围内。
所以我建议我们像@brianjuan一样关闭这个问题

我认为我们很好地为实现第 2 项的重大更改创建了单独的票证。

现在将移动完成,因为https://4140-beta0-enterprise.demo.design.infor.com/components/datagrid/test-tree-filter.html对于所有其他建议的行为都按预期工作。

添加了新问题 #1422

此页面是否有帮助?
0 / 5 - 0 等级