横向拓扑
在 index.html 文件中引入文件。
1
2
3
4
5
|
< link href = "https://magicbox.bk.tencent.com/static_api/v3/assets/bootstrap-3.3.4/css/bootstrap.min.css" rel = "external nofollow" rel = "stylesheet" > < link href = "https://magicbox.bk.tencent.com/static_api/v3/assets/bkTopology-1.1/css/bkTopology.css" rel = "external nofollow" rel = "stylesheet" > < script src = "https://magicbox.bk.tencent.com/static_api/v3/assets/js/jquery-1.10.2.min.js" ></ script > < script src = "https://magicbox.bk.tencent.com/static_api/v3/assets/bootstrap-3.3.4/js/bootstrap.min.js" ></ script > < script src = "https://magicbox.bk.tencent.com/static_api/v3/assets/bkTopology-1.2/js/bkTopology.js" ></ script > |
在需要绘制拓扑图的组件进行编程。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
|
< template > < div > < span >S型拓扑图</ span > < div class = "bktopo-container" > < div class = "bktopo_demo" id = "bktopo_demo2" > < div class = "none node" id = "node-templates" data-container = "body" data-placement = "top" data-html = "true" data-trigger = "hover" > < div class = "node-container" >< span class = "node-text" ></ span ></ div > </ div > < div class = "bktopo_box" style = "height:350px;" ></ div > </ div > </ div > </ div > </ template > < script > export default { data() { return { 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" } ] } } }, mounted() { this.init() }, methods: { init() { $('#bktopo_demo2 .bktopo_box').bkTopology({ data: this.data, //配置数据源 lineType: [ //配置线条的类型 { type: 'success', lineColor: '#46C37B' }, { type: 'info', lineColor: '#4A9BFF' }, { type: 'warning', lineColor: '#f0a63a' }, { type: 'danger', lineColor: '#c94d3c' }, { type: 'default', lineColor: '#aaa' } ] }); } }, } </ script > < style scoped> </ style > |
S型拓扑
和上面横向一样,需要在 index.html 文件中引用 js 文件。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
|
<template> <div> <span>横向拓扑图</span> <div class= "bktopo-container" > <div class= "bktopo_demo" id= "bktopo_demo2" > <div class= "none node" id= "node-templates" data-container= "body" data-placement= "top" data-html= "true" data-trigger= "hover" > <div class= "node-container" ><span class= "node-text" ></span></div> </div> <div class= "bktopo_box" style= "height:350px;" ></div> </div> </div> </div> </template> <script> export default { data() { return { data: { "nodes" : [ { "id" : "demo3_node1" , "x" : 100, "y" : 50, "height" : 50, "width" : 100, "text" : "发起" , "className" : "node success" }, { "id" : "demo3_node2" , "x" : 250, "y" : 50, "height" : 50, "width" : 100, "text" : "过程1" , "className" : "node success" }, { "id" : "demo3_node3" , "x" : 400, "y" : 50, "height" : 50, "width" : 100, "text" : "过程2" , "className" : "node danger" }, { "id" : "demo3_node4" , "x" : 550, "y" : 50, "height" : 50, "width" : 100, "text" : "过程3" , "className" : "node success" }, { "id" : "demo3_node5" , "x" : 550, "y" : 150, "height" : 50, "width" : 100, "text" : "过程4" , "className" : "node success" }, { "id" : "demo3_node6" , "x" : 400, "y" : 150, "height" : 50, "width" : 100, "text" : "过程5" , "className" : "node warning" }, { "id" : "demo3_node7" , "x" : 250, "y" : 150, "height" : 50, "width" : 100, "text" : "过程6" , "className" : "node success" }, { "id" : "demo3_node8" , "x" : 100, "y" : 150, "height" : 50, "width" : 100, "text" : "过程7" , "className" : "node success" }, ], "edges" : [ { "source" : "demo3_node1" , "sDirection" : 'right' , "target" : "demo3_node2" , "tDirection" : 'left' , "edgesType" : "success" }, { "source" : "demo3_node2" , "sDirection" : 'right' , "target" : "demo3_node3" , "tDirection" : 'left' , "edgesType" : "danger" }, { "source" : "demo3_node3" , "sDirection" : 'right' , "target" : "demo3_node4" , "tDirection" : 'left' , "edgesType" : "success" }, { "source" : "demo3_node4" , "sDirection" : 'right' , "target" : "demo3_node5" , "tDirection" : 'right' , "edgesType" : "success" }, { "source" : "demo3_node5" , "sDirection" : 'right' , "target" : "demo3_node6" , "tDirection" : 'right' , "edgesType" : "warning" }, { "source" : "demo3_node6" , "sDirection" : 'right' , "target" : "demo3_node7" , "tDirection" : 'right' , "edgesType" : "success" }, { "source" : "demo3_node7" , "sDirection" : 'right' , "target" : "demo3_node8" , "tDirection" : 'right' , "edgesType" : "success" }, ] } } }, mounted() { this .init() }, methods: { init() { $( '#bktopo_demo2 .bktopo_box' ).bkTopology({ data: this .data, //配置数据源 lineType: [ //配置线条的类型 { type: 'success' , lineColor: '#46C37B' }, { type: 'info' , lineColor: '#4A9BFF' }, { type: 'warning' , lineColor: '#f0a63a' }, { type: 'danger' , lineColor: '#c94d3c' }, { type: 'default' , lineColor: '#aaa' } ] }); } }, } </script> <style scoped> </style> |
纵向拓扑
和上面横向一样,需要在 index.html 文件中引用 js 文件。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
|
<template> <div> <span>纵向拓扑图</span> <div class= "bktopo-container" > <div class= "bktopo_demo" id= "bktopo_demo2" > <div class= "none node" id= "node-templates" data-container= "body" data-placement= "top" data-html= "true" data-trigger= "hover" > <div class= "node-container" ><span class= "node-text" ></span></div> </div> <div class= "bktopo_box" style= "height:350px;" ></div> </div> </div> </div> </template> <script> export default { data() { return { data: { "nodes" : [ { "id" : "node1" , "x" : 361, "y" : 20, "height" : 50, "width" : 180, "text" : "浏览器发起'www.qq.com'请求" , "className" : "node success" }, { "id" : "node2" , "x" : 391, "y" : 100, "height" : 50, "width" : 120, "text" : "本地hosts文件解析" , "className" : "node success" }, { "id" : "node3" , "x" : 301, "y" : 200, "height" : 50, "width" : 100, "text" : "客户接入联通网" , "className" : "node" }, { "id" : "node4" , "x" : 400, "y" : 200, "height" : 50, "width" : 100, "text" : "客户接入移动网" , "className" : "node" }, { "id" : "node5" , "x" : 499, "y" : 200, "height" : 50, "width" : 100, "text" : "客户接入电信网" , "className" : "node success" , "title" : "如果hosts匹配成功则不经过DNS服务器解析。直接使用IP访问" }, { "id" : "node6" , "x" : 233, "y" : 300, "height" : 50, "width" : 140, "text" : "联通DNS服务器" , "className" : "node" }, { "id" : "node7" , "x" : 372, "y" : 300, "height" : 50, "width" : 140, "text" : "移动DNS服务器" , "className" : "node" }, { "id" : "node8" , "x" : 511, "y" : 300, "height" : 50, "width" : 140, "text" : "电信DNS服务器" , "className" : "node success" }, { "id" : "node9" , "x" : 233, "y" : 400, "height" : 50, "width" : 370, "text" : "核心骨干交换网集群" , "className" : "node success" }, { "id" : "node19" , "x" : 343, "y" : 500, "height" : 50, "width" : 150, "text" : "WEb服务器" , "className" : "node success" }, ], "edges" : [ { "source" : "node1" , "sDirection" : 'bottom' , "target" : "node2" , "tDirection" : 'top' , "edgesType" : "success" }, { "source" : "node2" , "sDirection" : 'bottom' , "target" : "node5" , "tDirection" : 'top' , "edgesType" : "success" }, { "source" : "node3" , "sDirection" : 'bottom' , "target" : "node6" , "tDirection" : 'top' , "edgesType" : "danger" }, { "source" : "node6" , "sDirection" : 'bottom' , "target" : "node9" , "tDirection" : 'left' , "edgesType" : "danger" }, { "source" : "node4" , "sDirection" : 'bottom' , "target" : "node7" , "tDirection" : 'top' , "edgesType" : "danger" }, { "source" : "node5" , "sDirection" : 'bottom' , "target" : "node8" , "tDirection" : 'top' , "edgesType" : "success" }, { "source" : "node7" , "sDirection" : 'bottom' , "target" : "node9" , "tDirection" : 'top' , "edgesType" : "danger" }, { "source" : "node8" , "sDirection" : 'bottom' , "target" : "node9" , "tDirection" : 'right' , "edgesType" : "danger" }, { "source" : "node9" , "sDirection" : 'bottom' , "target" : "node19" , "tDirection" : 'top' , "edgesType" : "success" } ] } } }, mounted() { this .init() }, methods: { init() { $( '#bktopo_demo2 .bktopo_box' ).bkTopology({ data: this .data, //配置数据源 lineType: [ //配置线条的类型 { type: 'success' , lineColor: '#46C37B' }, { type: 'info' , lineColor: '#4A9BFF' }, { type: 'warning' , lineColor: '#f0a63a' }, { type: 'danger' , lineColor: '#c94d3c' }, { type: 'default' , lineColor: '#aaa' } ] }); } }, } </script> <style scoped> </style> |
以上就是vue 动态生成拓扑图的示例的详细内容,更多关于vue 生成拓扑图的资料请关注服务器之家其它相关文章!
原文链接:https://www.cnblogs.com/wjw1014/p/13958250.html