Layui를 사용하여 편집성을 지원하는 순서도 디자이너를 개발하는 방법
소개:
정보화의 급속한 발전과 함께 다양한 산업에서 순서도의 사용이 점차 늘어나고 있습니다. 그러나 현재 시중에 나와 있는 순서도 편집기의 선택은 제한되어 있으며 대부분 결제가 필요합니다. 이 기사에서는 Layui 프레임워크를 사용하여 편집 가능한 순서도 디자이너를 개발하고 특정 코드 예제를 제공하는 방법을 소개합니다.
1. Layui 소개:
Layui는 웹 인터페이스를 빠르게 구축할 수 있도록 다양한 구성 요소와 인터페이스를 제공하는 간단하고 사용하기 쉬운 프런트 엔드 프레임워크입니다. 경량성, 모듈성, 응답성 등이 특징으로 간단한 웹 애플리케이션을 빠르게 개발하는 데 매우 적합합니다.
2. 디자인 아이디어:
샘플 코드는 다음과 같습니다.
<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>
샘플 코드는 다음과 같습니다.
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
메서드를 호출하여 노드를 드래그 가능하게 만들고 makeTarget
메서드를 호출하여 연결 가능하게 만들 수 있습니다. 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); });
jsPlumb 엔진의 connect
메소드를 사용하면 연결선을 구현할 수 있습니다. 노드 사이. 노드를 마우스 오른쪽 버튼으로 클릭하면 사용자가 연결할 대상 노드를 선택할 수 있는 메뉴가 나타납니다.
위 내용은 Layui를 사용하여 편집 가능한 순서도 디자이너를 개발하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!