Vue.js 使用AntV X6的示例步驟
0x0 前言
因?yàn)轫?xiàng)目用到流程圖,并且需求也算是不詳細(xì),所以選擇比較靈活的 x6 圖形編輯器作為流程圖編輯器,從文檔來(lái)看不算復(fù)雜,這邊就是作為參考教程。
0x1 安裝
根據(jù)教程提示安裝 x6 依賴(lài)即可,然后新建個(gè)容器進(jìn)行實(shí)例化:
<div ref="containerRef" class="area-center-container" />
const data = {
// 節(jié)點(diǎn)
nodes: [
{
id: 'node1', // String,可選,節(jié)點(diǎn)的唯一標(biāo)識(shí)
x: 40, // Number,必選,節(jié)點(diǎn)位置的 x 值
y: 40, // Number,必選,節(jié)點(diǎn)位置的 y 值
width: 80, // Number,可選,節(jié)點(diǎn)大小的 width 值
height: 40, // Number,可選,節(jié)點(diǎn)大小的 height 值
label: 'hello', // String,節(jié)點(diǎn)標(biāo)簽
},
{
id: 'node2', // String,節(jié)點(diǎn)的唯一標(biāo)識(shí)
x: 160, // Number,必選,節(jié)點(diǎn)位置的 x 值
y: 180, // Number,必選,節(jié)點(diǎn)位置的 y 值
width: 80, // Number,可選,節(jié)點(diǎn)大小的 width 值
height: 40, // Number,可選,節(jié)點(diǎn)大小的 height 值
label: 'world', // String,節(jié)點(diǎn)標(biāo)簽
},
],
// 邊
edges: [
{
source: 'node1', // String,必須,起始節(jié)點(diǎn) id
target: 'node2', // String,必須,目標(biāo)節(jié)點(diǎn) id
},
],
}
function initGraph() {
const graph = new Graph({
container: this.$refs.containerRef,
grid: {
size: 10, // 網(wǎng)格大小 10px
visible: true // 渲染網(wǎng)格背景
},
snapline: {
enabled: true, // 對(duì)齊線
sharp: true
},
scroller: {
enabled: true,
pageVisible: false,
pageBreak: false,
pannable: true
}
})
// 畫(huà)布居中
graph.centerContent()
graph.fromJSON(data)
}
就這樣最簡(jiǎn)單例子實(shí)現(xiàn)了,上面不同的參數(shù)請(qǐng)參考文檔對(duì)應(yīng)的解釋。
0x2 節(jié)點(diǎn)側(cè)邊欄
根據(jù)文檔的 stencil 例子,可以簡(jiǎn)化很多代碼量,直接用封裝好的業(yè)務(wù)就行了,和上面一樣直接寫(xiě)個(gè)容器實(shí)例化即可:
<el-aside ref="stencilRef" class="area-left" />
this.stencil = new Stencil({
title: '流程節(jié)點(diǎn)側(cè)邊欄',
target: graph,
search: false,
collapsable: true,
stencilGraphWidth: this.$refs.stencilRef.$el.clientWidth,
stencilGraphHeight: this.$refs.stencilRef.$el.clientHeight,
groups: [
{
name: 'group',
title: '流程圖節(jié)點(diǎn)',
collapsable: false
}
],
getDropNode: node => {
let cloneNode = node.clone()
switch (node.shape) {
case 'rect':
cloneNode = new RectShape()
break
case 'circle':
cloneNode = new CircleShape()
break
case 'polygon':
cloneNode = new PolylineShape()
break
}
cloneNode.updateInPorts(graph)
return cloneNode
}
})
// 加載節(jié)點(diǎn)
this.stencil.load([new Rect(rectInfo), new Circle(circleInfo), new Polygon(polygonInfo)], 'group')
0x3 整合例子
在線:https://codesandbox.io/s/icy-meadow-rqihx

以上就是Vue.js 使用Antv X6的示例步驟的詳細(xì)內(nèi)容,更多關(guān)于Vue.js 使用 Antv X6的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
打通前后端構(gòu)建一個(gè)Vue+Express的開(kāi)發(fā)環(huán)境
這篇文章主要介紹了打通前后端構(gòu)建一個(gè)Vue+Express的開(kāi)發(fā)環(huán)境,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2018-07-07
vue項(xiàng)目展示pdf文件的方法實(shí)現(xiàn)
本文主要介紹了vue項(xiàng)目展示pdf文件的方法實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2023-07-07
Vue嵌套iframe時(shí)$router.go(-1)后退bug的原因解析
這篇文章主要介紹了Vue嵌套iframe,$router.go(-1)后退bug的問(wèn)題原因及解決方法,本文給大家分享問(wèn)題原因所在及解決方案,需要的朋友可以參考下吧2023-09-09
關(guān)于el-select組件設(shè)置默認(rèn)值的實(shí)現(xiàn)方式
這篇文章主要介紹了關(guān)于el-select組件設(shè)置默認(rèn)值的實(shí)現(xiàn)方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-09-09
vue編寫(xiě)的功能強(qiáng)大的swagger-ui頁(yè)面及使用方式
swagger是一種標(biāo)準(zhǔn)的數(shù)據(jù)格式的定義,對(duì)于不同語(yǔ)言進(jìn)行實(shí)現(xiàn)一些注解API式的東西,能快速生成這種描述restful格式的api信息的json串,本文給大家詳細(xì)介紹vue編寫(xiě)的功能強(qiáng)大的swagger-ui頁(yè)面,感興趣的朋友跟隨小編一起看看吧2022-02-02
Vue3+X6流程圖實(shí)現(xiàn)數(shù)據(jù)雙向綁定詳解
這篇文章主要為大家詳細(xì)介紹了Vue3如何結(jié)合X6流程圖實(shí)現(xiàn)數(shù)據(jù)雙向綁定,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下2024-03-03

