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

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 (135) hide show
  1. package/CHANGELOG.md +5 -0
  2. package/build/1.js +2 -2
  3. package/build/2.js +1 -1
  4. package/build/index.css +1 -1
  5. package/build/index.js +37 -37
  6. package/demo/1/345/237/272/346/234/254/usage.md +4 -0
  7. package/demo/1/345/237/272/346/234/254//345/221/212/350/255/246/346/216/250/351/200/201.md +1 -1
  8. 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
  9. 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
  10. package/demo/2/347/274/226/350/276/221/346/250/241/345/274/217//345/210/206/345/261/202/346/267/273/345/212/240/350/265/204/346/272/220.md +11 -0
  11. package/demo/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 +11 -0
  12. 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
  13. 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
  14. 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
  15. package/demo/2/347/274/226/350/276/221/346/250/241/345/274/217//350/207/252/345/256/232/344/271/211/345/210/206/345/261/202/346/267/273/345/212/240/350/265/204/346/272/220.md +11 -0
  16. package/demo/{2 → 3}/346/213/223/346/211/221/344/270/255/345/277/203/js/TopoFull.jsx +1 -2
  17. package/demo/{2 → 3}/346/213/223/346/211/221/344/270/255/345/277/203/js/TopoViewer.jsx +0 -0
  18. 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
  19. 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
  20. 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
  21. package/demo/3/{344/270/232/345/212/241/347/233/221/346/216/247/346/213/223/346/211/221/src/mock/topo/v1/api/alarm.json → 346/213/223/346/211/221/344/270/255/345/277/203/js/mock/topo/v1/api/alarm} +0 -0
  22. package/demo/3/346/213/223/346/211/221/344/270/255/345/277/203/js/mock/topo/v1/api/alarm.json +0 -0
  23. 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
  24. 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
  25. 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
  26. 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
  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/auth/permission/2 +0 -0
  28. 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
  29. 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
  30. 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
  31. 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
  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/shape.json +0 -0
  33. 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
  34. 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
  35. 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
  36. 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
  37. 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
  38. 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
  39. package/demo/3/346/213/223/346/211/221/344/270/255/345/277/203/js/request.js +7 -0
  40. 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
  41. 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
  42. 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
  43. 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
  44. 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
  45. 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
  46. package/demo/API/API.md +32 -13
  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}/cmdb/v1/api/authority/ci/commonQuery +0 -0
  48. 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
  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}/model/v1/api/modelTree +0 -0
  50. 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
  51. 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
  52. 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
  53. 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
  54. 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
  55. 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
  56. 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
  57. 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
  58. 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 → demo-mock/basic/topo/v1/api/config} +0 -0
  59. 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
  60. 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
  61. 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
  62. 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
  63. package/{demo/3/344/270/232/345/212/241/347/233/221/346/216/247/346/213/223/346/211/221/src/mock/topo/v1/api/alarm → demo-mock/basic/topo/v1/api/structure/1} +0 -0
  64. 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
  65. 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
  66. 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
  67. 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
  68. 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
  69. 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
  70. 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
  71. package/es/common/components/ResourceTable/ResourceTable.js +31 -0
  72. package/es/common/components/ResourceTable/ResourceTable.module.scss +9 -0
  73. package/es/components/ResourceList/ResourceSelect.js +200 -0
  74. package/es/components/ResourceList/ResourceSelectConnect.js +29 -0
  75. package/es/components/ResourceList/index.js +2 -203
  76. package/es/components/ResourceSelect/DefaultResourceSelectDrawer.js +5 -0
  77. package/es/components/{TopoView/settings/GroupNodeList/SelectResource → ResourceSelect/ResourceSelect}/index.js +0 -0
  78. package/es/components/{TopoView/settings/GroupNodeList/SelectResource → ResourceSelect/ResourceSelect}/index.module.scss +0 -0
  79. package/es/components/ResourceSelect/ResourceSelectDrawer.js +51 -0
  80. package/es/components/TopoView/settings/GroupNodeList/ResourceList.js +0 -23
  81. package/es/components/TopoView/settings/GroupNodeList/ResourceSelectButton.js +37 -0
  82. package/es/components/TopoView/settings/LayerSettingsForm.js +11 -5
  83. package/es/components/TopoView/settings/Settings.js +13 -5
  84. package/es/components/TopoView/topoView.js +2 -1
  85. package/es/core/models/TopoApp.js +193 -98
  86. package/es/core/models/TopoGraphView.js +12 -7
  87. package/es/core/models/cache/CiTyeCache.js +6 -4
  88. package/es/models/topoBizMod.js +6 -2
  89. package/es/models/topoMod.js +27 -13
  90. package/es/style.js +0 -2
  91. package/es/utils/htElementUtils.js +18 -1
  92. package/es/utils/topoData.js +2 -0
  93. package/lib/common/components/ResourceTable/ResourceTable.js +48 -0
  94. package/lib/common/components/ResourceTable/ResourceTable.module.scss +9 -0
  95. package/lib/components/ResourceList/ResourceSelect.js +228 -0
  96. package/lib/components/ResourceList/ResourceSelectConnect.js +47 -0
  97. package/lib/components/ResourceList/index.js +2 -222
  98. package/lib/components/ResourceSelect/DefaultResourceSelectDrawer.js +16 -0
  99. package/lib/components/{TopoView/settings/GroupNodeList/SelectResource → ResourceSelect/ResourceSelect}/index.js +0 -0
  100. package/lib/components/{TopoView/settings/GroupNodeList/SelectResource → ResourceSelect/ResourceSelect}/index.module.scss +0 -0
  101. package/lib/components/ResourceSelect/ResourceSelectDrawer.js +68 -0
  102. package/lib/components/TopoView/settings/GroupNodeList/ResourceList.js +0 -25
  103. package/lib/components/TopoView/settings/GroupNodeList/ResourceSelectButton.js +52 -0
  104. package/lib/components/TopoView/settings/LayerSettingsForm.js +12 -8
  105. package/lib/components/TopoView/settings/Settings.js +13 -5
  106. package/lib/components/TopoView/topoView.js +2 -1
  107. package/lib/core/models/TopoApp.js +192 -97
  108. package/lib/core/models/TopoGraphView.js +12 -7
  109. package/lib/core/models/cache/CiTyeCache.js +6 -4
  110. package/lib/models/topoBizMod.js +6 -2
  111. package/lib/models/topoMod.js +27 -13
  112. package/lib/style.js +0 -2
  113. package/lib/utils/htElementUtils.js +20 -1
  114. package/lib/utils/topoData.js +2 -0
  115. package/package.json +3 -3
  116. package/demo/1/345/237/272/346/234/254//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 +0 -11
  117. package/demo/2/346/213/223/346/211/221/344/270/255/345/277/203/js/request.js +0 -7
  118. 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
  119. 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
  120. 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
  121. 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
  122. 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
  123. 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
  124. 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
  125. 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
  126. 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
  127. 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
  128. 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
  129. 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
  130. 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
  131. 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
  132. 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
  133. 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
  134. 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
  135. 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,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;
@@ -1,188 +0,0 @@
1
- import React, {useState, useEffect, useRef, useCallback, useMemo} from 'react';
2
- import {Radio, Loading, Button} from '@alifd/next';
3
-
4
- // import {createTopo, Topology, TitleBar, SearchWidget} from '@riil-frontend/component-topology';
5
- import {createTopo, Topology, TitleBar, SearchWidget, ViewerTools} from '../../../src';
6
-
7
- import request from './request';
8
- import data1 from './data/dataStream/data1';
9
- import createTopoData from './data/dataStream/data2';
10
-
11
- function TopoDemo(props) {
12
- const [loading, setLoading] = useState(false);
13
-
14
- const topo = useMemo(() => {
15
- return createTopo({
16
- request,
17
- enableDefaultAlarmLoader: false,
18
- enableDefaultMetricLoader: false,
19
- // 编辑模式配置
20
- editor: {
21
- enableRelateResource: false, // 禁用左侧资源链路页签、禁用手工添加的节点关联资源
22
- // 右键菜单
23
- contextMenu: {
24
- node: {
25
- enable: true,
26
- items: [
27
- {
28
- label: '新建服务',
29
- id: 'editor.Biz.XXX', // 加前缀避免冲突
30
- icon: '/img/topo/contextmenu/Topology_resources_menu_icon_overview.svg', // 可选参数
31
- visible: (data) => {
32
- return true;
33
- },
34
- onClick: (data) => {
35
- console.error('点击了右键菜单', data)
36
- }
37
- },
38
- ]
39
- },
40
- }
41
- }
42
- });
43
- }, []);
44
-
45
- const Provider = topo.Provider;
46
-
47
- // API:
48
-
49
- // 加载拓扑图数据
50
- const loadTopo = async () => {
51
- setLoading(true);
52
- await topo.load(data1);
53
- setLoading(false)
54
- };
55
-
56
- // 初始化
57
- useEffect(async () => {
58
- await loadTopo();
59
- return () => {
60
- topo.exit();
61
- }
62
- }, []);
63
-
64
- // 创建拓扑图进入编辑模式
65
- const createAndEnterEdit = async () => {
66
- setLoading(true);
67
- // TODO 转换格式
68
- await topo.load(createTopoData, {
69
- mode: 'edit'
70
- });
71
- setLoading(false)
72
- };
73
-
74
- // 进入编辑模式
75
- const enterEditMode = useCallback(async () => {
76
- setLoading(true);
77
- await topo.enterEditMode();
78
- setLoading(false)
79
- }, []);
80
-
81
- // 退出编辑模式
82
- const onExitEditMode = useCallback(async () => {
83
- setLoading(true);
84
-
85
- await topo.exitEditMode();
86
- // 重新加载拓扑
87
- await loadTopo();
88
-
89
- setLoading(false)
90
- }, []);
91
-
92
- // 触发保存事件
93
- const onTriggerSaveEvent = useCallback(async () => {
94
- await topo.triggerSaveEvent()
95
- }, []);
96
-
97
- // 保存
98
- const onSave = useCallback(async (ctx) => {
99
- setLoading(true);
100
-
101
- const {saveConfig} = ctx;
102
- // 保存节点位置、样式、配置
103
- await saveConfig();
104
-
105
- // 获取拓扑图 业务节点和连线、自定义节点和连线
106
- const data = topo.getData();
107
- console.error('获取拓扑图数据', data);
108
- // TODO 保存业务信息,
109
-
110
- setLoading(false)
111
- }, []);
112
-
113
- // 更新数据
114
- const updateData1 = useCallback(async () => {
115
- await topo.updateData({
116
- nodes: [
117
- {
118
- "id": "000000004e2f8f55",
119
- "name": "HuiJu166.2_20002-----------11",
120
- "ciType": "ruijieSwitch",
121
- "operation": "delete"
122
- },
123
- {
124
- "id": "222",
125
- "name": "222222222222",
126
- "ciType": "ruijieSwitch",
127
- "operation": "delete"
128
- },
129
- ],
130
- lines: [
131
- {
132
- "id": "r647792732420440064",
133
- "ciType": "networkLink",
134
- "source": "000000004e2f8f55",
135
- "target": "2",
136
- "operation": "delete"
137
- },
138
- ]
139
- })
140
- }, []);
141
-
142
- const renderViewerTitleBar = () => {
143
- return (
144
- <div style={{display: 'flex', alignItems: 'center'}}>
145
- <div style={{flex: 1}}>
146
- 此处是标题 &nbsp; &nbsp;
147
- <Button type="primary" onClick={createAndEnterEdit} title="新建并进入编辑模式">新建</Button>
148
- </div>
149
- <ViewerTools topo={topo} onEnterEdit={enterEditMode}/>
150
- </div>
151
- )
152
- };
153
-
154
- const renderEditorTitleBar = () => {
155
- return (
156
- <div style={{display: 'flex', alignItems: 'center'}}>
157
- <div style={{flex: 1}}>标题</div>
158
- <Button onClick={updateData1}>更新数据</Button> &nbsp; &nbsp;
159
- <Button type="primary" onClick={onTriggerSaveEvent}>保存</Button> &nbsp; &nbsp;
160
- <Button onClick={onExitEditMode}>退出</Button>
161
- </div>
162
- )
163
- };
164
-
165
- return (
166
- <Loading visible={loading} style={{width: '100%'}}>
167
- <Provider>
168
- <TitleBar
169
- topo={topo}
170
- render={({isEditMode}) => isEditMode ? renderEditorTitleBar() : renderViewerTitleBar()}
171
- />
172
- <br/>
173
-
174
- <div style={{width: '100%', height: '500px', background: 'white'}}>
175
- <Topology
176
- topo={topo}
177
- titleBar={false}
178
- onRefresh={() => {loadTopo()}}
179
- onSave={onSave}
180
- />
181
- </div>
182
- </Provider>
183
- </Loading>
184
- );
185
- }
186
-
187
-
188
- export default TopoDemo;
@@ -1,74 +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 data = {
10
- config: {
11
- id: 2,
12
- name: "demo",
13
- showType: "auto",
14
- layout: "circular",
15
- },
16
- nodes: [
17
- {
18
- id: "1",
19
- name: "禁用关联资源",
20
- ciType: "ruijieSwitch",
21
- operation: "delete",
22
- data: {
23
- relateResource: false // 禁用节点关联资源,默认true
24
- }
25
- },
26
- {
27
- id: "2",
28
- name: "未禁用",
29
- ciType: "ruijieSwitch",
30
- operation: "delete",
31
- },
32
- ],
33
- };
34
-
35
- function TopoEditorDemo(props) {
36
-
37
- const topo = useMemo(() => {
38
- return createTopo({
39
- request,
40
- enableDefaultAlarmLoader: false,
41
- enableDefaultMetricLoader: false,
42
- editor: {
43
- enableRelateResource: false, // 禁用左侧资源链路页签、禁用手工添加的节点关联资源
44
- }
45
- });
46
- }, []);
47
-
48
- const Provider = topo.Provider;
49
-
50
- // 初始化
51
- useEffect(async () => {
52
- await topo.load(data, {
53
- mode: 'edit'
54
- });
55
- return () => {
56
- topo.exit();
57
- }
58
- }, []);
59
-
60
- return (
61
- <div style={{width: '100%', height: '500px', background: 'white'}}>
62
- <Provider>
63
- <Topology
64
- topo={topo}
65
- defaultEnterEditMode
66
- titleBar={false}
67
- />
68
- </Provider>
69
- </div>
70
- );
71
- }
72
-
73
-
74
- export default TopoEditorDemo;