elementui连线
ElementUI 连线功能实现方法
ElementUI 本身不直接提供连线功能,但可以通过结合第三方库如 vue-d3-network 或 jsPlumb 实现。以下是两种常见实现方式:
使用 vue-d3-network 实现
安装依赖库:
npm install vue-d3-network d3
组件代码示例:

<template>
<d3-network :net-nodes="nodes" :net-links="links" />
</template>
<script>
import D3Network from 'vue-d3-network'
export default {
components: {
D3Network
},
data() {
return {
nodes: [
{ id: 1, name: '节点1' },
{ id: 2, name: '节点2' }
],
links: [
{ sid: 1, tid: 2 }
]
}
}
}
</script>
使用 jsPlumb 实现
安装依赖库:
npm install jsplumb
组件代码示例:

<template>
<div>
<div id="node1" class="node">节点1</div>
<div id="node2" class="node">节点2</div>
</div>
</template>
<script>
import { jsPlumb } from 'jsplumb'
export default {
mounted() {
jsPlumb.ready(() => {
jsPlumb.connect({
source: 'node1',
target: 'node2',
endpoint: 'Dot',
connector: ['Straight']
})
})
}
}
</script>
<style>
.node {
position: absolute;
width: 100px;
height: 40px;
background: #E6A23C;
text-align: center;
line-height: 40px;
}
#node1 { left: 100px; top: 100px; }
#node2 { left: 300px; top: 100px; }
</style>
自定义样式与交互
两种方式均支持自定义连线样式:
vue-d3-network可通过配置linkOptions修改连线颜色、宽度jsPlumb提供paintStyle参数设置连线样式
交互功能实现:
- 拖拽节点自动更新连线(jsPlumb 默认支持)
- 点击事件绑定
- 动态增删节点和连线
注意事项
- 使用前确保正确引入 CSS 样式文件
- 动态数据更新时需要手动触发重绘
- 复杂场景建议使用专业可视化库如 G6、ECharts
- 移动端需额外处理触摸事件兼容性






