So entwickeln Sie mit Layui einen Flussdiagramm-Designer, der die Bearbeitbarkeit unterstützt
Einführung:
Mit der rasanten Entwicklung der Informatisierung werden Flussdiagramme zunehmend in verschiedenen Branchen eingesetzt. Allerdings ist die Auswahl an Flussdiagramm-Editoren derzeit auf dem Markt begrenzt und die meisten erfordern eine Bezahlung. In diesem Artikel wird erläutert, wie Sie mit dem Layui-Framework einen bearbeitbaren Flussdiagramm-Designer entwickeln und spezifische Codebeispiele bereitstellen.
1. Einführung in Layui:
Layui ist ein einfaches und benutzerfreundliches Front-End-Framework, das eine Fülle von Komponenten und Schnittstellen zum schnellen Aufbau einer Weboberfläche bietet. Es zeichnet sich durch geringes Gewicht, Modularität, Reaktionsfähigkeit usw. aus und eignet sich sehr gut für die schnelle Entwicklung einfacher Webanwendungen.
2. Designideen:
Der Beispielcode lautet wie folgt:
<div class="toolbar"> <button class="layui-btn layui-btn-primary" id="start">开始节点</button> <button class="layui-btn layui-btn-primary" id="process">流程节点</button> <button class="layui-btn layui-btn-primary" id="decision">决策节点</button> </div> <div id="canvas"></div>
Der Beispielcode lautet wie folgt:
layui.use(['jquery', 'layer'], function(){ var $ = layui.jquery; var layer = layui.layer; // 初始化工具栏按钮 $('#start').click(function(){ // 创建开始节点元素并在画布中显示 ... }); $('#process').click(function(){ // 创建流程节点元素并在画布中显示 ... }); $('#decision').click(function(){ // 创建决策节点元素并在画布中显示 ... }); // 初始化画布 var canvas = $('#canvas'); jsPlumb.ready(function(){ jsPlumb.setContainer(canvas); ... }); });
makeSource
aufrufen, um ihn ziehbar zu machen, und die Methode makeTarget
, um ihn verbindbar zu machen. makeSource
方法使其可拖动,调用makeTarget
方法使其可连接。示例代码如下:
// 创建开始节点元素 var start = $('<div class="node start">开始</div>'); canvas.append(start); jsPlumb.makeSource(start, { filter: '.node', anchor: 'Continuous', connectorStyle: { strokeStyle: '#999', lineWidth: 2 }, connectionType: 'basic', extract:{ "action":"the-action" }, maxConnections: 1, onMaxConnections: function(info, e) { layer.msg("不能再添加连接了!", {time: 1000}); } }).initDraggable(); // 创建流程节点元素 var process = $('<div class="node process">流程节点</div>'); canvas.append(process); jsPlumb.makeSource(process, { filter: '.node', anchor: 'Continuous', connectorStyle: { strokeStyle: '#999', lineWidth: 2 }, connectionType: 'basic', extract:{ "action":"the-action" }, maxConnections: -1, onMaxConnections: function(info, e) { layer.msg("不能再添加连接了!", {time: 1000}); } }).initDraggable(); // 创建决策节点元素 var decision = $('<div class="node decision">决策节点</div>') canvas.append(decision); jsPlumb.makeSource(decision, { filter: '.node', anchor: 'Continuous', connectorStyle: { strokeStyle: '#999', lineWidth: 2 }, connectionType: 'basic', extract:{ "action":"the-action" }, maxConnections: -1, onMaxConnections: function(info, e) { layer.msg("不能再添加连接了!", {time: 1000}); } }).initDraggable();
connect
canvas.on('contextmenu', '.node', function(e){ e.preventDefault(); var node = $(this); var menu = $('<div class="menu"></div>'); // 获取所有可连接的节点 var targets = canvas.find('.node').not(node); // 创建菜单项 targets.each(function(){ var target = $(this); var item = $('<div class="menu-item"></div>').text(target.text()); item.click(function(){ // 添加连接线 jsPlumb.connect({ source: node, target: target, ... // 连接线的样式和属性设置 }); menu.remove(); }); menu.append(item); }); // 显示菜单 menu.css({ top: e.pageY, left: e.pageX }); canvas.append(menu); });
Mit der connect
-Methode der jsPlumb-Engine können wir die Verbindung implementieren Linie zwischen Knoten. Klicken Sie mit der rechten Maustaste auf den Knoten. Daraufhin wird ein Menü angezeigt, in dem der Benutzer den Zielknoten auswählen kann, zu dem er eine Verbindung herstellen möchte.
Das obige ist der detaillierte Inhalt vonSo entwickeln Sie mit Layui einen bearbeitbaren Flussdiagramm-Designer. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!