@riil-frontend/component-topology 5.0.0-alpha.9 → 5.0.2

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 (195) hide show
  1. package/build/1.js +2 -2
  2. package/build/2.js +1 -1
  3. package/build/index.css +1 -1
  4. package/build/index.js +20 -20
  5. package/es/common/components/ColorPicker/ColorPicker.js +5 -3
  6. package/es/components/BatchAttrMetric/setting.js +3 -5
  7. package/es/components/ResourceSelectDrawer/ResourceSelectDrawer.js +2 -1
  8. package/es/core/components/DisplaySettingDrawer/DisplaySettingDrawer.js +2 -1
  9. package/es/core/components/DisplaySettingDrawer/LinkTip.js +5 -1
  10. package/es/core/components/DisplaySettingDrawer/demo/Demo.js +63 -0
  11. package/es/core/components/ResourceViewAttributeSetting/Setting.js +9 -48
  12. package/es/core/components/TopoView/TopoView.module.scss +1 -1
  13. package/es/core/components/TopoView/topoView.js +31 -22
  14. package/es/core/editor/components/BackgroundView/index.js +74 -35
  15. package/es/core/editor/components/settings/common/LineType/index.js +7 -1
  16. package/es/core/editor/components/settings/common/text/FontStyleCheckbox.js +3 -3
  17. package/es/core/editor/components/settings/common/text/TextStyle.js +21 -6
  18. package/es/core/editor/components/settings/common/text/fontStyleUtil.js +0 -1
  19. package/es/core/editor/components/settings/propertyViews/box/BoxPropertyView.js +12 -1
  20. package/es/core/editor/components/settings/propertyViews/box/NameInput.js +9 -1
  21. package/es/core/editor/components/settings/propertyViews/edge/CommonEdgePropertyView.js +15 -1
  22. package/es/core/editor/components/settings/propertyViews/group/DataTab/GroupNodeList.js +2 -0
  23. package/es/core/editor/components/settings/propertyViews/group/SettingTab/GroupExpandSetting.js +9 -5
  24. package/es/core/editor/components/settings/propertyViews/group/SettingTab/GroupExpandStatus.js +10 -2
  25. package/es/core/editor/components/settings/propertyViews/group/SettingTab/Setting.js +12 -1
  26. package/es/core/editor/components/settings/propertyViews/layer/SettingTab/Setting.js +13 -3
  27. package/es/core/editor/components/settings/propertyViews/layer/SettingTab/Setting_bak.js +0 -1
  28. package/es/core/editor/components/settings/propertyViews/multipleElements/BatchSetNodeIcon.js +2 -0
  29. package/es/core/editor/components/settings/propertyViews/multipleElements/BatchSetNodeSize/BatchSetNodeSize.js +2 -0
  30. package/es/core/editor/components/settings/propertyViews/multipleElements/MultipleElementPropertyView.js +4 -1
  31. package/es/core/editor/components/settings/propertyViews/node/Setting/Setting.js +4 -0
  32. package/es/core/editor/components/settings/propertyViews/node/data/Data.js +34 -6
  33. package/es/core/editor/components/settings/propertyViews/text/TextPropertyView.js +9 -2
  34. package/es/core/editor/components/settings/propertyViews/view/BackgroundSize.js +30 -1
  35. package/es/core/editor/components/settings/propertyViews/view/GlobalLayout.js +2 -0
  36. package/es/core/editor/components/settings/propertyViews/view/GlobalNodeLabelStyle.js +15 -1
  37. package/es/core/editor/components/settings/propertyViews/view/hooks/useBackgroundSizeConfig.js +0 -1
  38. package/es/core/editor/components/titlebar/TopoEditorTitleBar.js +4 -1
  39. package/es/core/editor/components/titlebar/widgets/DebugTools.js +29 -0
  40. package/es/core/hooks/useAlarm.js +18 -0
  41. package/es/core/hooks/useGraphAlarmDisplay.js +25 -3
  42. package/es/core/hooks/useResourceConfig.js +2 -1
  43. package/es/core/hooks/useRouterAdapter.js +7 -1
  44. package/es/core/hooks/useTopoEdit.js +220 -163
  45. package/es/core/models/AttributeMetricDisplay.js +31 -73
  46. package/es/core/models/HistoryManager.js +100 -50
  47. package/es/core/models/TopoApp.js +1 -1
  48. package/es/core/models/cache/CiTypeCache.js +10 -44
  49. package/es/core/models/cache/DictCache.js +2 -1
  50. package/es/core/models/graph/Background.js +31 -14
  51. package/es/core/models/tagstips/ElementTagTipConfig.js +46 -12
  52. package/es/core/models/tagstips/utils.js +1 -1
  53. package/es/core/models/topoData.js +7 -3
  54. package/es/core/models/utils/linkUtils.js +18 -0
  55. package/es/core/store/models/topoAlarm.js +5 -1
  56. package/es/core/store/models/topoMod.js +6 -31
  57. package/es/core/viewer/components/plugins/ResourceDetail/ResourceDetail.js +51 -249
  58. package/es/core/viewer/components/plugins/ResourceDetail/ResourceDetailDrawer.js +218 -0
  59. package/es/core/viewer/components/plugins/ResourceDetail/ResourceDetailPlugin.js +2 -2
  60. package/es/core/viewer/components/plugins/ResourceDetail/components/ClusterMemberTable.js +1 -1
  61. package/es/core/viewer/components/plugins/ResourceDetail/components/ResourceOverview/BaseInfoBlock.js +0 -1
  62. package/es/core/viewer/components/plugins/ResourceDetail/components/ResourceOverview/ResourceOverview.js +79 -43
  63. package/es/core/viewer/components/plugins/ResourceDetail/components/ResourceOverview/ResourceOverviewMetric.js +2 -3
  64. package/es/core/viewer/components/plugins/ResourceDetail/components/ResourceOverview/components/Configurator/index.js +2 -2
  65. package/es/core/viewer/components/plugins/ResourceDetail/components/ResourceOverview/components/LinkTopo/LinkTopo.js +23 -0
  66. package/es/core/viewer/components/plugins/ResourceDetail/components/ResourceOverview/components/LinkTopo/LinkTopo.module.scss +11 -0
  67. package/es/core/viewer/components/plugins/ResourceDetail/components/ResourceOverview/components/LinkTopo/LinkTopoCard.js +34 -0
  68. package/es/core/viewer/components/plugins/ResourceDetail/components/ResourceOverview/components/LinkTopo/constants.js +6 -0
  69. package/es/core/viewer/components/plugins/ResourceDetail/components/ResourceOverview/components/LinkTopo/hooks/useMetricPolling.js +62 -0
  70. package/es/core/viewer/components/plugins/ResourceDetail/components/ResourceOverview/components/LinkTopo/services/index.js +188 -0
  71. package/es/core/viewer/components/titlebar/BasicTools.js +1 -1
  72. package/es/core/viewer/components/titlebar/widgets/NodesDragSwitchWrapper.js +18 -0
  73. package/es/core/viewer/components/titlebar/widgets/SettingButton.js +11 -1
  74. package/es/networkTopo/components/TopoView.js +2 -1
  75. package/es/networkTopo/components/editor/propertyViews/edge/addLinkDrawer/AddLinkDrawer.js +164 -225
  76. package/es/networkTopo/components/editor/propertyViews/edge/addLinkDrawer/components/NetworkLinkForm.js +4 -0
  77. package/es/networkTopo/components/editor/propertyViews/edge/addLinkDrawer/components/editLinkInfo.js +161 -137
  78. package/es/networkTopo/components/editor/propertyViews/edge/addLinkDrawer/hooks/useAddLink.js +104 -0
  79. package/es/networkTopo/components/editor/propertyViews/edge/link/BindExitLinkSelect.js +17 -7
  80. package/es/networkTopo/components/editor/propertyViews/edge/link/LinkInfoPreview.js +8 -9
  81. package/es/networkTopo/components/viewer/displaySetting/LinkAttrCustomSettingDrawer.js +59 -0
  82. package/es/networkTopo/components/viewer/displaySetting/LinkTagV2.js +10 -4
  83. package/es/networkTopo/getTopoData.js +11 -14
  84. package/es/networkTopo/hooks/editor/useDeleteEdges.js +11 -8
  85. package/es/networkTopo/hooks/viewer/useRelateTopo.js +1 -1
  86. package/es/networkTopo/models/LinkDynamicStyleExecutor.js +2 -0
  87. package/es/networkTopo/models/TopoCenter.js +1 -1
  88. package/es/networkTopo/services/index.js +6 -4
  89. package/es/networkTopo/services/link.js +2 -2
  90. package/es/networkTopo/store/topoCenter.js +5 -2
  91. package/es/networkTopo/store/topoTreeMod.js +84 -43
  92. package/es/networkTopo/utils/__tests__/resourcePermissionUtil.test.js +135 -0
  93. package/es/networkTopo/utils/resourcePermissionUtil.js +10 -6
  94. package/es/style.js +2 -1
  95. package/es/utils/ResourceConfigUtil.js +79 -39
  96. package/es/utils/clusterUtil.js +1 -1
  97. package/es/utils/htElementUtils.js +0 -1
  98. package/es/utils/topoData.js +24 -63
  99. package/es/utils/tree.js +1 -3
  100. package/lib/common/components/ColorPicker/ColorPicker.js +6 -3
  101. package/lib/components/BatchAttrMetric/setting.js +3 -6
  102. package/lib/components/ResourceSelectDrawer/ResourceSelectDrawer.js +4 -1
  103. package/lib/core/components/DisplaySettingDrawer/DisplaySettingDrawer.js +4 -1
  104. package/lib/core/components/DisplaySettingDrawer/LinkTip.js +6 -1
  105. package/lib/core/components/DisplaySettingDrawer/demo/Demo.js +71 -0
  106. package/lib/core/components/ResourceViewAttributeSetting/Setting.js +8 -48
  107. package/lib/core/components/TopoView/TopoView.module.scss +1 -1
  108. package/lib/core/components/TopoView/topoView.js +26 -17
  109. package/lib/core/editor/components/BackgroundView/index.js +75 -35
  110. package/lib/core/editor/components/settings/common/LineType/index.js +7 -1
  111. package/lib/core/editor/components/settings/common/text/FontStyleCheckbox.js +5 -4
  112. package/lib/core/editor/components/settings/common/text/TextStyle.js +23 -7
  113. package/lib/core/editor/components/settings/common/text/fontStyleUtil.js +0 -1
  114. package/lib/core/editor/components/settings/propertyViews/box/BoxPropertyView.js +13 -1
  115. package/lib/core/editor/components/settings/propertyViews/box/NameInput.js +9 -1
  116. package/lib/core/editor/components/settings/propertyViews/edge/CommonEdgePropertyView.js +15 -1
  117. package/lib/core/editor/components/settings/propertyViews/group/DataTab/GroupNodeList.js +2 -0
  118. package/lib/core/editor/components/settings/propertyViews/group/SettingTab/GroupExpandSetting.js +9 -5
  119. package/lib/core/editor/components/settings/propertyViews/group/SettingTab/GroupExpandStatus.js +10 -2
  120. package/lib/core/editor/components/settings/propertyViews/group/SettingTab/Setting.js +12 -1
  121. package/lib/core/editor/components/settings/propertyViews/layer/SettingTab/Setting.js +17 -3
  122. package/lib/core/editor/components/settings/propertyViews/layer/SettingTab/Setting_bak.js +0 -1
  123. package/lib/core/editor/components/settings/propertyViews/multipleElements/BatchSetNodeIcon.js +2 -0
  124. package/lib/core/editor/components/settings/propertyViews/multipleElements/BatchSetNodeSize/BatchSetNodeSize.js +2 -0
  125. package/lib/core/editor/components/settings/propertyViews/multipleElements/MultipleElementPropertyView.js +4 -1
  126. package/lib/core/editor/components/settings/propertyViews/node/Setting/Setting.js +4 -0
  127. package/lib/core/editor/components/settings/propertyViews/node/data/Data.js +36 -6
  128. package/lib/core/editor/components/settings/propertyViews/text/TextPropertyView.js +9 -2
  129. package/lib/core/editor/components/settings/propertyViews/view/BackgroundSize.js +32 -1
  130. package/lib/core/editor/components/settings/propertyViews/view/GlobalLayout.js +2 -0
  131. package/lib/core/editor/components/settings/propertyViews/view/GlobalNodeLabelStyle.js +15 -1
  132. package/lib/core/editor/components/settings/propertyViews/view/hooks/useBackgroundSizeConfig.js +0 -1
  133. package/lib/core/editor/components/titlebar/TopoEditorTitleBar.js +5 -1
  134. package/lib/core/editor/components/titlebar/widgets/DebugTools.js +38 -0
  135. package/lib/core/hooks/useAlarm.js +19 -0
  136. package/lib/core/hooks/useGraphAlarmDisplay.js +27 -3
  137. package/lib/core/hooks/useResourceConfig.js +2 -1
  138. package/lib/core/hooks/useRouterAdapter.js +8 -1
  139. package/lib/core/hooks/useTopoEdit.js +219 -162
  140. package/lib/core/models/AttributeMetricDisplay.js +31 -73
  141. package/lib/core/models/HistoryManager.js +105 -51
  142. package/lib/core/models/TopoApp.js +1 -1
  143. package/lib/core/models/cache/CiTypeCache.js +12 -44
  144. package/lib/core/models/cache/DictCache.js +4 -1
  145. package/lib/core/models/graph/Background.js +36 -16
  146. package/lib/core/models/tagstips/ElementTagTipConfig.js +49 -12
  147. package/lib/core/models/tagstips/utils.js +1 -1
  148. package/lib/core/models/topoData.js +7 -3
  149. package/lib/core/models/utils/linkUtils.js +22 -0
  150. package/lib/core/store/models/topoAlarm.js +5 -1
  151. package/lib/core/store/models/topoMod.js +7 -32
  152. package/lib/core/viewer/components/plugins/ResourceDetail/ResourceDetail.js +51 -261
  153. package/lib/core/viewer/components/plugins/ResourceDetail/ResourceDetailDrawer.js +245 -0
  154. package/lib/core/viewer/components/plugins/ResourceDetail/ResourceDetailPlugin.js +2 -2
  155. package/lib/core/viewer/components/plugins/ResourceDetail/components/ClusterMemberTable.js +1 -1
  156. package/lib/core/viewer/components/plugins/ResourceDetail/components/ResourceOverview/BaseInfoBlock.js +0 -1
  157. package/lib/core/viewer/components/plugins/ResourceDetail/components/ResourceOverview/ResourceOverview.js +79 -42
  158. package/lib/core/viewer/components/plugins/ResourceDetail/components/ResourceOverview/ResourceOverviewMetric.js +2 -3
  159. package/lib/core/viewer/components/plugins/ResourceDetail/components/ResourceOverview/components/Configurator/index.js +2 -2
  160. package/lib/core/viewer/components/plugins/ResourceDetail/components/ResourceOverview/components/LinkTopo/LinkTopo.js +36 -0
  161. package/lib/core/viewer/components/plugins/ResourceDetail/components/ResourceOverview/components/LinkTopo/LinkTopo.module.scss +11 -0
  162. package/lib/core/viewer/components/plugins/ResourceDetail/components/ResourceOverview/components/LinkTopo/LinkTopoCard.js +45 -0
  163. package/lib/core/viewer/components/plugins/ResourceDetail/components/ResourceOverview/components/LinkTopo/constants.js +11 -0
  164. package/lib/core/viewer/components/plugins/ResourceDetail/components/ResourceOverview/components/LinkTopo/hooks/useMetricPolling.js +77 -0
  165. package/lib/core/viewer/components/plugins/ResourceDetail/components/ResourceOverview/components/LinkTopo/services/index.js +214 -0
  166. package/lib/core/viewer/components/titlebar/BasicTools.js +2 -2
  167. package/lib/core/viewer/components/titlebar/widgets/NodesDragSwitchWrapper.js +28 -0
  168. package/lib/core/viewer/components/titlebar/widgets/SettingButton.js +10 -0
  169. package/lib/networkTopo/components/TopoView.js +3 -2
  170. package/lib/networkTopo/components/editor/propertyViews/edge/addLinkDrawer/AddLinkDrawer.js +160 -223
  171. package/lib/networkTopo/components/editor/propertyViews/edge/addLinkDrawer/components/NetworkLinkForm.js +12 -0
  172. package/lib/networkTopo/components/editor/propertyViews/edge/addLinkDrawer/components/editLinkInfo.js +161 -137
  173. package/lib/networkTopo/components/editor/propertyViews/edge/addLinkDrawer/hooks/useAddLink.js +120 -0
  174. package/lib/networkTopo/components/editor/propertyViews/edge/link/BindExitLinkSelect.js +19 -7
  175. package/lib/networkTopo/components/editor/propertyViews/edge/link/LinkInfoPreview.js +8 -9
  176. package/lib/networkTopo/components/viewer/displaySetting/LinkAttrCustomSettingDrawer.js +76 -0
  177. package/lib/networkTopo/components/viewer/displaySetting/LinkTagV2.js +10 -4
  178. package/lib/networkTopo/getTopoData.js +10 -13
  179. package/lib/networkTopo/hooks/editor/useDeleteEdges.js +11 -8
  180. package/lib/networkTopo/hooks/viewer/useRelateTopo.js +2 -1
  181. package/lib/networkTopo/models/LinkDynamicStyleExecutor.js +2 -0
  182. package/lib/networkTopo/models/TopoCenter.js +2 -2
  183. package/lib/networkTopo/services/index.js +6 -4
  184. package/lib/networkTopo/services/link.js +2 -2
  185. package/lib/networkTopo/store/topoCenter.js +5 -2
  186. package/lib/networkTopo/store/topoTreeMod.js +84 -43
  187. package/lib/networkTopo/utils/__tests__/resourcePermissionUtil.test.js +137 -0
  188. package/lib/networkTopo/utils/resourcePermissionUtil.js +11 -6
  189. package/lib/style.js +2 -1
  190. package/lib/utils/ResourceConfigUtil.js +78 -37
  191. package/lib/utils/clusterUtil.js +1 -1
  192. package/lib/utils/htElementUtils.js +0 -1
  193. package/lib/utils/topoData.js +25 -64
  194. package/lib/utils/tree.js +1 -3
  195. package/package.json +3 -2
@@ -0,0 +1,135 @@
1
+ import { getLinkPermission } from "../resourcePermissionUtil";
2
+
3
+ function test(data) {
4
+ var message = data.message,
5
+ expected = data.expected,
6
+ link = data.link,
7
+ source = data.source,
8
+ target = data.target;
9
+ var result = getLinkPermission(link, source, target);
10
+
11
+ if (JSON.stringify(result) !== JSON.stringify(expected)) {
12
+ console.error(message, '失败', {
13
+ result: result,
14
+ expected: expected,
15
+ data: {
16
+ link: link,
17
+ source: source,
18
+ target: target
19
+ }
20
+ });
21
+ } else {
22
+ console.debug(message, '通过');
23
+ }
24
+ }
25
+
26
+ var exitLink = {
27
+ attributes: {
28
+ 'network_link.is_crucial': false
29
+ }
30
+ };
31
+ var commonLink = {
32
+ attributes: {
33
+ 'network_link.is_crucial': false,
34
+ 'network_link.destination_device_id': 'xxx'
35
+ }
36
+ };
37
+ var data = [{
38
+ message: '[链路权限]出口链路源设备有write权限',
39
+ link: exitLink,
40
+ source: {
41
+ operation: 'write'
42
+ },
43
+ target: null,
44
+ expected: {
45
+ readable: true,
46
+ writeable: true,
47
+ deleteable: true
48
+ }
49
+ }, {
50
+ message: '[链路权限]出口链路源设备无权限',
51
+ link: exitLink,
52
+ source: {
53
+ operation: null
54
+ },
55
+ target: null,
56
+ expected: {
57
+ readable: false,
58
+ writeable: false,
59
+ deleteable: false
60
+ }
61
+ }, {
62
+ message: '[链路权限]普通链路源设备无权限',
63
+ link: commonLink,
64
+ source: {
65
+ operation: null
66
+ },
67
+ target: {
68
+ operation: null
69
+ },
70
+ expected: {
71
+ readable: false,
72
+ writeable: false,
73
+ deleteable: false
74
+ }
75
+ }, {
76
+ message: '[链路权限]普通链路源设备一端write权限',
77
+ link: commonLink,
78
+ source: {
79
+ operation: 'write'
80
+ },
81
+ target: {
82
+ operation: null
83
+ },
84
+ expected: {
85
+ readable: true,
86
+ writeable: false,
87
+ deleteable: true
88
+ }
89
+ }, {
90
+ message: '[链路权限]普通链路源设备一端delete权限',
91
+ link: commonLink,
92
+ source: {
93
+ operation: 'delete'
94
+ },
95
+ target: {
96
+ operation: null
97
+ },
98
+ expected: {
99
+ readable: true,
100
+ writeable: false,
101
+ deleteable: true
102
+ }
103
+ }, {
104
+ message: '[链路权限]普通链路源设备2端write权限',
105
+ link: commonLink,
106
+ source: {
107
+ operation: 'write'
108
+ },
109
+ target: {
110
+ operation: 'write'
111
+ },
112
+ expected: {
113
+ readable: true,
114
+ writeable: true,
115
+ deleteable: true
116
+ }
117
+ }, {
118
+ message: '[链路权限]关键链路权限',
119
+ link: {
120
+ attributes: {
121
+ 'network_link.is_crucial': true
122
+ },
123
+ operation: 'write'
124
+ },
125
+ source: {},
126
+ target: {},
127
+ expected: {
128
+ readable: true,
129
+ writeable: true,
130
+ deleteable: false
131
+ }
132
+ }];
133
+ data.forEach(function (item) {
134
+ test(item);
135
+ });
@@ -1,4 +1,5 @@
1
1
  import _extends from "@babel/runtime/helpers/extends";
2
+ import { isCrucialLink } from "../../core/models/utils/linkUtils";
2
3
  export function getNodePermission(node) {
3
4
  return parseBasicPermission(node === null || node === void 0 ? void 0 : node.operation);
4
5
  }
@@ -19,22 +20,25 @@ export function parseBasicPermission(operation) {
19
20
  */
20
21
 
21
22
  export function getLinkPermission(link, source, target) {
22
- var linkType = link.attributes['network_link.connect_type']; // 出口链路使用权限中心配置
23
-
24
- if (linkType === 'exit') {
23
+ // 关键链路使用权限中心配置
24
+ if (isCrucialLink(link)) {
25
25
  return parseBasicPermission(link === null || link === void 0 ? void 0 : link.operation);
26
26
  }
27
27
 
28
+ var deviceNodes = target ? [source, target] : [source];
29
+
28
30
  var isWriteable = function isWriteable() {
29
- return [source, target].filter(function (node) {
31
+ return deviceNodes.filter(function (node) {
30
32
  return ['write', 'delete'].indexOf(node === null || node === void 0 ? void 0 : node.operation) !== -1;
31
- }).length === 2;
33
+ }).length === deviceNodes.length;
32
34
  };
33
35
 
34
36
  return {
35
37
  readable: !!(source !== null && source !== void 0 && source.operation) || !!(target !== null && target !== void 0 && target.operation),
38
+ // 一端设备有权限可查看
36
39
  writeable: isWriteable(),
37
- deleteable: [source, target].filter(function (node) {
40
+ // 两端设备都有编辑权限可编辑(出口链路仅验证一端)
41
+ deleteable: deviceNodes.filter(function (node) {
38
42
  return ['write', 'delete'].includes(node === null || node === void 0 ? void 0 : node.operation);
39
43
  }).length >= 1
40
44
  };
package/es/style.js CHANGED
@@ -1,6 +1,7 @@
1
1
  import '@riil-frontend/component-topology-graph/es/style';
2
2
  import '@alifd/next/es/message/style';
3
3
  import '@alifd/next/es/dialog/style';
4
+ import '@riil-frontend/component-topology-utils/es/style';
4
5
  import '@riil-frontend/utils/es/style';
5
6
  import '@alifd/next/es/upload/style';
6
7
  import '@alifd/next/es/icon/style';
@@ -11,7 +12,6 @@ import '@alifd/next/es/form/style';
11
12
  import '@alifd/next/es/loading/style';
12
13
  import '@alifd/next/es/drawer/style';
13
14
  import '@alifd/next/es/button/style';
14
- import '@riil-frontend/component-topology-utils/es/style';
15
15
  import '@riil-frontend/component-common-res-list/es/style';
16
16
  import '@riil-frontend/component-no-data-page/es/style';
17
17
  import '@alifd/next/es/tab/style';
@@ -24,6 +24,7 @@ import '@alifd/next/es/divider/style';
24
24
 
25
25
  import '@alifd/next/es/overlay/style';
26
26
  import '@alifd/next/es/checkbox/style';
27
+ import '@riil-frontend/component-crucial-link-topo/es/style';
27
28
  import '@alifd/next/es/box/style';
28
29
  import '@alifd/next/es/list/style';
29
30
  import '@alifd/next/es/card/style';
@@ -1,5 +1,6 @@
1
- import rlog from "@riil-frontend/component-topology-utils/es/rlog";
2
- import sortBy from "lodash/sortBy";
1
+ import rlog from '@riil-frontend/component-topology-utils/es/rlog';
2
+ import sortBy from 'lodash/sortBy';
3
+ import { isExitLink } from "../core/models/utils/linkUtils";
3
4
  import { isClusterHtElement } from "./clusterUtil";
4
5
  import { getGroupChildrenResourceElements, getLayerChildrenResourceElements } from "./htElementDataUtil";
5
6
  import { getEdges, getGroups, getLayers, getNodes } from "./htElementUtils";
@@ -14,34 +15,19 @@ function getResourceConfigFromHt(topo) {
14
15
  var htTopo = topo.getHtTopo();
15
16
  var dataModel = topo.getDataModel(); // 获得分层
16
17
 
17
- var layerElements = getLayers(dataModel);
18
- var layers = layerElements.map(function (layerElement) {
19
- return {
20
- id: layerElement.getTag(),
21
- tag: layerElement.a("tag"),
22
- name: layerElement.s("label"),
23
- order: layerElement.a("order"),
24
- resources: {
25
- "static": getLayerChildrenResourceElements(layerElement).map(function (node) {
26
- return node.getTag();
27
- })
28
- }
29
- };
30
- }); // 获得容器
18
+ var layers = getLayerDatas(dataModel); // 获得容器
31
19
 
32
20
  var groupElements = getGroups(dataModel); // 获得视图上的区域配置
33
21
 
34
- var groups = groupElements.filter(function (node) {
35
- return !node.getParent();
36
- }).filter(function (groupElement) {
37
- return !isClusterHtElement(groupElement);
38
- }).map(getGroupConfigByElement);
39
- groups = sortBy([].concat(layers, groups), "order"); // 获得视图上的资源列表
22
+ var groups = getGroupDatas({
23
+ groupElements: groupElements,
24
+ layers: layers
25
+ }); // 获得视图上的资源列表
40
26
 
41
27
  var viewNodes = getNodes(dataModel).filter(function (node) {
42
28
  return !node.getParent();
43
29
  }).filter(function (node) {
44
- return node.a("type") === "node";
30
+ return node.a('type') === 'node';
45
31
  }).filter(function (node) {
46
32
  return !!node.getTag();
47
33
  });
@@ -52,14 +38,43 @@ function getResourceConfigFromHt(topo) {
52
38
  "static": [].concat(viewNodes, viewClusters).map(function (node) {
53
39
  return node.getTag();
54
40
  })
55
- }; // console.error('getResourceConfigFromHt', {
56
- // viewNodes,
57
- // });
58
- // 查询出口链路列表
41
+ };
42
+ return {
43
+ layers: sortBy(layers, 'order'),
44
+ groups: groups,
45
+ resources: resources,
46
+ exportLinkIdList: getExportLinkIdList({
47
+ topo: topo,
48
+ htTopo: htTopo,
49
+ dataModel: dataModel
50
+ }),
51
+ // 出口链路id列表
52
+ relateTopoIdList: getRelateTopoIdList(dataModel)
53
+ };
54
+ } // 查询关联拓扑id列表
55
+
56
+
57
+ function getRelateTopoIdList(dataModel) {
58
+ return getNodes(dataModel).reduce(function (topoIds, node) {
59
+ var bindType = node.a('bindType');
60
+ var bindTopo = node.a('bindTopo');
61
+
62
+ if (bindType === 'topo' && bindTopo && !topoIds.includes(bindTopo)) {
63
+ return [].concat(topoIds, [bindTopo]);
64
+ }
65
+
66
+ return topoIds;
67
+ }, []);
68
+ } // 查询出口链路列表
59
69
 
70
+
71
+ function getExportLinkIdList(_ref) {
72
+ var topo = _ref.topo,
73
+ htTopo = _ref.htTopo,
74
+ dataModel = _ref.dataModel;
60
75
  var exportLinkIdList = [];
61
76
  var edges = getEdges(dataModel);
62
- rlog.debug(" 查询出口链路列表-edges", edges, dataModel);
77
+ rlog.debug(' 查询出口链路列表-edges', edges, dataModel);
63
78
  edges.forEach(function (edge) {
64
79
  var edgeData = htTopo.getEdgeData(edge); // 有组无子连线返回null
65
80
 
@@ -69,29 +84,54 @@ function getResourceConfigFromHt(topo) {
69
84
 
70
85
  if (id) {
71
86
  var linkData = topo.dataModel.getDataById(id);
72
- var connectType = linkData !== null && linkData !== void 0 && linkData.attributes ? linkData === null || linkData === void 0 ? void 0 : linkData.attributes["network_link.connect_type"] : undefined;
73
87
 
74
- if (connectType === "exit" && !exportLinkIdList.includes(id)) {
88
+ if (isExitLink(linkData) && !exportLinkIdList.includes(id)) {
75
89
  exportLinkIdList.push(id);
76
90
  }
77
91
  }
78
92
  }
79
93
  });
80
- return {
81
- layers: sortBy(layers, "order"),
82
- groups: groups,
83
- resources: resources,
84
- exportLinkIdList: exportLinkIdList // 出口链路id列表
94
+ return exportLinkIdList;
95
+ }
85
96
 
86
- };
97
+ function getLayerDatas(dataModel) {
98
+ // 获得分层
99
+ var layerElements = getLayers(dataModel);
100
+ var layers = layerElements.map(function (layerElement) {
101
+ return {
102
+ id: layerElement.getTag(),
103
+ tag: layerElement.a('tag'),
104
+ name: layerElement.s('label'),
105
+ order: layerElement.a('order'),
106
+ resources: {
107
+ "static": getLayerChildrenResourceElements(layerElement).map(function (node) {
108
+ return node.getTag();
109
+ })
110
+ }
111
+ };
112
+ });
113
+ return layers;
114
+ }
115
+
116
+ function getGroupDatas(_ref2) {
117
+ var groupElements = _ref2.groupElements,
118
+ layers = _ref2.layers;
119
+ // 获得视图上的区域配置
120
+ var groups = groupElements.filter(function (node) {
121
+ return !node.getParent();
122
+ }).filter(function (groupElement) {
123
+ return !isClusterHtElement(groupElement);
124
+ }).map(getGroupConfigByElement);
125
+ groups = sortBy([].concat(layers, groups), 'order');
126
+ return groups;
87
127
  }
88
128
 
89
129
  function getGroupConfigByElement(groupElement) {
90
130
  return {
91
131
  id: groupElement.getTag(),
92
- tag: groupElement.a("tag"),
93
- name: groupElement.a("name"),
94
- order: groupElement.a("order"),
132
+ tag: groupElement.a('tag'),
133
+ name: groupElement.a('name'),
134
+ order: groupElement.a('order'),
95
135
  resources: {
96
136
  "static": getGroupChildrenResourceElements(groupElement).filter(function (node) {
97
137
  return !!node.getTag();
@@ -116,7 +116,7 @@ export function upgradeV103GraphClusterNode(topo, topoData) {
116
116
  return;
117
117
  }
118
118
 
119
- rlog.error('集群1.0.2升级', unExistedList);
119
+ rlog.info('集群1.0.2升级', unExistedList);
120
120
  var groups = unExistedList.filter(function (item) {
121
121
  return item.type === 'group';
122
122
  });
@@ -343,6 +343,5 @@ export function isExistedElement(htTopo, dataModel, data) {
343
343
  }
344
344
  }
345
345
 
346
- console.error(111, data);
347
346
  return false;
348
347
  }
@@ -138,20 +138,25 @@ export function getCiTypes(topoData) {
138
138
  var allCi = [].concat(topoData.nodes, topoData.links, topoData.linkGroups);
139
139
  return getCiTypesFromCiElements(allCi);
140
140
  }
141
- export function getAlarmSwitch(topoData) {
142
- var _topoData$global;
143
-
144
- var alarmSwitch = true;
141
+ /**
142
+ * 获得监控模板code列表
143
+ * @param {*} cis
144
+ * @returns
145
+ */
145
146
 
146
- if (topoData !== null && topoData !== void 0 && topoData.global) {
147
- alarmSwitch = topoData.global.alarmSwitch;
148
- }
147
+ export function getMonitorTemplateCodes(cis) {
148
+ var codes = [];
149
+ cis.forEach(function (element) {
150
+ var _element$attributes;
149
151
 
150
- if (topoData !== null && topoData !== void 0 && (_topoData$global = topoData.global) !== null && _topoData$global !== void 0 && _topoData$global.topoDisplayConfig) {
151
- alarmSwitch = topoData.global.topoDisplayConfig.alarmSwitch;
152
- }
152
+ // eslint-disable-next-line camelcase
153
+ var code = (_element$attributes = element.attributes) === null || _element$attributes === void 0 ? void 0 : _element$attributes.support_templates;
153
154
 
154
- return alarmSwitch;
155
+ if (code && codes.indexOf(code) < 0) {
156
+ codes.push(code);
157
+ }
158
+ });
159
+ return codes;
155
160
  }
156
161
  /**
157
162
  * 过滤ci元数据中的属性和指标,用于属性和指标显示设置
@@ -470,21 +475,13 @@ export function getCiModSet(params) {
470
475
  globalConfig = params.globalConfig; // 当前拓扑资源字典
471
476
 
472
477
  var ciDoc = {};
473
- var ciTypesDoc = {}; //
474
-
475
- var bindingCiSet = {};
478
+ var ciTypesDoc = {};
476
479
  var allCiModSet = getNodeModSet();
477
- var allLinkModSet = getLinkModSet();
478
480
 
479
481
  function getNodeModSet() {
480
482
  var ciTypes = getCiTypesFromCiElements(data.nodes);
481
483
  return getModSet(ciTypes);
482
484
  }
483
-
484
- function getLinkModSet() {
485
- var ciTypes = getCiTypesFromCiElements([].concat(data.links, data.linkGroups));
486
- return getModSet(ciTypes);
487
- }
488
485
  /**
489
486
  *
490
487
  * @param {array} ciTypeCodes
@@ -498,43 +495,12 @@ export function getCiModSet(params) {
498
495
  return ciTypeCodes.includes(item);
499
496
  }).forEach(function (key) {
500
497
  var ciTypeObj = ciTypeMap[key];
501
-
502
- if (key === "network_link") {
503
- var linkKeyArr = [{
504
- code: "phy",
505
- key: "phy",
506
- name: "物理链路"
507
- }, {
508
- code: "agg",
509
- key: "agg",
510
- name: "聚合链路"
511
- }, {
512
- code: "exit",
513
- key: "exit",
514
- name: "出口链路"
515
- }];
516
- linkKeyArr.map(function (link, index) {
517
- ciTypeObj = engine.ciTyeCache.getNetworkLinkCiType(link.key);
518
-
519
- if (ciTypeObj) {
520
- modSet[link.code] = {
521
- name: link.name,
522
- code: link.code,
523
- icon: ciTypeObj.icon,
524
- list: ciModfilter(ciTypeObj, globalConfig, "link", link.code)
525
- };
526
- }
527
-
528
- return link.code;
529
- });
530
- } else {
531
- modSet[key] = {
532
- name: ciTypeObj.displayName,
533
- code: ciTypeObj.code,
534
- icon: ciTypeObj.icon,
535
- list: ciModfilter(ciTypeObj, globalConfig, "node", ciTypeObj.code)
536
- };
537
- }
498
+ modSet[key] = {
499
+ name: ciTypeObj.displayName,
500
+ code: ciTypeObj.code,
501
+ icon: ciTypeObj.icon,
502
+ list: ciModfilter(ciTypeObj, globalConfig, "node", ciTypeObj.code)
503
+ };
538
504
  });
539
505
  console.log("modSet--------------------", modSet);
540
506
  return modSet;
@@ -549,7 +515,6 @@ export function getCiModSet(params) {
549
515
  tag: [],
550
516
  tip: []
551
517
  };
552
- bindingCiSet[ciType] = bindingCiSet[ciType] || {};
553
518
  ciTypesDoc[ciType] = ciTypesDoc[ciType] || [];
554
519
  ciTypesDoc[element.ciType].push({
555
520
  ciId: element.id
@@ -562,11 +527,7 @@ export function getCiModSet(params) {
562
527
  // ci信息集合
563
528
  ciTypesDoc: ciTypesDoc,
564
529
  // 每种ci含有的ci
565
- bindingCiSet: bindingCiSet,
566
- // 可能没用了
567
- allCiModSet: allCiModSet,
568
- // 资源类型含有属性和指标集合
569
- allLinkModSet: allLinkModSet // 链路类型含有属性和指标集合
530
+ allCiModSet: allCiModSet // 资源类型含有属性和指标集合
570
531
 
571
532
  };
572
533
  }
package/es/utils/tree.js CHANGED
@@ -40,9 +40,7 @@ export function formatTree(json, funcPermissions) {
40
40
  type: type,
41
41
  name: name,
42
42
  showDefault: showDefault,
43
- // permission: node.operation,
44
- // FIXME 拓扑数据权限临时方案,待移除
45
- permission: funcPermissions.createTopo ? 'delete' : 'read',
43
+ permission: node.operation,
46
44
  children: node !== null && node !== void 0 && node.children ? loop(node.children) : []
47
45
  };
48
46
  });
@@ -7,6 +7,8 @@ exports["default"] = void 0;
7
7
 
8
8
  var _balloon = _interopRequireDefault(require("@alifd/next/lib/balloon"));
9
9
 
10
+ var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
11
+
10
12
  var _inheritsLoose2 = _interopRequireDefault(require("@babel/runtime/helpers/inheritsLoose"));
11
13
 
12
14
  var _react = _interopRequireWildcard(require("react"));
@@ -53,7 +55,8 @@ var ColorPicker = /*#__PURE__*/function (_Component) {
53
55
  _proto.render = function render() {
54
56
  var _this$props2 = this.props,
55
57
  value = _this$props2.value,
56
- align = _this$props2.align;
58
+ align = _this$props2.align,
59
+ balloonProps = _this$props2.balloonProps;
57
60
 
58
61
  var defaultTrigger = /*#__PURE__*/_react["default"].createElement("div", {
59
62
  className: _ColorPickerModule["default"].swatch,
@@ -64,7 +67,7 @@ var ColorPicker = /*#__PURE__*/function (_Component) {
64
67
 
65
68
  return /*#__PURE__*/_react["default"].createElement("div", {
66
69
  className: "topo-color-picker"
67
- }, /*#__PURE__*/_react["default"].createElement(_balloon["default"], {
70
+ }, /*#__PURE__*/_react["default"].createElement(_balloon["default"], (0, _extends2["default"])({
68
71
  trigger: defaultTrigger,
69
72
  closable: false,
70
73
  triggerType: "click",
@@ -75,7 +78,7 @@ var ColorPicker = /*#__PURE__*/function (_Component) {
75
78
  style: {
76
79
  paddingBottom: 0
77
80
  }
78
- }, /*#__PURE__*/_react["default"].createElement(_reactColor.SketchPicker, {
81
+ }, balloonProps), /*#__PURE__*/_react["default"].createElement(_reactColor.SketchPicker, {
79
82
  color: value // width={230}
80
83
  ,
81
84
  disableAlpha: true,
@@ -35,7 +35,7 @@ var utils = _interopRequireWildcard(require("./utils"));
35
35
 
36
36
  var _indexModule = _interopRequireDefault(require("./index.module.scss"));
37
37
 
38
- var _excluded = ["defaultSet", "showType"];
38
+ var _excluded = ["defaultSet", "allCiSet", "showType"];
39
39
 
40
40
  function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
41
41
 
@@ -43,6 +43,7 @@ function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj &&
43
43
 
44
44
  var Setting = function Setting(_ref) {
45
45
  var defaultSet = _ref.defaultSet,
46
+ allCiSet = _ref.allCiSet,
46
47
  showType = _ref.showType,
47
48
  props = (0, _objectWithoutPropertiesLoose2["default"])(_ref, _excluded);
48
49
  // const allCiSet = utils.dsTransform(props.allCiSet);
@@ -56,12 +57,8 @@ var Setting = function Setting(_ref) {
56
57
  topoDispatchers = _topo$store$useModel[1];
57
58
 
58
59
  var resAndMetrics = topoState.resAndMetrics;
59
- var allCiModSet = resAndMetrics.allCiModSet,
60
- allLinkModSet = resAndMetrics.allLinkModSet;
61
60
 
62
- _rlog["default"].debug("Setting-resAndMetrics-allCiSet-elementType", showType, props, resAndMetrics, elementType);
63
-
64
- var allCiSet = elementType === "node" ? allCiModSet : allLinkModSet;
61
+ _rlog["default"].debug("Setting-resAndMetrics-allCiSet-elementType", showType, props, elementType);
65
62
 
66
63
  _rlog["default"].debug("Setting----allCiSet", allCiSet);
67
64
 
@@ -13,6 +13,8 @@ var _react = _interopRequireWildcard(require("react"));
13
13
 
14
14
  var _propTypes = _interopRequireDefault(require("prop-types"));
15
15
 
16
+ var _rlog = _interopRequireDefault(require("@riil-frontend/component-topology-utils/lib/rlog"));
17
+
16
18
  var _Drawer = _interopRequireDefault(require("../Drawer"));
17
19
 
18
20
  var _ResourceSelectList = _interopRequireDefault(require("./ResourceSelectList"));
@@ -81,7 +83,8 @@ function ResourceSelectDrawer(props) {
81
83
  _context.prev = 9;
82
84
  _context.t0 = _context["catch"](1);
83
85
  setLoading(false);
84
- console.error('ResourceSelectDrawer.handleOk', _context.t0);
86
+
87
+ _rlog["default"].error('ResourceSelectDrawer.handleOk', _context.t0);
85
88
 
86
89
  case 13:
87
90
  case "end":
@@ -15,6 +15,8 @@ var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends")
15
15
 
16
16
  var _react = _interopRequireWildcard(require("react"));
17
17
 
18
+ var _rlog = _interopRequireDefault(require("@riil-frontend/component-topology-utils/lib/rlog"));
19
+
18
20
  var _Drawer = _interopRequireDefault(require("../../../components/Drawer"));
19
21
 
20
22
  var _DisplaySetting = _interopRequireDefault(require("./DisplaySetting"));
@@ -64,7 +66,8 @@ function DisplaySettingDrawer(props) {
64
66
  _context.prev = 9;
65
67
  _context.t0 = _context["catch"](1);
66
68
  setLoading(false);
67
- console.error('DisplaySettingDrawer.handleOk', _context.t0);
69
+
70
+ _rlog["default"].error('DisplaySettingDrawer.handleOk', _context.t0);
68
71
 
69
72
  _message["default"].warn('保存失败');
70
73
 
@@ -11,6 +11,8 @@ var _react = _interopRequireDefault(require("react"));
11
11
 
12
12
  var _ResourceInfoDisplay = require("../../../constants/ResourceInfoDisplay");
13
13
 
14
+ var _LinkAttrCustomSettingDrawer = _interopRequireDefault(require("../../../networkTopo/components/viewer/displaySetting/LinkAttrCustomSettingDrawer"));
15
+
14
16
  var _BasicConfig = _interopRequireDefault(require("./ResourceDisplay/BasicConfig"));
15
17
 
16
18
  // 源端口、目的端口、总流量、带宽利用率
@@ -41,7 +43,10 @@ function LinkTip(props, ref) {
41
43
  elementType: "link",
42
44
  showType: "tip",
43
45
  commonOptions: CommonOptions,
44
- defaultCommonConfig: _ResourceInfoDisplay.DEFAULT_TIP_COMMON_CONFIG
46
+ defaultCommonConfig: _ResourceInfoDisplay.DEFAULT_TIP_COMMON_CONFIG,
47
+ customSettingDrawer: function customSettingDrawer(params) {
48
+ return /*#__PURE__*/_react["default"].createElement(_LinkAttrCustomSettingDrawer["default"], params);
49
+ }
45
50
  }));
46
51
  }
47
52