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>
<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; // for conciseness in defining templates
var yellowgrad = $(go.Brush, "Linear", { 0: "rgb(254, 201, 0)", 1: "rgb(254, 162, 0)" });
var greengrad = $(go.Brush, "Linear", { 0: "#98FB98", 1: "#9ACD32" });
var bluegrad = $(go.Brush, "Linear", { 0: "#B0E0E6", 1: "#87CEEB" });
var redgrad = $(go.Brush, "Linear", { 0: "#C45245", 1: "#871E1B" });
var whitegrad = $(go.Brush, "Linear", { 0: "#F0F8FF", 1: "#E6E6FA" });
var bigfont = "bold 13pt Helvetica, Arial, sans-serif";
var smallfont = "bold 11pt Helvetica, Arial, sans-serif";
// Common text styling
function textStyle() {
return {
margin: 6,
wrap: go.TextBlock.WrapFit,
textAlign: "center",
editable: true,
font: bigfont
}
}
myDiagram =
$(go.Diagram, "myDiagramDiv",
{
// have mouse wheel events zoom in and out instead of scroll up and down
"toolManager.mouseWheelBehavior": go.ToolManager.WheelZoom,
initialAutoScale: go.Diagram.Uniform,
"linkingTool.direction": go.LinkingTool.ForwardsOnly,
layout: $(go.LayeredDigraphLayout, { isInitial: false, isOngoing: false, layerSpacing: 50 }),
"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);
}
});
var defaultAdornment =
$(go.Adornment, "Spot",
$(go.Panel, "Auto",
$(go.Shape, { fill: null, stroke: "dodgerblue", strokeWidth: 4 }),
$(go.Placeholder)),
// the button to create a "next" node, at the top-right corner
$("Button",
{
alignment: go.Spot.TopRight,
click: addNodeAndLink
}, // this function is defined below
new go.Binding("visible", "", a => !a.diagram.isReadOnly).ofObject(),
$(go.Shape, "PlusLine", { desiredSize: new go.Size(6, 6) })
)
);
// define the Node template
myDiagram.nodeTemplate =
$(go.Node, "Auto",
{ selectionAdornmentTemplate: defaultAdornment },
new go.Binding("location", "loc", go.Point.parse).makeTwoWay(go.Point.stringify),
// define the node's outer shape, which will surround the TextBlock
$(go.Shape, "Rectangle",
{
fill: yellowgrad, stroke: "black",
portId: "", fromLinkable: true, toLinkable: true, cursor: "pointer",
toEndSegmentLength: 50, fromEndSegmentLength: 40
}),
$(go.TextBlock, "Page",
{
margin: 6,
font: bigfont,
editable: true
},
new go.Binding("text", "text").makeTwoWay()));
myDiagram.nodeTemplateMap.add("Source",
$(go.Node, "Auto",
new go.Binding("location", "loc", go.Point.parse).makeTwoWay(go.Point.stringify),
$(go.Shape, "RoundedRectangle",
{
fill: bluegrad,
portId: "", fromLinkable: true, cursor: "pointer", fromEndSegmentLength: 40
}),
$(go.TextBlock, "Source", textStyle(),
new go.Binding("text", "text").makeTwoWay())
));
myDiagram.nodeTemplateMap.add("DesiredEvent",
$(go.Node, "Auto",
new go.Binding("location", "loc", go.Point.parse).makeTwoWay(go.Point.stringify),
$(go.Shape, "RoundedRectangle",
{ fill: greengrad, portId: "", toLinkable: true, toEndSegmentLength: 50 }),
$(go.TextBlock, "Success!", textStyle(),
new go.Binding("text", "text").makeTwoWay())
));
// Undesired events have a special adornment that allows adding additional "reasons"
var UndesiredEventAdornment =
$(go.Adornment, "Spot",
$(go.Panel, "Auto",
$(go.Shape, { fill: null, stroke: "dodgerblue", strokeWidth: 4 }),
$(go.Placeholder)),
// the button to create a "next" node, at the top-right corner
$("Button",
{
alignment: go.Spot.BottomRight,
click: addReason
}, // this function is defined below
new go.Binding("visible", "", a => !a.diagram.isReadOnly).ofObject(),
$(go.Shape, "TriangleDown", { .........完整代码请登录后点击上方下载按钮下载查看
网友评论0