@riil-frontend/component-topology 2.1.5-dev.3 → 2.1.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (92) hide show
  1. package/build/index.css +1 -1
  2. package/build/index.js +7 -7
  3. package/demo/1/345/237/272/346/234/254/usage.md +4 -0
  4. package/demo/1/345/237/272/346/234/254//345/221/212/350/255/246/346/216/250/351/200/201.md +1 -1
  5. package/demo/1/345/237/272/346/234/254//350/207/252/345/256/232/344/271/211/345/233/276/346/240/207.md +1 -1
  6. package/demo/1/345/237/272/346/234/254//350/207/252/345/256/232/344/271/211/345/261/236/346/200/247/345/222/214/346/214/207/346/240/207.md +1 -1
  7. package/demo/{1/345/237/272/346/234/254 → 2/347/274/226/350/276/221/346/250/241/345/274/217}//346/226/260/345/273/272/350/277/233/345/205/245/347/274/226/350/276/221/346/250/241/345/274/217.md +1 -1
  8. package/demo/{1/345/237/272/346/234/254 → 2/347/274/226/350/276/221/346/250/241/345/274/217}//346/233/277/346/215/242/350/212/202/347/202/271.md +1 -1
  9. package/demo/{1/345/237/272/346/234/254 → 2/347/274/226/350/276/221/346/250/241/345/274/217}//347/246/201/347/224/250/345/205/263/350/201/224/350/265/204/346/272/220.md +1 -1
  10. package/demo/{1/345/237/272/346/234/254 → 2/347/274/226/350/276/221/346/250/241/345/274/217}//347/274/226/350/276/221/346/250/241/345/274/217/345/217/263/351/224/256/350/217/234/345/215/225.md +1 -1
  11. package/demo/{2 → 3}/346/213/223/346/211/221/344/270/255/345/277/203/js/TopoFull.jsx +1 -2
  12. package/demo/{2 → 3}/346/213/223/346/211/221/344/270/255/345/277/203/js/TopoViewer.jsx +0 -0
  13. package/demo/{2 → 3}/346/213/223/346/211/221/344/270/255/345/277/203/js/mock/authorization/v1/api/authority/check/checkFuncAuthentication +0 -0
  14. package/demo/{2 → 3}/346/213/223/346/211/221/344/270/255/345/277/203/js/mock/authorization/v1/api/authority/check/checkFuncAuthentication.json +0 -0
  15. package/demo/3/{344/270/232/345/212/241/347/233/221/346/216/247/346/213/223/346/211/221/src → 346/213/223/346/211/221/344/270/255/345/277/203/js}/mock/model/v1/api/getAllDict +0 -0
  16. package/demo/3/{344/270/232/345/212/241/347/233/221/346/216/247/346/213/223/346/211/221/src → 346/213/223/346/211/221/344/270/255/345/277/203/js}/mock/topo/v1/api/alarm +0 -0
  17. package/demo/3/{344/270/232/345/212/241/347/233/221/346/216/247/346/213/223/346/211/221/src → 346/213/223/346/211/221/344/270/255/345/277/203/js}/mock/topo/v1/api/alarm.json +0 -0
  18. package/demo/{2 → 3}/346/213/223/346/211/221/344/270/255/345/277/203/js/mock/topo/v1/api/attributes/once +0 -0
  19. package/demo/{2 → 3}/346/213/223/346/211/221/344/270/255/345/277/203/js/mock/topo/v1/api/attributes/once.json +0 -0
  20. package/demo/{2 → 3}/346/213/223/346/211/221/344/270/255/345/277/203/js/mock/topo/v1/api/attributes/polling +0 -0
  21. package/demo/{2 → 3}/346/213/223/346/211/221/344/270/255/345/277/203/js/mock/topo/v1/api/attributes/polling.json +0 -0
  22. package/demo/3/{344/270/232/345/212/241/347/233/221/346/216/247/346/213/223/346/211/221/src → 346/213/223/346/211/221/344/270/255/345/277/203/js}/mock/topo/v1/api/auth/permission/2 +0 -0
  23. package/demo/3/{344/270/232/345/212/241/347/233/221/346/216/247/346/213/223/346/211/221/src → 346/213/223/346/211/221/344/270/255/345/277/203/js}/mock/topo/v1/api/auth/permission/2.json +0 -0
  24. package/demo/3/{344/270/232/345/212/241/347/233/221/346/216/247/346/213/223/346/211/221/src → 346/213/223/346/211/221/344/270/255/345/277/203/js}/mock/topo/v1/api/menu +0 -0
  25. package/demo/3/{344/270/232/345/212/241/347/233/221/346/216/247/346/213/223/346/211/221/src → 346/213/223/346/211/221/344/270/255/345/277/203/js}/mock/topo/v1/api/menu.json +0 -0
  26. package/demo/3/{344/270/232/345/212/241/347/233/221/346/216/247/346/213/223/346/211/221/src → 346/213/223/346/211/221/344/270/255/345/277/203/js}/mock/topo/v1/api/shape +0 -0
  27. package/demo/3/{344/270/232/345/212/241/347/233/221/346/216/247/346/213/223/346/211/221/src → 346/213/223/346/211/221/344/270/255/345/277/203/js}/mock/topo/v1/api/shape.json +0 -0
  28. package/demo/{2 → 3}/346/213/223/346/211/221/344/270/255/345/277/203/js/mock/topo/v1/api/structure/both/2 +0 -0
  29. package/demo/{2 → 3}/346/213/223/346/211/221/344/270/255/345/277/203/js/mock/topo/v1/api/structure/both/2.json +0 -0
  30. package/demo/{2 → 3}/346/213/223/346/211/221/344/270/255/345/277/203/js/mock/topo/v1/api/structure/relationList +0 -0
  31. package/demo/{2 → 3}/346/213/223/346/211/221/344/270/255/345/277/203/js/mock/topo/v1/api/structure/relationList.json +0 -0
  32. package/demo/3/{344/270/232/345/212/241/347/233/221/346/216/247/346/213/223/346/211/221/src → 346/213/223/346/211/221/344/270/255/345/277/203/js}/mock/topo/v1/api/webUrl/list +0 -0
  33. package/demo/3/{344/270/232/345/212/241/347/233/221/346/216/247/346/213/223/346/211/221/src → 346/213/223/346/211/221/344/270/255/345/277/203/js}/mock/topo/v1/api/webUrl/list.json +0 -0
  34. package/demo/3/346/213/223/346/211/221/344/270/255/345/277/203/js/request.js +7 -0
  35. package/demo/{2 → 3}/346/213/223/346/211/221/344/270/255/345/277/203//345/256/214/346/225/264/346/250/241/345/274/217.md +0 -0
  36. package/demo/{2 → 3}/346/213/223/346/211/221/344/270/255/345/277/203//346/230/276/347/244/272/346/250/241/345/274/217.md +0 -0
  37. package/demo/{3 → 4}/344/270/232/345/212/241/347/233/221/346/216/247/346/213/223/346/211/221//345/272/224/347/224/250/351/203/250/347/275/262/346/213/223/346/211/221.md +1 -1
  38. package/demo/{3 → 4}/344/270/232/345/212/241/347/233/221/346/216/247/346/213/223/346/211/221//346/225/260/346/215/256/346/265/201/346/213/223/346/211/221.md +1 -1
  39. package/demo/5/345/205/266/344/273/226/347/273/204/344/273/266//351/200/211/346/213/251/350/265/204/346/272/220/346/214/211/351/222/256.md +12 -0
  40. package/demo/5/345/205/266/344/273/226/347/273/204/344/273/266//351/200/211/346/213/251/350/265/204/346/272/220/347/273/204/344/273/266.md +12 -0
  41. package/demo/API/API.md +11 -6
  42. package/{demo/3/344/270/232/345/212/241/347/233/221/346/216/247/346/213/223/346/211/221/src/mock → demo-mock/basic}/cmdb/v1/api/authority/ci/commonQuery +0 -0
  43. package/{demo/2/346/213/223/346/211/221/344/270/255/345/277/203/js/mock → demo-mock/basic}/model/v1/api/getAllDict +0 -0
  44. package/{demo/3/344/270/232/345/212/241/347/233/221/346/216/247/346/213/223/346/211/221/src/mock → demo-mock/basic}/model/v1/api/modelTree +0 -0
  45. package/{demo/2/346/213/223/346/211/221/344/270/255/345/277/203/js/mock → demo-mock/basic}/topo/v1/api/alarm +0 -0
  46. package/{demo/2/346/213/223/346/211/221/344/270/255/345/277/203/js/mock → demo-mock/basic}/topo/v1/api/alarm.json +0 -0
  47. package/{demo/3/344/270/232/345/212/241/347/233/221/346/216/247/346/213/223/346/211/221/src/mock → demo-mock/basic}/topo/v1/api/attributes/once +0 -0
  48. package/{demo/3/344/270/232/345/212/241/347/233/221/346/216/247/346/213/223/346/211/221/src/mock → demo-mock/basic}/topo/v1/api/attributes/once.json +0 -0
  49. package/{demo/3/344/270/232/345/212/241/347/233/221/346/216/247/346/213/223/346/211/221/src/mock → demo-mock/basic}/topo/v1/api/attributes/polling +0 -0
  50. package/{demo/3/344/270/232/345/212/241/347/233/221/346/216/247/346/213/223/346/211/221/src/mock → demo-mock/basic}/topo/v1/api/attributes/polling.json +0 -0
  51. package/{demo/2/346/213/223/346/211/221/344/270/255/345/277/203/js/mock → demo-mock/basic}/topo/v1/api/auth/permission/2 +0 -0
  52. package/{demo/2/346/213/223/346/211/221/344/270/255/345/277/203/js/mock → demo-mock/basic}/topo/v1/api/auth/permission/2.json +0 -0
  53. package/{demo/2/346/213/223/346/211/221/344/270/255/345/277/203/js/mock → demo-mock/basic}/topo/v1/api/menu +0 -0
  54. package/{demo/2/346/213/223/346/211/221/344/270/255/345/277/203/js/mock → demo-mock/basic}/topo/v1/api/menu.json +0 -0
  55. package/{demo/2/346/213/223/346/211/221/344/270/255/345/277/203/js/mock → demo-mock/basic}/topo/v1/api/shape +0 -0
  56. package/{demo/2/346/213/223/346/211/221/344/270/255/345/277/203/js/mock → demo-mock/basic}/topo/v1/api/shape.json +0 -0
  57. package/{demo/3/344/270/232/345/212/241/347/233/221/346/216/247/346/213/223/346/211/221/src/mock → demo-mock/basic}/topo/v1/api/structure/both/1 +0 -0
  58. package/{demo/3/344/270/232/345/212/241/347/233/221/346/216/247/346/213/223/346/211/221/src/mock → demo-mock/basic}/topo/v1/api/structure/both/2 +0 -0
  59. package/{demo/3/344/270/232/345/212/241/347/233/221/346/216/247/346/213/223/346/211/221/src/mock → demo-mock/basic}/topo/v1/api/structure/both/3 +0 -0
  60. package/{demo/3/344/270/232/345/212/241/347/233/221/346/216/247/346/213/223/346/211/221/src/mock → demo-mock/basic}/topo/v1/api/structure/byCondition/2 +0 -0
  61. package/{demo/3/344/270/232/345/212/241/347/233/221/346/216/247/346/213/223/346/211/221/src/mock → demo-mock/basic}/topo/v1/api/structure/relationList +0 -0
  62. package/{demo/2/346/213/223/346/211/221/344/270/255/345/277/203/js/mock → demo-mock/basic}/topo/v1/api/webUrl/list +0 -0
  63. package/{demo/2/346/213/223/346/211/221/344/270/255/345/277/203/js/mock → demo-mock/basic}/topo/v1/api/webUrl/list.json +0 -0
  64. package/es/components/{TopoView/settings/GroupNodeList → ResourceSelect}/SelectResource/index.js +0 -0
  65. package/es/components/{TopoView/settings/GroupNodeList → ResourceSelect}/SelectResource/index.module.scss +0 -0
  66. package/es/components/TopoView/settings/GroupNodeList/ResourceList.js +1 -1
  67. package/es/components/TopoView/settings/LayerSettingsForm.js +4 -1
  68. package/lib/components/{TopoView/settings/GroupNodeList → ResourceSelect}/SelectResource/index.js +0 -0
  69. package/lib/components/{TopoView/settings/GroupNodeList → ResourceSelect}/SelectResource/index.module.scss +0 -0
  70. package/lib/components/TopoView/settings/GroupNodeList/ResourceList.js +1 -1
  71. package/lib/components/TopoView/settings/LayerSettingsForm.js +4 -1
  72. package/package.json +3 -3
  73. package/demo/2/346/213/223/346/211/221/344/270/255/345/277/203/js/request.js +0 -7
  74. package/demo/3/344/270/232/345/212/241/347/233/221/346/216/247/346/213/223/346/211/221/src/AppInstallTopo.jsx +0 -228
  75. package/demo/3/344/270/232/345/212/241/347/233/221/346/216/247/346/213/223/346/211/221/src/CreateTopo.jsx +0 -88
  76. package/demo/3/344/270/232/345/212/241/347/233/221/346/216/247/346/213/223/346/211/221/src/CustomAlarm.jsx +0 -110
  77. package/demo/3/344/270/232/345/212/241/347/233/221/346/216/247/346/213/223/346/211/221/src/CustomAttrAndMetric.jsx +0 -303
  78. package/demo/3/344/270/232/345/212/241/347/233/221/346/216/247/346/213/223/346/211/221/src/CustomNodeIcon.jsx +0 -124
  79. package/demo/3/344/270/232/345/212/241/347/233/221/346/216/247/346/213/223/346/211/221/src/DataStreamTopo.jsx +0 -188
  80. package/demo/3/344/270/232/345/212/241/347/233/221/346/216/247/346/213/223/346/211/221/src/DisableNodeRelateResource.jsx +0 -74
  81. package/demo/3/344/270/232/345/212/241/347/233/221/346/216/247/346/213/223/346/211/221/src/EditorContextMenu.jsx +0 -106
  82. package/demo/3/344/270/232/345/212/241/347/233/221/346/216/247/346/213/223/346/211/221/src/Metric.jsx +0 -106
  83. package/demo/3/344/270/232/345/212/241/347/233/221/346/216/247/346/213/223/346/211/221/src/data/appInstall/data1.json +0 -140
  84. package/demo/3/344/270/232/345/212/241/347/233/221/346/216/247/346/213/223/346/211/221/src/data/appInstall/data2.json +0 -240
  85. package/demo/3/344/270/232/345/212/241/347/233/221/346/216/247/346/213/223/346/211/221/src/data/appInstall/icon.js +0 -6
  86. package/demo/3/344/270/232/345/212/241/347/233/221/346/216/247/346/213/223/346/211/221/src/data/appInstall/index.js +0 -19
  87. package/demo/3/344/270/232/345/212/241/347/233/221/346/216/247/346/213/223/346/211/221/src/data/dataStream/data1.json +0 -145
  88. package/demo/3/344/270/232/345/212/241/347/233/221/346/216/247/346/213/223/346/211/221/src/data/dataStream/data2.json +0 -106
  89. package/demo/3/344/270/232/345/212/241/347/233/221/346/216/247/346/213/223/346/211/221/src/data/dataStream/icon.js +0 -6
  90. package/demo/3/344/270/232/345/212/241/347/233/221/346/216/247/346/213/223/346/211/221/src/data/dataStream/index.js +0 -19
  91. package/demo/3/344/270/232/345/212/241/347/233/221/346/216/247/346/213/223/346/211/221/src/mock/a.js +0 -0
  92. package/demo/3/344/270/232/345/212/241/347/233/221/346/216/247/346/213/223/346/211/221/src/request.js +0 -7
@@ -1,88 +0,0 @@
1
- import React, {useCallback, useEffect, useMemo} from 'react';
2
- import {Button} from '@alifd/next';
3
-
4
- // import {createTopo, Topology, TitleBar, SearchWidget} from '@riil-frontend/component-topology';
5
- import {createTopo, Topology} from '../../../src';
6
-
7
- import request from './request';
8
- import topoData from './data/appInstall/data2';
9
-
10
- function TopoEditorDemo(props) {
11
-
12
- const topo = useMemo(() => {
13
- return createTopo({
14
- request,
15
- enableDefaultAlarmLoader: false,
16
- enableDefaultMetricLoader: false,
17
- icons: [{
18
- id: 'biz.1', // 如果以ciType.开头,节点无图标时默认按ciType匹配
19
- name: '图标1',
20
- url: 'public/icons/c_b_server.svg', // 图片地址
21
- jsonUrl: null, // ht 拓扑使用
22
- }]
23
- });
24
- }, []);
25
-
26
- const Provider = topo.Provider;
27
-
28
- // API:
29
-
30
- // 创建拓扑图进入编辑模式
31
- const createAndEnterEdit = async () => {
32
- // TODO 转换格式
33
- const data = {...topoData};
34
- await topo.load(data, {
35
- mode: 'edit'
36
- });
37
- };
38
-
39
- // 初始化
40
- useEffect(async () => {
41
- await createAndEnterEdit();
42
- return () => {
43
- topo.exit();
44
- }
45
- }, []);
46
-
47
- // 保存
48
- const onSave = useCallback(async (ctx) => {
49
- const {data, saveConfig} = ctx;
50
- const {id, config, global, serialize} = data;
51
- // 保存
52
- await saveConfig();
53
- }, []);
54
-
55
- // 退出编辑模式
56
- const onExitEditMode = useCallback(async () => {
57
- await topo.exitEditMode();
58
- // 重新加载拓扑
59
- const data = {...topoData};
60
- await topo.load(data);
61
- }, []);
62
-
63
- return (
64
- <div style={{width: '100%'}}>
65
- <div style={{display: 'flex', alignItems: 'center', paddingBottom: 16}}>
66
- <div style={{flex: 1}}>
67
- <Button type="primary" onClick={createAndEnterEdit} title="新建并进入编辑模式">新建</Button> &nbsp; &nbsp;
68
- </div>
69
- <Button type="primary" onClick={() => { topo.triggerSaveEvent() }}>保存</Button> &nbsp; &nbsp;
70
- <Button onClick={onExitEditMode}>退出</Button>
71
- </div>
72
-
73
- <div style={{width: '100%', height: '500px', background: 'white'}}>
74
- <Provider>
75
- <Topology
76
- topo={topo}
77
- defaultEnterEditMode
78
- titleBar={false}
79
- onSave={onSave}
80
- />
81
- </Provider>
82
- </div>
83
- </div>
84
- );
85
- }
86
-
87
-
88
- export default TopoEditorDemo;
@@ -1,110 +0,0 @@
1
- import React, {useCallback, useEffect, useMemo} from 'react';
2
- import {Button} from '@alifd/next';
3
-
4
- // import {createTopo, Topology, TitleBar, SearchWidget} from '@riil-frontend/component-topology';
5
- import {createTopo, Topology, ViewerTools} from '../../../src';
6
-
7
- import request from './request';
8
-
9
- const data = {
10
- config: {
11
- id: 2,
12
- name: "自定义告警",
13
- showType: "auto",
14
- layout: "circular",
15
- },
16
- nodes: [
17
- {
18
- id: "1",
19
- name: "111",
20
- ciType: "aaa",
21
- operation: "delete"
22
- },
23
- {
24
- id: "2",
25
- name: "2222",
26
- ciType: "ruijieSwitch",
27
- operation: "delete",
28
- },
29
- ],
30
- };
31
-
32
- function TopoDemo(props) {
33
-
34
- const topo = useMemo(() => {
35
- return createTopo({
36
- request,
37
- enableDefaultAlarmLoader: false,
38
- enableDefaultMetricLoader: false,
39
- });
40
- }, []);
41
-
42
- const Provider = topo.Provider;
43
-
44
- // 初始化
45
- useEffect(async () => {
46
- await topo.load(data);
47
- await topo.loadAlarm([
48
- {
49
- id:'1',
50
- level: 1,
51
- info:'告警信息'
52
- }
53
- ]);
54
- return () => {
55
- topo.exit();
56
- }
57
- }, []);
58
-
59
- const loadAlarms1 = () => {
60
- topo.loadAlarm([
61
- {
62
- id: '1',
63
- level: 1,
64
- info:'告警信息'
65
- },
66
- {
67
- id: '2',
68
- level: 3,
69
- info:'告警信息'
70
- }
71
- ]);
72
- };
73
-
74
- const loadAlarms2 = () => {
75
- topo.loadAlarm([
76
- {
77
- id:'1',
78
- level: 1,
79
- info:'告警信息'
80
- }
81
- ]);
82
- };
83
-
84
- const loadAlarms3 = () => {
85
- topo.loadAlarm([
86
- ]);
87
- };
88
-
89
- return (
90
- <div style={{width: '100%', height: '500px', background: 'white'}}>
91
- <Provider>
92
- <div style={{display: 'flex', alignItems: 'center'}}>
93
- <div style={{flex: 1}}>
94
- <Button onClick={loadAlarms1}>加载告警1</Button>
95
- <Button onClick={loadAlarms2}>加载告警2</Button>
96
- <Button onClick={loadAlarms3}>清空告警</Button>
97
- </div>
98
- <ViewerTools topo={topo} showEditButton={false}/>
99
- </div>
100
- <Topology
101
- topo={topo}
102
- titleBar={false}
103
- />
104
- </Provider>
105
- </div>
106
- );
107
- }
108
-
109
-
110
- export default TopoDemo;
@@ -1,303 +0,0 @@
1
- import React, {useCallback, useEffect, useMemo} from 'react';
2
- import {Button} from '@alifd/next';
3
-
4
- // import {createTopo, Topology, TitleBar, SearchWidget} from '@riil-frontend/component-topology';
5
- import {createTopo, Topology, ViewerTools} from '../../../src';
6
-
7
- import request from './request';
8
-
9
- const data = {
10
- config: {
11
- id: 2,
12
- name: "属性指标",
13
- showType: "auto",
14
- layout: "circular",
15
- },
16
- nodes: [
17
- {
18
- id: "1",
19
- name: "自定义属性指标显示",
20
- ciType: "aaa",
21
- operation: "delete",
22
- attributes: {
23
- ipAddress: "1.1.1.1",
24
- macAddress: "zbdafassa",
25
- },
26
- },
27
- {
28
- id: "2",
29
- name: "2222",
30
- ciType: "ruijieSwitch",
31
- operation: "delete",
32
- },
33
- ],
34
- };
35
-
36
- const attrsAndMetrics = [
37
- {
38
- "id": "1",
39
- "attributes": [
40
- {
41
- "code": "minMacAddress",
42
- "name": "最小MAC地址",
43
- "value": "00-74-9C-8F-F3-7D"
44
- },
45
- {
46
- "code": "serialNum",
47
- "name": "序列号",
48
- "value": "G1MVD9P000289"
49
- },
50
- {
51
- "code": "ipv6Address",
52
- "name": "IPv6地址",
53
- "value": "2001:167::1,fe80::274:9cff:fe8f:f37e"
54
- },
55
- {
56
- "code": "displayName",
57
- "name": "显示名称",
58
- "value": "HuiJu166.2"
59
- },
60
- {
61
- "code": "ipAddress",
62
- "name": "IP地址",
63
- "value": "172.17.164.1"
64
- },
65
- {
66
- "code": "assetState",
67
- "name": "资产状态",
68
- "value": "1"
69
- },
70
- {
71
- "code": "ipAddressList",
72
- "name": "IP地址列表",
73
- "value": "172.17.161.1,172.17.163.1,172.17.164.1,172.17.166.2,172.17.166.9,172.17.166.17,172.17.168.1"
74
- },
75
- {
76
- "code": "macAddress",
77
- "name": "MAC地址",
78
- "value": "00-74-9C-8F-F3-7D"
79
- },
80
- {
81
- "code": "poeSupported",
82
- "name": "支持POE",
83
- "value": true
84
- },
85
- {
86
- "code": "systemOID",
87
- "name": "系统OID",
88
- "value": "1.3.6.1.4.1.4881.1.1.10.1.114"
89
- },
90
- {
91
- "code": "name",
92
- "name": "名称",
93
- "value": "HuiJu166.2"
94
- },
95
- {
96
- "code": "company",
97
- "name": "厂商",
98
- "value": "ruijie"
99
- },
100
- {
101
- "code": "connection",
102
- "name": "连接信息",
103
- "value": {
104
- "SNMP": {
105
- "id": "0000000017696793",
106
- "params": "0b50ad15b5fe195bc40f10667e41c7329eaf59fd3598f7438949e98777d8db532eaeef42be70a4d166ee769d7623ccf1b2b0576ac9b4bada6b769870199a5cbf4345d77995eddd9fc15b5bd02103ae9b"
107
- }
108
- }
109
- },
110
- {
111
- "code": "model",
112
- "name": "型号",
113
- "value": "S5750-48GT/4SFP-P"
114
- },
115
- {
116
- "code": "distanceToOutlet",
117
- "name": "出口距离",
118
- "value": 2147483647
119
- },
120
- {
121
- "code": "maxMacAddress",
122
- "name": "最大MAC地址",
123
- "value": "00-74-9C-8F-F3-7E"
124
- }
125
- ],
126
- "metrics": [
127
- {
128
- "code": "cpuRate",
129
- "name": "CPU利用率",
130
- "value": "12"
131
- },
132
- {
133
- "code": "memRate",
134
- "name": "内存利用率",
135
- "value": "60"
136
- }
137
- ]
138
- },
139
- {
140
- "id": "2",
141
- "attributes": [
142
- {
143
- "code": "minMacAddress",
144
- "name": "最小MAC地址",
145
- "value": "00-74-9C-8F-F3-7D"
146
- },
147
- {
148
- "code": "serialNum",
149
- "name": "序列号",
150
- "value": "G1MVD9P000289"
151
- },
152
- {
153
- "code": "ipv6Address",
154
- "name": "IPv6地址",
155
- "value": "2001:167::1,fe80::274:9cff:fe8f:f37e"
156
- },
157
- {
158
- "code": "displayName",
159
- "name": "显示名称",
160
- "value": "HuiJu166.2"
161
- },
162
- {
163
- "code": "ipAddress",
164
- "name": "IP地址",
165
- "value": "172.17.164.1"
166
- },
167
- {
168
- "code": "assetState",
169
- "name": "资产状态",
170
- "value": "1"
171
- },
172
- {
173
- "code": "ipAddressList",
174
- "name": "IP地址列表",
175
- "value": "172.17.161.1,172.17.163.1,172.17.164.1,172.17.166.2,172.17.166.9,172.17.166.17,172.17.168.1"
176
- },
177
- {
178
- "code": "macAddress",
179
- "name": "MAC地址",
180
- "value": "00-74-9C-8F-F3-7D"
181
- },
182
- {
183
- "code": "poeSupported",
184
- "name": "支持POE",
185
- "value": true
186
- },
187
- {
188
- "code": "systemOID",
189
- "name": "系统OID",
190
- "value": "1.3.6.1.4.1.4881.1.1.10.1.114"
191
- },
192
- {
193
- "code": "name",
194
- "name": "名称",
195
- "value": "HuiJu166.2"
196
- },
197
- {
198
- "code": "company",
199
- "name": "厂商",
200
- "value": "ruijie"
201
- },
202
- {
203
- "code": "connection",
204
- "name": "连接信息",
205
- "value": {
206
- "SNMP": {
207
- "id": "0000000017696793",
208
- "params": "0b50ad15b5fe195bc40f10667e41c7329eaf59fd3598f7438949e98777d8db532eaeef42be70a4d166ee769d7623ccf1b2b0576ac9b4bada6b769870199a5cbf4345d77995eddd9fc15b5bd02103ae9b"
209
- }
210
- }
211
- },
212
- {
213
- "code": "model",
214
- "name": "型号",
215
- "value": "S5750-48GT/4SFP-P"
216
- },
217
- {
218
- "code": "distanceToOutlet",
219
- "name": "出口距离",
220
- "value": 2147483647
221
- },
222
- {
223
- "code": "maxMacAddress",
224
- "name": "最大MAC地址",
225
- "value": "00-74-9C-8F-F3-7E"
226
- }
227
- ],
228
- "metrics": [
229
- {
230
- "code": "cpuRate",
231
- "name": "CPU利用率",
232
- "value": "12"
233
- },
234
- {
235
- "code": "memRate",
236
- "name": "内存利用率",
237
- "value": "60"
238
- }
239
- ]
240
- },
241
- ];
242
-
243
- function TopoDemo(props) {
244
-
245
- const topo = useMemo(() => {
246
- return createTopo({
247
- request,
248
- enableDefaultAlarmLoader: false,
249
- enableDefaultMetricLoader: false,
250
- ciTypes: {
251
- // 配置指定CiType在图上和浮层上显示哪些属性、指标
252
- aaa: {
253
- // 图上显示
254
- tag: [
255
- { code: 'ipAddress', type: 'attribute' },
256
- { code: 'cpuRate', type: 'metric' },
257
- ],
258
- // 浮层显示
259
- tip: [
260
- { code: 'ipAddress', type: 'attribute' },
261
- { code: 'macAddress', type: 'attribute' },
262
- { code: 'cpuRate', type: 'metric' },
263
- ],
264
- },
265
- },
266
- });
267
- }, []);
268
-
269
- const Provider = topo.Provider;
270
-
271
- // 初始化
272
- useEffect(async () => {
273
- await topo.load(data);
274
- await topo.loadAttrsAndMetrics(attrsAndMetrics);
275
- return () => {
276
- topo.exit();
277
- }
278
- }, []);
279
-
280
- const loadMetric = () => {
281
- topo.loadAttrsAndMetrics(attrsAndMetrics);
282
- };
283
-
284
- return (
285
- <div style={{width: '100%', height: '500px', background: 'white'}}>
286
- <Provider>
287
- <div style={{display: 'flex', alignItems: 'center'}}>
288
- <div style={{flex: 1}}>
289
- <Button onClick={loadMetric}>加载指标</Button>
290
- </div>
291
- <ViewerTools topo={topo} showEditButton={false}/>
292
- </div>
293
- <Topology
294
- topo={topo}
295
- titleBar={false}
296
- />
297
- </Provider>
298
- </div>
299
- );
300
- }
301
-
302
-
303
- export default TopoDemo;
@@ -1,124 +0,0 @@
1
- import React, {useCallback, useEffect, useMemo} from 'react';
2
- import {Button} from '@alifd/next';
3
-
4
- // import {createTopo, Topology, TitleBar, SearchWidget} from '@riil-frontend/component-topology';
5
- import {createTopo, Topology} from '../../../src';
6
-
7
- import request from './request';
8
-
9
- const icons = [
10
- {
11
- id: 'ciType.aaa', // 如果以ciType.开头,节点无图标时默认按ciType匹配
12
- name: 'ciType.aaa',
13
- url: '../public/icons/c_b_server.svg', // 图片地址
14
- jsonUrl: null, // ht 拓扑使用
15
- },
16
- {
17
- id: 'biz.xxx',
18
- name: 'biz.xxx',
19
- url: '../public/icons/c_b_firewall.svg', // 图片地址
20
- jsonUrl: null, // ht 拓扑使用
21
- },
22
- {
23
- id: 'biz.yyy',
24
- name: 'biz.yyy',
25
- url: '../public/icons/c_b_hub.svg', // 图片地址
26
- jsonUrl: null, // ht 拓扑使用
27
- }
28
- ];
29
-
30
- const data = {
31
- config: {
32
- id: 2,
33
- name: "自定义图标",
34
- showType: "auto",
35
- layout: "circular",
36
- },
37
- nodes: [
38
- {
39
- id: "1",
40
- name: "自定义citype图标",
41
- ciType: "aaa",
42
- operation: "delete"
43
- },
44
- {
45
- id: "2",
46
- name: "直接指定image",
47
- ciType: "ruijieSwitch",
48
- image: 'biz.xxx',
49
- operation: "delete",
50
- },
51
- {
52
- id: "3",
53
- name: "根据属性匹配默认图标",
54
- ciType: "ruijieSwitch",
55
- operation: "delete",
56
- data: {
57
- a: 1
58
- }
59
- },
60
- {
61
- id: "4",
62
- name: "内置citype图标",
63
- ciType: "ruijieSwitch",
64
- operation: "delete"
65
- },
66
- ],
67
- lines: [
68
- {
69
- id: "r647792732420440064",
70
- ciType: "networkLink",
71
- source: "1",
72
- target: "2",
73
- operation: "delete"
74
- },
75
- ],
76
- };
77
-
78
- function TopoEditorDemo(props) {
79
-
80
- const topo = useMemo(() => {
81
- return createTopo({
82
- request,
83
- enableDefaultAlarmLoader: false,
84
- enableDefaultMetricLoader: false,
85
- // 注册自定义图标
86
- icons,
87
- // 获取默认节点图标,可选参数。如果无返回值则继续使用内部默认
88
- getDefaultNodeIcon: (node) => {
89
- const {ciType, data} = node.getAttrObject();
90
- if (ciType === 'ruijieSwitch' && data?.a === 1) {
91
- return 'biz.yyy'
92
- }
93
- return null
94
- }
95
- });
96
- }, []);
97
-
98
- const Provider = topo.Provider;
99
-
100
- // 初始化
101
- useEffect(async () => {
102
- await topo.load(data, {
103
- mode: 'edit'
104
- });
105
- return () => {
106
- topo.exit();
107
- }
108
- }, []);
109
-
110
- return (
111
- <div style={{width: '100%', height: '500px', background: 'white'}}>
112
- <Provider>
113
- <Topology
114
- topo={topo}
115
- defaultEnterEditMode
116
- titleBar={false}
117
- />
118
- </Provider>
119
- </div>
120
- );
121
- }
122
-
123
-
124
- export default TopoEditorDemo;