自定义两种节点在数据中给定了type和size,设置nodesep或者nodesepfunc仍然失效 #5405
RealRio posted onGitHub
问题描述
自定义了rect扩展而来的两种节点,single和multi,multi的高度更高。 出现了两个问题,第一个问题是nodesep设为0和nodesepfunc返回0,这两种实际导致的节点间隔不同。第二个问题是,数据中给到了size但是仍然出现节点覆盖的情况。
node数据如下: originNodes.forEach((item) => { nodes.push({ id: item.story_code, comboId: getFieldValues(item.detail?.field_values, 'parent_asset'), anchorPoints: [ [0, 0.5], [1, 0.5], ], type: item.children.length === 1 ? 'single-card' : 'multi-card', size: [ item.children.length === 1 ? 256 : 280, item.children.length === 1 ? 90 : 210, ], panels: item.children.map((child) => ({ taskCode: child.task_code, taskName: getFieldValues(child.detail.field_values, 'name'), time:getFieldValues(child.detail.field_values, 'start_time') owner: getFieldValues(child.detail.field_values, 'assignees'), status: getFieldValues(child.detail.field_values, 'status'), })), }); });
layout的config如下: layout: { type: 'dagre', rankdir: 'LR', controlPoints: true, nodesepFunc: (d) => { return 0; }, // nodesep: 0, ranksep: 100, preventOverlap: true, sortByCombo: true, }
重现链接
无
重现步骤
无
预期行为
期望在设置了size后只需要制定固定的nodesep,能根据不同node的size使用相同的nodesep,node之间不要重叠,也不要出现间距过大的情况。
平台
- 操作系统: [macOS, Windows, Linux, React Native ...]
- 网页浏览器: [Google Chrome, Safari, Firefox]
- G6 版本: [4.5.1 ... ]
屏幕截图或视频(可选)
<img width="202" alt="image" src="https://github.com/antvis/G6/assets/26346668/ea652f8b-06c0-47f5-99ad-9cb9b5a8ee25">
补充说明(可选)
No response