jsPlumb系列问题:请问jsPlumb渲染出来之后线条没有连接节点?需要拖动之后才连上
来源:互联网 发布:维棠flv优化破解版 编辑:程序博客网 时间:2024/06/09 17:28
请问下,为什么这样写出来后的jsPlumb图表是这个样子的
JS是这样的:
init: function() { // 初始化流程图配置 jsPlumbToolkit.ready(function () { // 创建流程菜单 taskConf.createNodePalette(processes); // ------------------------ toolkit setup ------------------------------------ // 获取相关的dom元素 mainElement = document.querySelector("#jtk-flowchart"); canvasElement = mainElement.querySelector("#jtk-canvas"); controls = mainElement.querySelector("#confControls"); nodePalette = controls.querySelector('#controls-left'); controlsS2 = document.querySelector("#confControls-s2"); // 重置当前点击的连线信息 curSelectedConnection = {}; // 声明一个工具包,提供创建节点,生成id的方法 toolkit = jsPlumbToolkit.newInstance({ idFunction: function (n) { return n.id; }, typeFunction: function (n) { return n.type; }, nodeFactory: function (typeData, data, callback) { //typeDatadata 是程序实例对象 data.text = typeData['processName'] + '-' + typeData['programVersion']; data.processId = typeData['id']; //data.id = jsPlumbToolkitUtil.uuid(); data.type = typeData['type']; data.flowId = flowId; data = flowEvent.addNode(data, callback); } }); // ------------------------ / toolkit setup ------------------------------------ // 加载流程图 var flowData = flowEvent.getFlowData(1); toolkit.clear(); chartInstance = toolkit.load({ data: flowData }); // ------------------------ rendering呈现 ------------------------------------ // 指导工具包来呈现“画布”的元素。我们通过在一个视图的节点,边缘和港口 // 一起定义渲染器的外观和行为。注意,我们可以有0 - N渲染器 // 分配到工具箱的一个实例。 renderer = window.renderer = chartInstance.render({ container: canvasElement, view: { nodes: { // 开始 start: {template: 'tmplStart'}, // 结束 end: {template: 'tmplEnd'}, // 采集 collect: {template: 'tmpl_1'}, // 适配 adapt: {template: 'tmpl_1'}, // 统计 count: {template: 'tmpl_1'}, // 分析 analyse: {template: 'tmpl_1'} }, // 定义边缘有两种类型——“default”和“connection”,共享一个共同的父节点。 edges: { 'default': { anchor: [[0, 0.5, -1, 0], [0.5, -0.1, 0, -1], [1, 0.5, 1, 0], [0.5, 1, 0, 1]], endpoints: [["Dot", {radius: 3}], ["Dot", {radius: 3}], ["Dot", {radius: 3}], ["Dot", {radius: 3}]], connector: 'Straight', paintStyle: { lineWidth: 2, strokeStyle: '#61B7CF', outlineWidth: 10, outlineColor: 'transparent' }, hoverPaintStyle: {lineWidth: 2, strokeStyle: 'rgb(33,100,119)'}, events: { 'click': function (params) { flowEvent.toggleSelectConnector(params, curSelectedConnection); }, 'dblclick': function (params) { flowEvent.delEdge(params.edge); } }, overlays: [ ['Arrow', {location: 1, width: 10, length: 10}] ], reattach: true, // 拖动端点可以解绑并可移动连接到别的节点 allowLoopback: false, //防止环回连接 allowNodeLoopback: false }, 'connection': { anchor: [[0, 0.5, -1, 0], [0.5, -0.1, 0, -1], [1, 0.5, 1, 0], [0.5, 1.8, 0, 1]], endpoints: [["Dot", {radius: 3}], ["Dot", {radius: 3}], ["Dot", {radius: 3}], ["Dot", {radius: 3}]], connector: ['Straight'], paintStyle: { lineWidth: 2, strokeStyle: '#61B7CF', outlineWidth: 10, outlineColor: 'transparent' }, hoverPaintStyle: {lineWidth: 2, strokeStyle: 'rgb(33,100,119)'}, events: { 'click': function (params) { flowEvent.toggleSelectConnector(params, curSelectedConnection); }, 'dblclick': function (params) { flowEvent.delEdge(params.edge); } }, overlays: [ ['Arrow', {location: 1, width: 10, length: 10}] ], reattach: true, // 拖动端点可以解绑并可移动连接到别的节点 allowLoopback: false, //防止环回连接 allowNodeLoopback: false }, 'connectorSelect': { parent: 'connection', paintStyle: { lineWidth: 2, strokeStyle: '#EB523E', outlineWidth: 5, outlineColor: 'transparent' } } }, // 连接端点类型 ports: { 'start': { edgeType: 'default', maxConnections: 1 }, 'source': { maxConnections: 1, edgeType: 'connection' }, 'target': { maxConnections: 1, edgeType: 'connection' } } }, // Layout the nodes using an absolute layout layout: { type: 'Absolute' }, events: { // 画布点击事件 canvasClick: function (e) { // 清除选中的节点 toolkit.clearSelection(); // 收起画布左边菜单栏 $('#flowList-dropBtn').hasClass('glyphicon-chevron-up') ? $('#flowList-dropBtn').trigger('click') : ''; }, // 连接节点时触发 edgeAdded: function (params) { //console.log(params); }, nodeDropped: function (info) { //console.log(info); } }, lassoInvert: true, elementsDroppable: true, consumeRightClick: false, dragOptions: { filter: '.node-action, .node-action i' } }); renderer.zoomToFit(); // ------------------------ / rendering ------------------------------------ // configure Drawing tools. This is an optional include. 配置绘图工具。这是一个可选的包括。 new jsPlumbToolkit.DrawingTools({ renderer: renderer }); // ------------------------ drag and drop new tables/views ----------------- /* 在这里,我们注册的元素会下降到工作区,工具箱承认新节点。 typeExtractor:这个函数需要一个元素,并返回jsPlumb代表节点的类型 这个元素。在这个应用程序中,这些信息存储在“jtk-node-type”属性。 dataGenerator:这个函数接受一个节点,并返回一些默认数据类型的节点类型。 */ var allowDragNodes = nodePalette.querySelectorAll('span.controls-left_icon'); renderer.registerDroppableNodes({ droppables: allowDragNodes, dragOptions: { zIndex: 50000, cursor: 'move', clone: true }, typeExtractor: function (el) { //返回程序实例对象 var processId = el.getAttribute('processId'); return processMap[processId]; }, dataGenerator: function (data) { //data 是程序实例对象 return { w: 120, h: 30, image: '/admin/etl/taskConf/image/database.svg' }; } }); // ------------------------ / drag and drop new tables/views ----------------- // 初始化页面事件 taskConf.initEvents(); sUtils.lockScreen(false); }); }
页面调用是这样的:
最后渲染出来的是这样的:
这个时候需要拖动左下角那些线条或者拖动节点之后,连线才能恢复正常位置
https://segmentfault.com/q/1010000008648394
0 0
- jsPlumb系列问题:请问jsPlumb渲染出来之后线条没有连接节点?需要拖动之后才连上
- jsplumb笔记
- jsPlumb实例
- jsPlumb Toolkit
- jsPlumb流程图
- highcharts只显示数据,无线条,但是F12之后,会出来线条的问题。
- 详解jsPlumb这个javascript的可拖动连线库
- Linux服务器需要登录之后才能连接无线问题?
- 利用jQuery-UI和jsPlumb实现拖拽连接模型
- Hadoop启动之后jps没有NameNode节点
- jsPlumb拖拽教程
- jsPlumb.connect Examples
- jsplumb 学习(1)
- jsPlumb 学习笔记
- jsplumb小例子
- jsPlumb 学习笔记
- jsPlumb Demo源码分析
- jsPlumb 学习笔记
- Android 开发基础篇——UI——基础控件(TextView、Button、EditText)
- eclipse中集成tomcat测试
- bzoj1237: [SCOI2008]配对
- 【Java】Java序列化机制
- textarea校验长度
- jsPlumb系列问题:请问jsPlumb渲染出来之后线条没有连接节点?需要拖动之后才连上
- JAVA反射使用手记
- 【SysML】模型图概览
- 【Harmony】概述
- EasyUI扩展方法 + jutil.js
- 剑指offer 39.判断二叉树是否为平衡二叉树
- Js 点击按钮 选择文件后 自动上传文件
- 【需求工程】KANO模型
- 【DOORS】产品功能介绍