export const easyFlowMixin = { data() { return { jsplumbSetting: { // 动æ€é”šç‚¹ã€ä½ç½®è‡ªé€‚应 Anchors: ['Top', 'TopCenter', 'TopRight', 'TopLeft', 'Right', 'RightMiddle', 'Bottom', 'BottomCenter', 'BottomRight', 'BottomLeft', 'Left', 'LeftMiddle'], // 容器ID Container: 'efContainer', // è¿žçº¿çš„æ ·å¼ï¼Œç›´çº¿æˆ–者曲线ç‰ï¼Œå¯é€‰å€¼: StateMachineã€Flowchart,Bezierã€Straight Connector: ['Bezier', {curviness: 100}], // Connector: ['Straight', {stub: 20, gap: 1}], // Connector: ['Flowchart', {stub: 30, gap: 1, alwaysRespectStubs: false, midpoint: 0.5, cornerRadius: 10}], // Connector: ['StateMachine', {margin: 5, curviness: 10, proximityLimit: 80}], // é¼ æ ‡ä¸èƒ½æ‹–åŠ¨åˆ é™¤çº¿ ConnectionsDetachable: false, // åˆ é™¤çº¿çš„æ—¶å€™èŠ‚ç‚¹ä¸åˆ 除 DeleteEndpointsOnDetach: false, /** * 连线的两端端点类型:圆形 * radius: 圆的åŠå¾„,越大圆越大 */ // Endpoint: ['Dot', {radius: 5, cssClass: 'ef-dot', hoverClass: 'ef-dot-hover'}], /** * 连线的两端端点类型:矩形 * height: 矩形的高 * width: 矩形的宽 */ // Endpoint: ['Rectangle', {height: 20, width: 20, cssClass: 'ef-rectangle', hoverClass: 'ef-rectangle-hover'}], /** * 图åƒç«¯ç‚¹ */ // Endpoint: ['Image', {src: 'https://www.easyicon.net/api/resizeApi.php?id=1181776&size=32', cssClass: 'ef-img', hoverClass: 'ef-img-hover'}], /** * 空白端点 */ Endpoint: ['Blank', {Overlays: ''}], // Endpoints: [['Dot', {radius: 5, cssClass: 'ef-dot', hoverClass: 'ef-dot-hover'}], ['Rectangle', {height: 20, width: 20, cssClass: 'ef-rectangle', hoverClass: 'ef-rectangle-hover'}]], /** * è¿žçº¿çš„ä¸¤ç«¯ç«¯ç‚¹æ ·å¼ * fill: 颜色值,如:#12aabbï¼Œä¸ºç©ºä¸æ˜¾ç¤º * outlineWidth: 外边线宽度 */ EndpointStyle: {fill: '#1879ffa1', outlineWidth: 1}, // æ˜¯å¦æ‰“å¼€jsPlumb的内部日志记录 LogEnabled: true, /** * è¿žçº¿çš„æ ·å¼ */ PaintStyle: { // 线的颜色 stroke: '#E0E3E7', // 线的粗细,值越大线越粗 strokeWidth: 1, // è®¾ç½®å¤–è¾¹çº¿çš„é¢œè‰²ï¼Œé»˜è®¤è®¾ç½®é€æ˜Žï¼Œè¿™æ ·åˆ«äººå°±çœ‹ä¸è§äº†ï¼Œç‚¹å‡»çº¿çš„æ—¶å€™å¯ä»¥ä¸ç”¨ç²¾ç¡®ç‚¹å‡»ï¼Œå‚考 https://blog.csdn.net/roymno2/article/details/72717101 outlineStroke: 'transparent', // 线外边的宽,值越大,线的点击范围越大 outlineWidth: 10 }, DragOptions: {cursor: 'pointer', zIndex: 2000}, /** * å åŠ å‚考: https://www.jianshu.com/p/d9e9918fd928 */ Overlays: [ // ç®å¤´å åŠ ['Arrow', { width: 10, // ç®å¤´å°¾éƒ¨çš„宽度 length: 8, // 从ç®å¤´çš„尾部到头部的è·ç¦» location: 1, // ä½ç½®ï¼Œå»ºè®®ä½¿ç”¨0~1之间 direction: 1, // æ–¹å‘,默认值为1(表示å‘å‰ï¼‰ï¼Œå¯é€‰-1(表示å‘åŽï¼‰ foldback: 0.623 // 折回,也就是尾翼的角度,默认0.623,当为1时,为æ£ä¸‰è§’ }], // ['Diamond', { // events: { // dblclick: function (diamondOverlay, originalEvent) { // console.log('double click on diamond overlay for : ' + diamondOverlay.component) // } // } // }], ['Label', { label: '', location: 0.1, cssClass: 'aLabel' }] ], // ç»˜åˆ¶å›¾çš„æ¨¡å¼ svgã€canvas RenderMode: 'svg', // é¼ æ ‡æ»‘è¿‡çº¿çš„æ ·å¼ HoverPaintStyle: {stroke: '#b0b2b5', strokeWidth: 1}, // 滑过锚点效果 // EndpointHoverStyle: {fill: 'red'} Scope: 'jsPlumb_DefaultScope' // 范围,具有相åŒscope的点æ‰å¯è¿žæŽ¥ }, /** * è¿žçº¿å‚æ•° */ jsplumbConnectOptions: { isSource: true, isTarget: true, // 动æ€é”šç‚¹ã€æä¾›äº†4ä¸ªæ–¹å‘ Continuousã€AutoDefault anchor: 'Continuous', // 设置连线上é¢çš„labelæ ·å¼ labelStyle: { cssClass: 'flowLabel' }, // 修改了jsplumb æºç ,支æŒlabel ä¸ºç©ºä¼ å…¥è‡ªå®šä¹‰style emptyLabelStyle: { cssClass: 'emptyFlowLabel' } }, /** * æºç‚¹é…ç½®å‚æ•° */ jsplumbSourceOptions: { // 设置å¯ä»¥æ‹–拽的类å,åªè¦é¼ æ ‡ç§»åŠ¨åˆ°è¯¥ç±»å上的DOM,就å¯ä»¥æ‹–拽连线 filter: '.flow-node-drag', filterExclude: false, anchor: 'Continuous', // 是å¦å…许自己连接自己 allowLoopback: true, maxConnections: -1, onMaxConnections: function (info, e) { console.log(`超过了最大值连线: ${info.maxConnections}`) } }, // å‚考 https://www.cnblogs.com/mq0036/p/7942139.html jsplumbSourceOptions2: { // 设置å¯ä»¥æ‹–拽的类å,åªè¦é¼ æ ‡ç§»åŠ¨åˆ°è¯¥ç±»å上的DOM,就å¯ä»¥æ‹–拽连线 filter: '.flow-node-drag', filterExclude: false, // anchor: 'Continuous', // 是å¦å…许自己连接自己 allowLoopback: true, connector: ['Flowchart', {curviness: 50}], connectorStyle: { // 线的颜色 stroke: 'red', // 线的粗细,值越大线越粗 strokeWidth: 1, // è®¾ç½®å¤–è¾¹çº¿çš„é¢œè‰²ï¼Œé»˜è®¤è®¾ç½®é€æ˜Žï¼Œè¿™æ ·åˆ«äººå°±çœ‹ä¸è§äº†ï¼Œç‚¹å‡»çº¿çš„æ—¶å€™å¯ä»¥ä¸ç”¨ç²¾ç¡®ç‚¹å‡»ï¼Œå‚考 https://blog.csdn.net/roymno2/article/details/72717101 outlineStroke: 'transparent', // 线外边的宽,值越大,线的点击范围越大 outlineWidth: 10 }, connectorHoverStyle: {stroke: 'red', strokeWidth: 2} }, jsplumbTargetOptions: { // 设置å¯ä»¥æ‹–拽的类å,åªè¦é¼ æ ‡ç§»åŠ¨åˆ°è¯¥ç±»å上的DOM,就å¯ä»¥æ‹–拽连线 filter: '.flow-node-drag', filterExclude: false, // 是å¦å…许自己连接自己 anchor: 'Continuous', allowLoopback: true, dropOptions: {hoverClass: 'ef-drop-hover'} } } } }