0

我正在使用 Zoomchart 库的 NetChart 类来形成 netchart。但我面临链接问题。并且无法找到任何解决方案。

以下是我想要实现的情况: -

假设我们有两个节点AB。这里A是卖方,B是买方。

Seller A -> B
Buyer  B -> A

我正在动态加载数据。当我们最初加载A时,我们将B作为A的买家。这形成了一个像A -> B这样的链接。但是,当B加载其相关数据时,它会获得A,因为它正在从它(A)购买数据。这形成了两个链接节点:-

{
    "from": "A",
    "to": "B"
}

{
    "from": "B",
    "to": "A"
}

它正在创建这样的图表:-

在此处输入图像描述

但它应该是一个单一的链接。以下是代码:-

this.chartObject = new NetChart({
    container: document.getElementById('sellerBuyersLinkingChart'),
    area: { height: null },
    navigation:{
       focusNodeExpansionRadius: 1,
       initialNodes: ["n-1"],
       mode:"focusnodes"
    },
    data: {
        dataFunction: (nodeList, success, error) => {

            $.ajax({
                url:url+'?nodes='+nodeList.toString(),
                success: (response, textStatus, jqXHR) => {

                    success(response, textStatus, jqXHR);
                },
                error: error
            });
        },
        requestMaxUnits: 1
    },
    style: {
        nodeStyleFunction: (node) => {
        },
        linkStyleFunction: (link) => {
            let type = link.data['extra']['type'];
            if(type == 'sellers') {
                link['fromDecoration'] = "arrow";
                link['fillColor'] = "rgba(47,195,47,0.8)";
                link['direction'] = "L";
            } else {
                link['toDecoration'] = "arrow";
                link['fillColor'] = "rgba(236,46,46,0.8)";
                link['direction'] = "R";
            }

        },
        nodeFocused: {
            fillColor: 'rgba(232,189,43,1)'
        }
    }
});

期望:有什么方法可以发送到带有 URL 的链接 ID。这样,我可以从链接中删除相同的节点。

该图表应创建如下节点:-

在此处输入图像描述

4

1 回答 1

0

1)如果它们不是唯一的,您可以使用multiLinkProcessor组合多个链接

2) 如果您为链接添加唯一 id,那么您可以单独更新、删除或操作它们(事实上,建议始终为链接和节点添加 id,这样可以防止重复)。没有 ID 也会在控制台日志中提示通知。

于 2019-12-14T13:10:03.220 回答