vue 拓扑组件_vue.js生成横向拓扑图

这篇博客展示了如何在前端使用Vue.js结合后端数据生成横向拓扑图。前端部分利用axios获取后端提供的拓扑数据,并用bkTopology组件进行渲染,设置不同类型的线条颜色。后端返回的数据包括节点和边的详细信息,用于构建拓扑结构。
摘要由CSDN通过智能技术生成

1.前端代码

new Vue({

el: '#app',

data: {

},

mounted() {

this.init()

},

methods: {

init() {

axios.get(site_url + "topo/").then(res => {

if (res.data.result){

$('#bktopo_demo2 .bktopo_box').bkTopology({

data: res.data.data, //配置数据源

lineType: [ //配置线条的类型

{type: 'success', lineColor: '#46C37B'},

{type: 'info', lineColor: '#4A9BFF'},

{type: 'warning', lineColor: '#f0a63a'},

{type: 'danger', lineColor: '#c94d3c'},

{type: 'default', lineColor: '#aaa'}

]

});

}else{

this.$message.error('获取拓朴数据失败');

}

},'json');

}

}

})

2.后端代码

def topo(request):

data = {

"nodes": [

{"id": "root", "x": 10, "y": 152, "height": 50, "width": 120, "text": "卡机健康度", "className": "info"},

{"id": "child1", "x": 200, "y": 30, "height": 50, "width": 120, "text": "进程CPU监控", "className": "info"},

{"id": "child2", "x": 200, "y": 90, "height": 50, "width": 120, "text": "网管网络故障监控", "className": "info"},

{"id": "child3", "x": 200, "y": 150, "height": 50, "width": 120, "text": "进程内在泄露监控", "className": "info"},

{"id": "child4", "x": 200, "y": 210, "height": 50, "width": 120, "text": "进程存活监控", "className": "info"},

{"id": "child5", "x": 200, "y": 270, "height": 50, "width": 120, "text": "用户内在使用监控", "className": "info"},

{"id": "child1_1", "x": 380, "y": 30, "height": 50, "width": 120, "text": "监控正常无触发自愈","className": "success"},

{"id": "child2_1", "x": 380, "y": 90, "height": 50, "width": 120, "text": "监控正常无触发自愈","className": "success"},

{"id": "child3_1", "x": 380, "y": 150, "height": 50, "width": 120, "text": "发现异常触发自愈","className": "danger"},

{"id": "child3_2", "x": 560, "y": 150, "height": 50, "width": 120, "text": "重启进程正常", "className": "success"},

{"id": "child4_1", "x": 380, "y": 210, "height": 50, "width": 120, "text": "发现异常触发自愈","className": "danger"},

{"id": "child4_2", "x": 560, "y": 210, "height": 50, "width": 120, "text": "重启进程正常","className": "success"},

{"id": "child5_1", "x": 380, "y": 270, "height": 50, "width": 120, "text": "发现异常触发自愈","className": "success"},

],

"edges": [

{"source": "root", "sDirection": 'right', "target": "child1", "tDirection": 'left', "edgesType": "info"},

{"source": "root", "sDirection": 'right', "target": "child2", "tDirection": 'left', "edgesType": "info"},

{"source": "root", "sDirection": 'right', "target": "child3", "tDirection": 'left', "edgesType": "info"},

{"source": "root", "sDirection": 'right', "target": "child4", "tDirection": 'left', "edgesType": "info"},

{"source": "root", "sDirection": 'right', "target": "child5", "tDirection": 'left', "edgesType": "info"},

{"source": "child1","sDirection":'right',"target":"child1_1","tDirection":'left',"edgesType": "success"},

{"source": "child2","sDirection": 'right', "target": "child2_1", "tDirection": 'left',"edgesType": "success"},

{"source": "child3","sDirection": 'right', "target": "child3_1", "tDirection": 'left',"edgesType": "danger"},

{"source": "child3_1","sDirection": 'right', "target": "child3_2", "tDirection": 'left',"edgesType": "success"},

{"source": "child4","sDirection": 'right', "target": "child4_1", "tDirection": 'left',"edgesType": "danger"},

{"source": "child4_1","sDirection": 'right', "target": "child4_2", "tDirection": 'left',"edgesType": "success"},

{"source": "child5","sDirection": 'right', "target": "child5_1", "tDirection": 'left',"edgesType": "success"}

]

}

return JsonResponse({"result": True, "data": data})

显示效果

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值