SOURCE

console 命令行工具 X clear

                    
>
console
<!DOCTYPE html>
<html>

<head>
	<meta charset="utf-8" />
	<title>combos demo</title>
</head>

<body>
	<div id="container"></div>

	<script src="https://gw.alipayobjects.com/os/antv/pkg/_antv.g6-3.7.1/dist/g6.min.js">
	</script>
	<script>
		const mockData = {
            "nodes": [
                {
                "id": "0",
                "label": "n0",
                "class": "c0",
                "x": 1000,
                "y": -100,
                },
                {
                "id": "1",
                "label": "n1",
                "class": "c0",
                "x": 300,
                "y": -10,
                },
                {
                "id": "2",
                "label": "n2",
                "class": "c0",
                "x": 10,
                "y": 10
                },
                {
                "id": "3",
                "label": "n3",
                "class": "c0",
                "x": 320,
                "y": -100
                },
                {
                "id": "4",
                "label": "n4",
                "class": "c0",
                "x": 100,
                "y": 900
                },
                {
                "id": "5",
                "label": "n5",
                "class": "c0",
                "x": 120,
                "y": 213
                },
                {
                "id": "6",
                "label": "n6",
                "class": "c1",
                "x": 543,
                "y": 12
                },
                {
                "id": "7",
                "label": "n7",
                "class": "c1",
                "x": 543,
                "y": -100
                },
                {
                "id": "8",
                "label": "n8",
                "class": "c1",
                "x": 1,
                "y": 0
                },
                {
                "id": "9",
                "label": "n9",
                "class": "c1",
                "x": 0,
                "y": -222
                },
                {
                "id": "10",
                "label": "n10",
                "class": "c1",
                "x": 435,
                "y": 69
                },
                {
                "id": "11",
                "label": "n11",
                "class": "c1",
                "x": 23,
                "y": 10
                },
                {
                "id": "12",
                "label": "n12",
                "class": "c1",
                "x": -129,
                "y": 39
                },
                {
                "id": "13",
                "label": "n13",
                "class": "c2",
                "x": 234,
                "y": 843
                },
                {
                "id": "14",
                "label": "n14",
                "class": "c2",
                "x": -301,
                "y": 129
                },
                {
                "id": "15",
                "label": "n15",
                "class": "c2",
                "x": -20,
                "y": -76
                },
                {
                "id": "16",
                "label": "n16",
                "class": "c2",
                "x": 1220,
                "y": -34
                },
                {
                "id": "17",
                "label": "n17",
                "class": "c2",
                "x": -10,
                "y": 954
                },
                {
                "id": "18",
                "label": "n18",
                "class": "c2",
                "x": 492,
                "y": 123
                },
                {
                "id": "19",
                "label": "n19",
                "class": "c2",
                "x": 123,
                "y": -241
                }
            ],
            combos: [
                {
                    id: 'combo1',
                    type: 'circle',
                    label: 'combo1',
                },
                {
                    id: 'combo2',
                    type: 'circle',
                    label: 'combo2',
                },
                {
                    id: 'combo3',
                    type: 'rect',
                    label: 'combo3',
                    parentId: 'combo1',
                }
            ]
        };

        const graph = new G6.Graph({
            container: 'container',
            width: 800,
            height: 600,
            // 必须将 groupByTypes 设置为 false,带有 combo 的图中元素的视觉层级才能合理
            groupByTypes: false,
            fitView: true,
            fitViewPadding: [10,20,10,20],
            defaultNode: {
                size: 50,
            },
            defaultCombo: {
                size: 60,
                style: {
                    fill: '#bae637',
                    stroke: '#eaff8f',
                    lineWidth: 5,
                },
                labelCfg: {
                    position: 'center',
                    style: {
                        fontSize: 100,
                    }
                }
            },
            modes: {
                default: ['drag-node', 'drag-canvas', 'zoom-canvas', 'drag-combo', 'collapse-expand-combo', 'drag-node']
            }
        });

        mockData.nodes.forEach(node => {
            const rest = node.id % 3;
            switch(rest){
                case 0:
                    node.comboId = 'combo1';
                    break;
                case 1:
                    node.comboId = 'combo2';
                    break;
                default:
                    node.comboId = 'combo3';
                    break;
            }
        });

        graph.data(mockData);
        graph.render();
	</script>
</body>

</html>