gojs实现一个可编辑拖动的思维导图图表效果代码
代码语言:html
所属分类:图表
代码描述:gojs实现一个可编辑拖动的思维导图图表效果代码
下面为部分代码预览,完整代码请点击下载或在bfwstudio webide中打开
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
</head>
<body>
<script src="//repo.bfw.wiki/bfwrepo/js/go.js"></script>
<p>
This is a minimalist HTML and JavaScript skeleton of the GoJS Sample
<a href="https://gojs.net/latest/samples/mindMap.html">mindMap.html</a>. It was automatically generated from a button on the sample page,
and does not contain the full HTML. It is intended as a starting point to adapt for your own usage.
For many samples, you may need to inspect the
<a href="https://github.com/NorthwoodsSoftware/GoJS/blob/master/samples/mindMap.html">full source on Github</a>
and copy other files or scripts.
</p>
<div id="allSampleContent" class="p-4 w-full">
<script id="code">
function init() {
// Since 2.2 you can also author concise templates with method chaining instead of GraphObject.make
// For details, see https://gojs.net/latest/intro/buildingObjects.html
const $ = go.GraphObject.make;
myDiagram =
$(go.Diagram, "myDiagramDiv",
{
// when the user drags a node, also move/copy/delete the whole subtree starting with that node
"commandHandler.copiesTree": true,
"commandHandler.copiesParentKey": true,
"commandHandler.deletesTree": true,
"draggingTool.dragsTree": true,
"undoManager.isEnabled": true
});
// when the document is modified, add a "*" to the title and enable the "Save" button
myDiagram.addDiagramListener("Modified", e => {
var button = document.getElementById("SaveButton");
if (button) button.disabled = !myDiagram.isModified;
var idx = document.title.indexOf("*");
if (myDiagram.isModified) {
if (idx < 0) document.title += "*";
} else {
if (idx >= 0) document.title = document.title.slice(0, idx);
}
});
// a node consists of some text with a line shape underneath
myDiagram.nodeTemplate =
$(go.Node, "Vertical",
{ selectionObjectName: "TEXT" },
$(go.TextBlock,
{
name: "TEXT",
minSize: new go.Size(30, 15),
editable: true
},
// remember not only the text string but the scale and the font in the node data
new go.Binding("text", "text").makeTwoWay(),
new go.Binding("scale", "scale").makeTwoWay(),
new go.Binding("font", "font").makeTwoWay()),
$(go.Shape, "LineH",
{
stretch: go.GraphObject.Horizontal,
strokeWidth: 3, height: 3,
// this line shape is the port -- what links connect with
portId: "", fromSpot: go.Spot.LeftRightSides, toSpot: go.Spot.LeftRightSides
},
new go.Binding("stroke", "brush"),
// make sure links come in from the proper direction and go out a.........完整代码请登录后点击上方下载按钮下载查看
















网友评论0