tdesign-vue-next
tdesign-vue-next copied to clipboard
[Tree] 树组件 选择子节点父节点 没有加入选中值的功能
tdesign-vue-next 版本
1.7,1
重现链接
No response
重现步骤
树节点, 选中子节点 (不全部选择子节点)父节点没有加入选择值里
期望结果
希望在选中子节点时候,(不需要全部选中,将父节点加入选中值中)
实际结果
No response
框架版本
No response
浏览器版本
No response
系统版本
No response
Node版本
16.14.0
补充说明
比如选择用户权限, 可能父节点的一半子节点有权限,另外一半无权限,导致无法获取到父节点的key值 无法绑定
👋 @xiaolin020223,感谢给 TDesign 提出了 issue。 请根据 issue 模版确保背景信息的完善,我们将调查并尽快回复你。
♥️ 有劳 @LeeJim @pengYYYYY 尽快确认问题。 确认有效后将下一步计划和可能需要的时间回复给 @xiaolin020223 。
权限管理经常用到这种半选状态,应该添加一个快捷的模式,直接把父节点半选的项目添加到选择列表中,现有的:onlyLeaf/parentFirst/all 这些模式,都不能达到这个效果,
权限管理经常用到这种半选状态,应该添加一个快捷的模式,直接把父节点半选的项目添加到选择列表中,现有的:onlyLeaf/parentFirst/all 这些模式,都不能达到这个效果,
请问我可以直接使用 getPath 这个方法 获取全部的节点信息吗
目前的实现 all 会在子节点全部选中的情况下加上父节点 没有全部选中 则不会; 目前可以通过onchange回调事件的node 参数来获取父节点信息
目前的实现 all 会在子节点全部选中的情况下加上父节点 没有全部选中 则不会; 目前可以通过onchange回调事件的node 参数来获取父节点信息
所以现在在模式,在实践中不是很科学,常用的权限系统,从后端来,就有既要选中父节点,有了父节点的权限,再选中子节点的功能,但是根据权限不同,不可能要全部选中子节点,才能选中父节点。
对于添加新的 valueMode ,持谨慎态度。 因为取值后再重新设置选中态时,这个改动会引起很大混乱。 如果需要半选节点信息,可以获取所有节点遍历后取 node.indeterminate 值来过滤。
对于添加新的 valueMode ,持谨慎态度。 因为取值后再重新设置选中态时,这个改动会引起很大混乱。 如果需要半选节点信息,可以获取所有节点遍历后取 node.indeterminate 值来过滤。
你好,使用了这个方法 确实获取到了父节点, 但是在编辑时(获取详情信息)因包含了父节点, 导致该父节点下 全部的子节点都被选中, 请问如何解决这个问题呢
这个问题我也碰到了,这个功能需要确实很常见,因为我一个人写前后端,所以我在后端加了个逻辑:
// 创建一个映射来记录已存在的菜单项 existingMenus := make(map[uint]bool) for _, menu := range uniqueMenus { existingMenus[menu.ID] = true }
// 遍历菜单列表,检查父菜单是否存在于 uniqueMenus 中,如果不存在则添加
for _, menu := range uniqueMenus {
parentID := menu.ParentID
// 检查父菜单是否存在于 uniqueMenus 中
if parentID != 0 && !existingMenus[parentID] {
parentMenu, err := GetMenuByID(parentID)
if err != nil {
return nil, err
}
// 将父菜单添加到 uniqueMenus 中
uniqueMenus[parentID] = parentMenu
existingMenus[parentID] = true
}
}