方便给一个案例用于调试吗?
import G6 from "@antv/g6";
const data = {
nodes: [
{
id: "node1",
x: 150,
y: 50,
label: "node1",
},
{
id: "node2",
x: 200,
y: 150,
label: "node2",
},
{
id: "node3",
x: 100,
y: 150,
label: "node3",
},
],
edges: [
{
source: "node1",
target: "node2",
},
{
source: "node2",
target: "node3",
},
{
source: "node3",
target: "node1",
},
],
};
const contextMenu = new G6.Menu({
offsetX: 16 + 10,
offsetY: 0,
itemTypes: ["node"],
trigger: "click",
getContent(evt) {
let header;
if (evt.item) {
const itemType = evt.item.getType();
header = `${itemType.toUpperCase()} ContextMenu`;
}
return `
<h3>${header}</h3>
<ul>
<li title='first' style="background:yellow">li 1</li>
<li title='second' style="background:pink">li 2</li>
<li title='third' style="background:green">li 3</li>
<li title='fourth' style="background:orange">li 4</li>
</ul>`;
},
handleMenuClick: (target, item) => {
if (target.title === "first") {
document.querySelector(".g6-component-contextmenu").style.visibility =
"visible !important";
document.querySelector(".g6-component-contextmenu").style.display =
"block";
}
},
});
const container = document.getElementById("container");
const width = container.scrollWidth;
const height = container.scrollHeight || 500;
const graph = new G6.Graph({
container: "container",
width,
height,
fitView: false,
defaultNode: {
style: {
fill: "#DEE9FF",
stroke: "#5B8FF9",
},
},
defaultEdge: {
style: {
stroke: "#b5b5b5",
},
},
plugins: [contextMenu],
});
graph.data(data);
graph.render();