@riil-frontend/component-topology 4.0.0-beta.9 → 4.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 (177) 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 +32 -32
  5. package/es/components/BatchAttrMetric/setting.js +47 -7
  6. package/es/components/Drawer/Drawer.js +60 -0
  7. package/es/components/Drawer/index.js +1 -59
  8. package/es/constants/ResourceInfoDisplay.js +1 -4
  9. package/es/core/components/AlarmListPanel/components/AlarmListItem.js +31 -1
  10. package/es/core/components/AlarmListPanel/hooks/useAlarmList.js +34 -0
  11. package/es/core/components/AlarmListPanel/index.js +27 -24
  12. package/es/core/components/AlarmListPanel/index.module.scss +46 -16
  13. package/es/core/components/DisplaySettingDrawer/EdgeFlow.js +4 -6
  14. package/es/core/components/DisplaySettingDrawer/EdgeFlowDirection.js +4 -6
  15. package/es/core/components/DisplaySettingDrawer/NodeTag.js +3 -5
  16. package/es/core/components/DisplaySettingDrawer/NodeTip.js +4 -5
  17. package/es/core/components/DisplaySettingDrawer/ResourceDisplay/BasicConfig.js +3 -1
  18. package/es/core/components/DisplaySettingDrawer/tagtip/CustomSettingDrawer/CustomSetting.js +25 -0
  19. package/es/core/components/DisplaySettingDrawer/tagtip/CustomSettingDrawer/CustomSettingDrawer.js +8 -0
  20. package/es/core/components/TopoView/topoView.js +25 -1
  21. package/es/core/editor/components/settings/propertyViews/group/DataTab/GroupNodeList.js +4 -2
  22. package/es/core/editor/components/settings/propertyViews/group/DataTab/RelateData.js +0 -7
  23. package/es/core/editor/components/settings/propertyViews/group/DataTab/hoooks/useGroupRelateResource.js +13 -12
  24. package/es/core/editor/components/settings/propertyViews/group/GroupPropertyView.js +4 -1
  25. package/es/core/editor/components/settings/propertyViews/group/{DataTab/ClusterGroupRelateData → cluster}/ClusterGroupRelateData.js +22 -9
  26. package/es/core/editor/components/settings/propertyViews/layer/DataTab/NodeList.js +2 -5
  27. package/es/core/editor/components/settings/propertyViews/multipleElements/BatchSetNodeIcon.js +21 -0
  28. package/es/core/editor/components/settings/propertyViews/multipleElements/MultipleElementPropertyView.js +5 -0
  29. package/es/core/editor/components/settings/propertyViews/node/NodePropertyView.js +3 -1
  30. package/es/core/editor/components/settings/propertyViews/node/Setting/NameInput.js +36 -0
  31. package/es/core/editor/components/settings/propertyViews/node/Setting/Setting.js +2 -2
  32. package/es/core/editor/components/settings/propertyViews/node/data/Data.js +3 -5
  33. package/es/core/editor/components/settings/propertyViews/node/data/NodeRelateResourceButton.js +4 -2
  34. package/es/core/hooks/ht/useHtDataPropertyChangeListener.js +28 -0
  35. package/es/core/models/AttributeMetricDisplay.js +28 -10
  36. package/es/core/models/TopoApp.js +12 -7
  37. package/es/core/models/TopoGraphView.js +3 -1
  38. package/es/core/models/attributeFormatter/index.js +2 -26
  39. package/es/core/models/cache/{CiTyeCache.js → CiTypeCache.js} +3 -1
  40. package/es/core/models/tagstips/ElementTagTipConfig.js +132 -0
  41. package/es/core/models/tagstips/utils.js +44 -0
  42. package/es/core/models/utils/linkUtils.js +3 -1
  43. package/es/core/services/topo.js +30 -0
  44. package/es/core/utils/edgeUtil.js +8 -0
  45. package/es/core/utils/graphLinkUtil.js +22 -0
  46. package/es/core/viewer/components/plugins/ResourceDetail/ResourceDetail.js +1 -1
  47. package/es/core/viewer/components/plugins/ResourceDetail/components/ClusterMemberTable.js +24 -2
  48. package/es/core/viewer/components/plugins/ResourceDetail/components/ClusterMemberTable.module.scss +1 -1
  49. package/es/core/viewer/components/plugins/ResourceDetail/components/ResourceOverview/BaseInfo.js +7 -101
  50. package/es/core/viewer/components/plugins/ResourceDetail/components/ResourceOverview/BaseInfoBlock.js +13 -3
  51. package/es/core/viewer/components/plugins/ResourceDetail/components/ResourceOverview/ResourceOverview.js +166 -89
  52. package/es/core/viewer/components/plugins/ResourceDetail/components/ResourceOverview/ResourceOverviewMetric.js +7 -14
  53. package/es/core/viewer/components/plugins/ResourceDetail/components/ResourceOverview/components/Configurator/index.js +38 -13
  54. package/es/core/viewer/components/titlebar/BasicTools.js +5 -2
  55. package/es/core/viewer/components/titlebar/widgets/NodesDragSwitch.js +4 -2
  56. package/es/hooks/useAlarm.js +59 -0
  57. package/es/hooks/useEventData.js +20 -0
  58. package/es/hooks/useGraphAlarmDisplay.js +68 -18
  59. package/es/hooks/useManageStatus.js +0 -34
  60. package/es/hooks/useResourceConfig.js +6 -13
  61. package/es/hooks/useSelection.js +2 -4
  62. package/es/hooks/useTopoEdit.js +90 -37
  63. package/es/models/topoAlarm.js +8 -9
  64. package/es/models/topoMod.js +16 -8
  65. package/es/style.js +1 -0
  66. package/es/topoCenter/components/TopoView.js +6 -1
  67. package/es/topoCenter/components/Topology.js +7 -1
  68. package/es/topoCenter/components/editor/propertyViews/LayerRelatedResourceList.js +2 -2
  69. package/es/topoCenter/components/editor/propertyViews/edge/addLinkDrawer/AddLinkDrawer.js +35 -15
  70. package/es/topoCenter/components/editor/propertyViews/edge/addLinkDrawer/components/editLinkInfo.js +11 -2
  71. package/es/topoCenter/components/viewer/displaySetting/LinkTagCommonRidioGroup.js +24 -0
  72. package/es/topoCenter/components/viewer/displaySetting/LinkTagCommonRidioGroup.module.scss +23 -0
  73. package/es/topoCenter/components/viewer/displaySetting/LinkTagV2.js +87 -0
  74. package/es/topoCenter/getTopoData.js +18 -6
  75. package/es/topoCenter/hooks/editor/useGroupSortResources.js +16 -0
  76. package/es/topoCenter/hooks/useEdgeExpand.js +25 -0
  77. package/es/topoCenter/hooks/useLinkDynamicStyle.js +1 -1
  78. package/es/topoCenter/hooks/useTopoEdit.js +3 -0
  79. package/es/topoCenter/models/LinkDynamicStyleExecutor.js +38 -10
  80. package/es/topoCenter/models/TopoCenter.js +3 -11
  81. package/es/topoCenter/store/functionAuth.js +2 -0
  82. package/es/topoCenter/utils/SortResourcesUtil.js +3 -3
  83. package/es/topoCenter/utils/exportData.js +13 -7
  84. package/es/topoCenter/utils/linkUtil.js +8 -0
  85. package/es/utils/ResourceConfigUtil.js +4 -5
  86. package/es/utils/clusterUtil.js +27 -2
  87. package/es/utils/htElementDataUtil.js +22 -1
  88. package/es/utils/htElementUtils.js +22 -9
  89. package/es/utils/showGraphManageStatusUtil.js +67 -0
  90. package/es/utils/topoData.js +57 -32
  91. package/lib/components/BatchAttrMetric/setting.js +47 -6
  92. package/lib/components/Drawer/Drawer.js +73 -0
  93. package/lib/components/Drawer/index.js +2 -64
  94. package/lib/constants/ResourceInfoDisplay.js +1 -4
  95. package/lib/core/components/AlarmListPanel/components/AlarmListItem.js +31 -1
  96. package/lib/core/components/AlarmListPanel/hooks/useAlarmList.js +40 -0
  97. package/lib/core/components/AlarmListPanel/index.js +30 -24
  98. package/lib/core/components/AlarmListPanel/index.module.scss +46 -16
  99. package/lib/core/components/DisplaySettingDrawer/EdgeFlow.js +4 -6
  100. package/lib/core/components/DisplaySettingDrawer/EdgeFlowDirection.js +4 -6
  101. package/lib/core/components/DisplaySettingDrawer/NodeTag.js +3 -6
  102. package/lib/core/components/DisplaySettingDrawer/NodeTip.js +4 -6
  103. package/lib/core/components/DisplaySettingDrawer/ResourceDisplay/BasicConfig.js +3 -1
  104. package/lib/core/components/DisplaySettingDrawer/tagtip/CustomSettingDrawer/CustomSetting.js +39 -0
  105. package/lib/core/components/DisplaySettingDrawer/tagtip/CustomSettingDrawer/CustomSettingDrawer.js +17 -0
  106. package/lib/core/components/TopoView/topoView.js +28 -1
  107. package/lib/core/editor/components/settings/propertyViews/group/DataTab/GroupNodeList.js +4 -2
  108. package/lib/core/editor/components/settings/propertyViews/group/DataTab/RelateData.js +0 -8
  109. package/lib/core/editor/components/settings/propertyViews/group/DataTab/hoooks/useGroupRelateResource.js +13 -13
  110. package/lib/core/editor/components/settings/propertyViews/group/GroupPropertyView.js +5 -1
  111. package/lib/core/editor/components/settings/propertyViews/group/{DataTab/ClusterGroupRelateData → cluster}/ClusterGroupRelateData.js +23 -9
  112. package/lib/core/editor/components/settings/propertyViews/layer/DataTab/NodeList.js +2 -5
  113. package/lib/core/editor/components/settings/propertyViews/multipleElements/BatchSetNodeIcon.js +31 -0
  114. package/lib/core/editor/components/settings/propertyViews/multipleElements/MultipleElementPropertyView.js +6 -0
  115. package/lib/core/editor/components/settings/propertyViews/node/NodePropertyView.js +3 -1
  116. package/lib/core/editor/components/settings/propertyViews/node/Setting/NameInput.js +52 -0
  117. package/lib/core/editor/components/settings/propertyViews/node/Setting/Setting.js +3 -3
  118. package/lib/core/editor/components/settings/propertyViews/node/data/Data.js +3 -5
  119. package/lib/core/editor/components/settings/propertyViews/node/data/NodeRelateResourceButton.js +5 -2
  120. package/lib/core/hooks/ht/useHtDataPropertyChangeListener.js +37 -0
  121. package/lib/core/models/AttributeMetricDisplay.js +28 -10
  122. package/lib/core/models/TopoApp.js +10 -5
  123. package/lib/core/models/TopoGraphView.js +3 -1
  124. package/lib/core/models/attributeFormatter/index.js +2 -26
  125. package/lib/core/models/cache/{CiTyeCache.js → CiTypeCache.js} +3 -1
  126. package/lib/core/models/tagstips/ElementTagTipConfig.js +142 -0
  127. package/lib/core/models/tagstips/utils.js +59 -0
  128. package/lib/core/models/utils/linkUtils.js +3 -1
  129. package/lib/core/services/topo.js +40 -0
  130. package/lib/core/utils/edgeUtil.js +12 -0
  131. package/lib/core/utils/graphLinkUtil.js +27 -0
  132. package/lib/core/viewer/components/plugins/ResourceDetail/ResourceDetail.js +1 -1
  133. package/lib/core/viewer/components/plugins/ResourceDetail/components/ClusterMemberTable.js +25 -2
  134. package/lib/core/viewer/components/plugins/ResourceDetail/components/ClusterMemberTable.module.scss +1 -1
  135. package/lib/core/viewer/components/plugins/ResourceDetail/components/ResourceOverview/BaseInfo.js +7 -101
  136. package/lib/core/viewer/components/plugins/ResourceDetail/components/ResourceOverview/BaseInfoBlock.js +13 -3
  137. package/lib/core/viewer/components/plugins/ResourceDetail/components/ResourceOverview/ResourceOverview.js +166 -89
  138. package/lib/core/viewer/components/plugins/ResourceDetail/components/ResourceOverview/ResourceOverviewMetric.js +7 -14
  139. package/lib/core/viewer/components/plugins/ResourceDetail/components/ResourceOverview/components/Configurator/index.js +38 -13
  140. package/lib/core/viewer/components/titlebar/BasicTools.js +6 -2
  141. package/lib/core/viewer/components/titlebar/widgets/NodesDragSwitch.js +4 -2
  142. package/lib/hooks/useAlarm.js +61 -0
  143. package/lib/hooks/useEventData.js +28 -0
  144. package/lib/hooks/useGraphAlarmDisplay.js +69 -18
  145. package/lib/hooks/useManageStatus.js +0 -34
  146. package/lib/hooks/useResourceConfig.js +6 -12
  147. package/lib/hooks/useSelection.js +1 -5
  148. package/lib/hooks/useTopoEdit.js +94 -36
  149. package/lib/models/topoAlarm.js +8 -9
  150. package/lib/models/topoMod.js +15 -8
  151. package/lib/style.js +1 -0
  152. package/lib/topoCenter/components/TopoView.js +8 -1
  153. package/lib/topoCenter/components/Topology.js +8 -1
  154. package/lib/topoCenter/components/editor/propertyViews/LayerRelatedResourceList.js +1 -1
  155. package/lib/topoCenter/components/editor/propertyViews/edge/addLinkDrawer/AddLinkDrawer.js +35 -14
  156. package/lib/topoCenter/components/editor/propertyViews/edge/addLinkDrawer/components/editLinkInfo.js +11 -2
  157. package/lib/topoCenter/components/viewer/displaySetting/LinkTagCommonRidioGroup.js +35 -0
  158. package/lib/topoCenter/components/viewer/displaySetting/LinkTagCommonRidioGroup.module.scss +23 -0
  159. package/lib/topoCenter/components/viewer/displaySetting/LinkTagV2.js +102 -0
  160. package/lib/topoCenter/getTopoData.js +19 -6
  161. package/lib/topoCenter/hooks/editor/useGroupSortResources.js +21 -0
  162. package/lib/topoCenter/hooks/useEdgeExpand.js +33 -0
  163. package/lib/topoCenter/hooks/useLinkDynamicStyle.js +1 -1
  164. package/lib/topoCenter/hooks/useTopoEdit.js +3 -0
  165. package/lib/topoCenter/models/LinkDynamicStyleExecutor.js +38 -9
  166. package/lib/topoCenter/models/TopoCenter.js +3 -12
  167. package/lib/topoCenter/store/functionAuth.js +2 -0
  168. package/lib/topoCenter/utils/SortResourcesUtil.js +3 -3
  169. package/lib/topoCenter/utils/exportData.js +14 -7
  170. package/lib/topoCenter/utils/linkUtil.js +15 -0
  171. package/lib/utils/ResourceConfigUtil.js +4 -4
  172. package/lib/utils/clusterUtil.js +34 -2
  173. package/lib/utils/htElementDataUtil.js +38 -1
  174. package/lib/utils/htElementUtils.js +24 -9
  175. package/lib/utils/showGraphManageStatusUtil.js +78 -0
  176. package/lib/utils/topoData.js +59 -32
  177. package/package.json +5 -5
@@ -13,8 +13,6 @@ var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends")
13
13
 
14
14
  var _topo = _interopRequireDefault(require("@riil-frontend/component-topology-common/es/services/topo"));
15
15
 
16
- var _model = require("@riil-frontend/component-topology-common/es/services/model");
17
-
18
16
  var _moment = _interopRequireDefault(require("moment"));
19
17
 
20
18
  var _rlog = _interopRequireDefault(require("@riil-frontend/component-topology-utils/es/rlog"));
@@ -33,6 +31,8 @@ function _default(topoApp) {
33
31
  viewState: "view",
34
32
  // view, create, 2种模式
35
33
  graphLoaded: false,
34
+ graphLoaded2: false,
35
+ // 支持编辑模式完全load完
36
36
  // 额外参数
37
37
  urlParams: {},
38
38
  topoLoadError: false,
@@ -98,6 +98,7 @@ function _default(topoApp) {
98
98
  } : null,
99
99
  topoId: id,
100
100
  graphLoaded: false,
101
+ graphLoaded2: false,
101
102
  urlParams: urlParams
102
103
  });
103
104
 
@@ -138,7 +139,8 @@ function _default(topoApp) {
138
139
  },
139
140
  reset: function reset() {
140
141
  this.update({
141
- graphLoaded: false
142
+ graphLoaded: false,
143
+ graphLoaded2: false
142
144
  });
143
145
  topoApp.close();
144
146
  },
@@ -169,6 +171,7 @@ function _default(topoApp) {
169
171
  currentTopo: playload,
170
172
  topoId: topoId,
171
173
  graphLoaded: false,
174
+ graphLoaded2: false,
172
175
  topoPermission: undefined
173
176
  });
174
177
 
@@ -206,6 +209,7 @@ function _default(topoApp) {
206
209
  clearData: function clearData() {
207
210
  this.update({
208
211
  graphLoaded: false,
212
+ graphLoaded2: false,
209
213
  topoId: "",
210
214
  topoData: null,
211
215
  currentTopo: undefined,
@@ -317,7 +321,7 @@ function _default(topoApp) {
317
321
  return (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee6() {
318
322
  var _result$config;
319
323
 
320
- var startTime, topoId, data, linkToData, refresh, clear, linkTo, startState, permission, result, topoConfig, _yield$Promise$all, ciTypeMap, customIcons, extraConfig, _combTopoData, topoData, resAndMetrics, endTime;
324
+ var startTime, topoId, data, linkToData, refresh, clear, linkTo, startState, permission, result, topoConfig, _yield$Promise$all, ciTypeMap, customIcons, xxx, extraConfig, _combTopoData, topoData, resAndMetrics, endTime;
321
325
 
322
326
  return _regenerator["default"].wrap(function _callee6$(_context6) {
323
327
  while (1) {
@@ -334,6 +338,7 @@ function _default(topoApp) {
334
338
  startState = {
335
339
  loading: true,
336
340
  graphLoaded: false,
341
+ graphLoaded2: false,
337
342
  topoLoadError: false,
338
343
  linkTo: linkTo
339
344
  };
@@ -444,20 +449,22 @@ function _default(topoApp) {
444
449
  _rlog["default"].debug("topoMod.initTopoData 查询数据完成", topoId, linkTo, result);
445
450
 
446
451
  _context6.next = 41;
447
- return Promise.all([topoApp.ciTyeCache.getCiTypeMap((0, _topoData.getCiTypes)(result)), dispatch.customIcon.loadCustomIcons()]);
452
+ return Promise.all([topoApp.ciTyeCache.getCiTypeMap((0, _topoData.getCiTypes)(result)), dispatch.customIcon.loadCustomIcons() // topoApp.elementTagTipConfig.init(result), // 暂停新配置开发
453
+ ]);
448
454
 
449
455
  case 41:
450
456
  _yield$Promise$all = _context6.sent;
451
457
  ciTypeMap = _yield$Promise$all[0];
452
458
  customIcons = _yield$Promise$all[1];
459
+ xxx = _yield$Promise$all[2];
453
460
 
454
461
  _rlog["default"].debug("topoMod.initTopoData Ci属性指标元数据", ciTypeMap);
455
462
 
456
463
  extraConfig = result.global.extraConfig;
457
- _context6.next = 48;
464
+ _context6.next = 49;
458
465
  return dispatch.displayConfig.setConfig(extraConfig);
459
466
 
460
- case 48:
467
+ case 49:
461
468
  _combTopoData = (0, _topoData.combTopoData)({
462
469
  engine: topoApp,
463
470
  data: result,
@@ -488,7 +495,7 @@ function _default(topoApp) {
488
495
 
489
496
  topoApp.options.onLoad();
490
497
 
491
- case 57:
498
+ case 58:
492
499
  case "end":
493
500
  return _context6.stop();
494
501
  }
package/lib/style.js CHANGED
@@ -26,6 +26,7 @@ require('@alifd/next/lib/overlay/style');
26
26
  require('@alifd/next/lib/checkbox/style');
27
27
  require('@alifd/next/lib/box/style');
28
28
  require('@alifd/next/lib/list/style');
29
+ require('@alifd/next/lib/card/style');
29
30
  require('@alifd/next/lib/radio/style');
30
31
  require('@alifd/next/lib/grid/style');
31
32
  require('@riil-frontend/component-action-tree/lib/style');
@@ -41,6 +41,10 @@ var _ViewerTools = _interopRequireDefault(require("./viewer/titlebar/ViewerTools
41
41
 
42
42
  var _useEdgeFlow = _interopRequireDefault(require("../hooks/viewer/useEdgeFlow"));
43
43
 
44
+ var _LinkTagV = _interopRequireDefault(require("./viewer/displaySetting/LinkTagV2"));
45
+
46
+ var _useEdgeExpand = _interopRequireDefault(require("../hooks/useEdgeExpand"));
47
+
44
48
  var _excluded = ["topo", "titleBar", "onEnterEdit", "nodataPage", "notfoundPageProps", "noPermissionPageProps"];
45
49
 
46
50
  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); }
@@ -69,6 +73,9 @@ function NetworkTopologyCore(props) {
69
73
  (0, _useEdgeFlow["default"])({
70
74
  topo: topo
71
75
  });
76
+ (0, _useEdgeExpand["default"])({
77
+ topo: topo
78
+ });
72
79
  var relateTopo = (0, _useRelateTopo["default"])({
73
80
  topo: topo
74
81
  });
@@ -139,7 +146,7 @@ function NetworkTopologyCore(props) {
139
146
  showLinkConfig: true,
140
147
  // 是否显示链路流动效果配置
141
148
  linkTagConfig: function linkTagConfig(params) {
142
- return /*#__PURE__*/_react["default"].createElement(_LinkTag["default"], params);
149
+ return /*#__PURE__*/_react["default"].createElement(_LinkTagV["default"], params);
143
150
  },
144
151
  linkTipConfig: function linkTipConfig(params) {
145
152
  return /*#__PURE__*/_react["default"].createElement(_LinkTip["default"], params);
@@ -25,6 +25,8 @@ var _useTopoEdit = _interopRequireDefault(require("../hooks/useTopoEdit"));
25
25
 
26
26
  var _EdgePropertyView = _interopRequireDefault(require("./editor/propertyViews/edge/EdgePropertyView"));
27
27
 
28
+ var _useGroupSortResources2 = _interopRequireDefault(require("../hooks/editor/useGroupSortResources"));
29
+
28
30
  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); }
29
31
 
30
32
  function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { "default": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj["default"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
@@ -37,6 +39,9 @@ function NetworkTopologyFull(props) {
37
39
  topo: topo
38
40
  });
39
41
  var editorProps = (0, _extends2["default"])({
42
+ useGroupSortResources: function useGroupSortResources(nodes) {
43
+ return (0, _useGroupSortResources2["default"])(topo.store, nodes);
44
+ },
40
45
  layerRelatedResourceList: _LayerRelatedResourceList["default"],
41
46
  multipleElementPropertyViewProps: {
42
47
  showElementAlign: true
@@ -63,7 +68,9 @@ function NetworkTopologyFull(props) {
63
68
  showTools: showTools,
64
69
  elementChangeLayerByDrag: true,
65
70
  editor: {
66
- useNewElementsDeleteEvent: true
71
+ useNewElementsDeleteEvent: true,
72
+ // 通过数仓【添加资源】权限控制 是否启用新建链路功能,
73
+ enableRelateResource: topoEdit.canAddLink
67
74
  }
68
75
  }
69
76
  })
@@ -44,7 +44,7 @@ function getResourceNodes(store, htNodes) {
44
44
  function LayerResourceList(props) {
45
45
  var topo = props.topo,
46
46
  layer = props.layer;
47
- var nodes = (0, _htElementUtils.getLayerChildrenNodes)(layer);
47
+ var nodes = (0, _htElementUtils.getLayerChildren)(layer);
48
48
  var resourceNodes = getResourceNodes(topo.store, nodes);
49
49
  var data = resourceNodes.map(function (_ref) {
50
50
  var node = _ref.node,
@@ -41,6 +41,8 @@ var _linkUtils = require("../../../../../../core/models/utils/linkUtils");
41
41
 
42
42
  var _htElementUtils = require("../../../../../../utils/htElementUtils");
43
43
 
44
+ var _topoData = require("../../../../../../utils/topoData");
45
+
44
46
  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); }
45
47
 
46
48
  function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { "default": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj["default"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
@@ -180,7 +182,7 @@ function AddLinkDrawer(props) {
180
182
 
181
183
  var handleEvent = /*#__PURE__*/function () {
182
184
  var _ref2 = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee2(e) {
183
- var sourcePorts, targetPorts, source, target, connect_type;
185
+ var sourcePorts, targetPorts, source, target, targetDisableCreatePhyAggLink, connect_type;
184
186
  return _regenerator["default"].wrap(function _callee2$(_context2) {
185
187
  while (1) {
186
188
  switch (_context2.prev = _context2.next) {
@@ -206,11 +208,12 @@ function AddLinkDrawer(props) {
206
208
  setTargetIFDoc(targetPorts.portsDoc);
207
209
  source = translationNode(e.source, sourcePorts);
208
210
  target = translationNode(e.target, targetPorts);
211
+ targetDisableCreatePhyAggLink = !target.ciData || !(target.ciData.permission.writeable || target.ciData.permission.deleteable);
209
212
  editDispatchers.update({
210
213
  addLinkIsOpen: true,
211
214
  currentLink: null
212
215
  });
213
- connect_type = target.ciType !== "customNode" && target.ipAddress && targetPorts.ports.length > 0 ? "phy" : "exit";
216
+ connect_type = target.ciType !== "customNode" && target.ipAddress && targetPorts.ports.length > 0 && !targetDisableCreatePhyAggLink ? "phy" : "exit";
214
217
  setLink({
215
218
  source: source,
216
219
  target: target,
@@ -229,21 +232,21 @@ function AddLinkDrawer(props) {
229
232
  connect_type: connect_type
230
233
  }
231
234
  });
232
- _context2.next = 22;
235
+ _context2.next = 23;
233
236
  break;
234
237
 
235
- case 19:
236
- _context2.prev = 19;
238
+ case 20:
239
+ _context2.prev = 20;
237
240
  _context2.t0 = _context2["catch"](3);
238
241
 
239
242
  _rlog["default"].error("出现异常", _context2.t0);
240
243
 
241
- case 22:
244
+ case 23:
242
245
  case "end":
243
246
  return _context2.stop();
244
247
  }
245
248
  }
246
- }, _callee2, null, [[3, 19]]);
249
+ }, _callee2, null, [[3, 20]]);
247
250
  }));
248
251
 
249
252
  return function handleEvent(_x3) {
@@ -255,7 +258,9 @@ function AddLinkDrawer(props) {
255
258
  // rlog.debug("设置了起始节点", e);
256
259
  //const allData = topo.getData();
257
260
  var enableNodes = (0, _htElementUtils.getNodes)(topo.getDataModel());
258
- topo.view.topoClient.emitEvent("topo_link_set_connectable_nodes", enableNodes);
261
+ topo.view.topoClient.emitEvent("topo_link_set_connectable_nodes", enableNodes.filter(function (ele) {
262
+ return !((0, _htElementUtils.isGroup)(ele) && !ele.a('ciType'));
263
+ }));
259
264
  };
260
265
 
261
266
  var initEditLineData = /*#__PURE__*/function () {
@@ -282,6 +287,7 @@ function AddLinkDrawer(props) {
282
287
  connect_type = currentLink.attributes["network_link.connect_type"] === "exit" ? "exit" : "phy";
283
288
  setLink({
284
289
  source: {
290
+ ciData: topo.dataModel.getDataById(currentLink.source),
285
291
  id: currentLink.source,
286
292
  name: currentLink.attributes["network_link.source_device_id_object"].displayName,
287
293
  ciId: currentLink.attributes["network_link.source_device_id"],
@@ -293,6 +299,7 @@ function AddLinkDrawer(props) {
293
299
  portsDoc: sourcePorts.portsDoc
294
300
  },
295
301
  target: {
302
+ ciData: topo.dataModel.getDataById(currentLink.target),
296
303
  id: currentLink.target,
297
304
  name: currentLink.attributes["network_link.destination_device_id_object"].displayName,
298
305
  ciId: currentLink.attributes["network_link.destination_device_id"],
@@ -329,25 +336,38 @@ function AddLinkDrawer(props) {
329
336
  initEditLineData();
330
337
  }
331
338
  }, [addLinkIsOpen]);
339
+ (0, _react.useEffect)(function () {
340
+ if (!addLinkIsOpen) {
341
+ setLink(null);
342
+ }
343
+ }, [addLinkIsOpen]);
332
344
 
333
345
  var getCiTypesConnectable = /*#__PURE__*/function () {
334
346
  var _ref4 = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee4() {
335
- var ciTypesConnectable, nodes, ciIds, ciNodes;
347
+ var ciTypes, ciTypesConnectable, nodes, ciIds, ciNodes, isWriteable;
336
348
  return _regenerator["default"].wrap(function _callee4$(_context4) {
337
349
  while (1) {
338
350
  switch (_context4.prev = _context4.next) {
339
351
  case 0:
340
- _context4.next = 2;
341
- return _topo["default"].networkLink.getCiTypesConnectable(_ResourceTypeLimit.RESOURCE_LIMIT_TYPES);
352
+ ciTypes = (0, _topoData.getCiTypes)(topo.dataModel.getData());
353
+ _context4.next = 3;
354
+ return _topo["default"].networkLink.getCiTypesConnectable(ciTypes);
342
355
 
343
- case 2:
356
+ case 3:
344
357
  ciTypesConnectable = _context4.sent;
345
358
  nodes = (0, _htElementUtils.getNodes)(topo.getDataModel());
346
359
  ciIds = [];
347
360
  ciNodes = [];
361
+
362
+ isWriteable = function isWriteable(node) {
363
+ var _node$a;
364
+
365
+ return ["delete", "write"].indexOf(node.a("operation")) >= 0 || ((_node$a = node.a('permission')) === null || _node$a === void 0 ? void 0 : _node$a.writeable);
366
+ };
367
+
348
368
  nodes.map(function (node) {
349
369
  // rlog.debug("过滤属性", node.a("operation"));
350
- if (ciTypesConnectable[node.a("ciType")] && ["delete", "write"].indexOf(node.a("operation")) >= 0) {
370
+ if (ciTypesConnectable[node.a("ciType")] && isWriteable(node)) {
351
371
  ciIds.push(node.id);
352
372
  ciNodes.push(node);
353
373
  }
@@ -358,7 +378,7 @@ function AddLinkDrawer(props) {
358
378
  setCiIdsConnectable(ciIds);
359
379
  return _context4.abrupt("return", ciNodes);
360
380
 
361
- case 10:
381
+ case 12:
362
382
  case "end":
363
383
  return _context4.stop();
364
384
  }
@@ -399,6 +419,7 @@ function AddLinkDrawer(props) {
399
419
 
400
420
  var attrObject = node._attrObject;
401
421
  return {
422
+ ciData: topo.dataModel.getDataById(attrObject.id),
402
423
  id: attrObject.id,
403
424
  name: attrObject.name,
404
425
  ciId: attrObject.id,
@@ -49,6 +49,13 @@ var Row = _grid["default"].Row,
49
49
  function parseValues(values) {
50
50
  return (0, _extends2["default"])({}, values);
51
51
  }
52
+ /**
53
+ * 两端都有编辑/删除权限才能创建物理和聚合链路。
54
+ * 目的没编辑/删除权限时,在添加链路抽屉中链接方式默认出口,物理/聚合置灰不可选
55
+ * @param {*} props
56
+ * @returns
57
+ */
58
+
52
59
 
53
60
  function EditLinkInfo(props) {
54
61
  var _sourceValue$ipAddres2, _sourceValue$portsDoc5, _sourceValue$portsDoc6, _targetValue$portsDoc5, _targetValue$portsDoc6;
@@ -285,8 +292,10 @@ function EditLinkInfo(props) {
285
292
  name: "network_link.destination_ipv4",
286
293
  maxLength: 128
287
294
  });
288
- };
295
+ }; // 目的没编辑/删除权限时,在添加链路抽屉中链接方式默认出口,物理/聚合置灰不可选
296
+
289
297
 
298
+ var disableCreatePhyAggLink = target.ciType === "customNode" || !targetValue.ipAddress || targetValue.ports.length === 0 || !lineData.target || isAdd && !(lineData.target.ciData.permission.writeable || lineData.target.ciData.permission.deleteable);
290
299
  return /*#__PURE__*/_react["default"].createElement("div", {
291
300
  className: _indexModule["default"].editForm
292
301
  }, /*#__PURE__*/_react["default"].createElement(_form["default"], {
@@ -406,7 +415,7 @@ function EditLinkInfo(props) {
406
415
  }, /*#__PURE__*/_react["default"].createElement(_radio["default"], {
407
416
  id: "phy",
408
417
  value: "phy",
409
- disabled: target.ciType === "customNode" || !targetValue.ipAddress || targetValue.ports.length === 0
418
+ disabled: disableCreatePhyAggLink
410
419
  }, "\u7269\u7406/\u805A\u5408"), /*#__PURE__*/_react["default"].createElement(_radio["default"], {
411
420
  id: "exit",
412
421
  value: "exit"
@@ -0,0 +1,35 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+
5
+ exports.__esModule = true;
6
+ exports["default"] = LinkTagCommonRidioGroup;
7
+
8
+ var _radio = _interopRequireDefault(require("@alifd/next/lib/radio"));
9
+
10
+ var _react = _interopRequireDefault(require("react"));
11
+
12
+ var _LinkTagCommonRidioGroupModule = _interopRequireDefault(require("./LinkTagCommonRidioGroup.module.scss"));
13
+
14
+ function LinkTagCommonRidioGroup(props) {
15
+ var value = props.value,
16
+ dataSource = props.dataSource,
17
+ limit = props.limit,
18
+ onChange = props.onChange;
19
+ return /*#__PURE__*/_react["default"].createElement("div", {
20
+ className: _LinkTagCommonRidioGroupModule["default"].contaienr
21
+ }, /*#__PURE__*/_react["default"].createElement("div", {
22
+ className: _LinkTagCommonRidioGroupModule["default"].checkboxGroupWrapper
23
+ }, /*#__PURE__*/_react["default"].createElement(_radio["default"].Group, {
24
+ value: typeof value === 'string' ? value : '0',
25
+ itemDirection: "ver",
26
+ onChange: onChange
27
+ }, dataSource.map(function (item) {
28
+ return /*#__PURE__*/_react["default"].createElement(_radio["default"], {
29
+ key: item.value,
30
+ value: item.value
31
+ }, item.label);
32
+ }))));
33
+ }
34
+
35
+ ;
@@ -0,0 +1,23 @@
1
+ @import "@alifd/next/variables";
2
+
3
+ .contaienr {
4
+ padding: 16px 12px;
5
+ background: #F2F7FD;
6
+ border-radius: 4px;
7
+
8
+ .checkboxGroupWrapper {
9
+ margin: -8px -8px -8px 0;
10
+
11
+ :global {
12
+ .#{$css-prefix}checkbox-group.next-checkbox-group-hoz {
13
+ display: flex;
14
+ flex-flow: row wrap;
15
+
16
+ .#{$css-prefix}checkbox-wrapper {
17
+ margin-left: 8px;
18
+ margin-right: 8px;
19
+ }
20
+ }
21
+ }
22
+ }
23
+ }
@@ -0,0 +1,102 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+
5
+ exports.__esModule = true;
6
+ exports["default"] = void 0;
7
+
8
+ var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
9
+
10
+ var _react = _interopRequireDefault(require("react"));
11
+
12
+ var _ResourceInfoDisplay = require("../../../../constants/ResourceInfoDisplay");
13
+
14
+ var _BasicConfig = _interopRequireDefault(require("../../../../core/components/DisplaySettingDrawer/ResourceDisplay/BasicConfig"));
15
+
16
+ var _Setting = _interopRequireDefault(require("../../../../core/components/ResourceViewAttributeSetting/Setting"));
17
+
18
+ var _LinkTagCommonRidioGroup = _interopRequireDefault(require("./LinkTagCommonRidioGroup"));
19
+
20
+ // 默认中可配置内容包括总速率、带宽利用率、发送速率、发送带宽利用率、接收速率、接收带宽利用率
21
+ var CommonOptions = [{
22
+ value: '0',
23
+ label: '无'
24
+ }, {
25
+ value: '1',
26
+ label: '总流速、带宽利用率',
27
+ options: {
28
+ data: ['metric:interface_totalbps', 'metric:bandwidth_utilization']
29
+ }
30
+ }, {
31
+ value: '2',
32
+ label: '发送速率、发送带宽利用率',
33
+ options: {
34
+ data: ['metric:out_rate', 'metric:out_bandwidth_utilization']
35
+ }
36
+ }, {
37
+ value: '3',
38
+ label: '接收速率、接收带宽利用率',
39
+ options: {
40
+ data: ['metric:in_rate', 'metric:in_bandwidth_utilization']
41
+ }
42
+ }];
43
+
44
+ var buildConfig = function buildConfig(item) {
45
+ return {
46
+ type: item.split(':')[0],
47
+ code: item.split(':')[1]
48
+ };
49
+ };
50
+ /**
51
+ * 资源标注配置
52
+ * @param {*} props
53
+ * @returns
54
+ */
55
+
56
+
57
+ function LinkTagV2(props, ref) {
58
+ var value = props.value,
59
+ onChange = props.onChange;
60
+
61
+ var handleChange = function handleChange(newValue) {
62
+ // console.error(111, newValue)
63
+ if (!newValue.isCustom) {
64
+ var _CommonOptions$find;
65
+
66
+ var type = newValue.data;
67
+ var config = ((_CommonOptions$find = CommonOptions.find(function (item) {
68
+ return item.value === type;
69
+ })) === null || _CommonOptions$find === void 0 ? void 0 : _CommonOptions$find.options) || {
70
+ data: []
71
+ };
72
+ onChange((0, _extends2["default"])({}, newValue, config, {
73
+ data: config.data.map(buildConfig),
74
+ type: type
75
+ }));
76
+ } else {
77
+ onChange(newValue);
78
+ }
79
+ };
80
+
81
+ return /*#__PURE__*/_react["default"].createElement(_BasicConfig["default"], (0, _extends2["default"])({
82
+ ref: ref
83
+ }, props, {
84
+ value: value ? (0, _extends2["default"])({}, value, {
85
+ data: value.type
86
+ }) : value,
87
+ limit: 2,
88
+ elementType: "link",
89
+ showType: "tag",
90
+ commonOptions: CommonOptions,
91
+ defaultCommonConfig: _ResourceInfoDisplay.DEFAULT_LINK_TAG_COMMON_CONFIG,
92
+ commonSelectWidget: _LinkTagCommonRidioGroup["default"],
93
+ customSettingDrawer: function customSettingDrawer(params) {
94
+ return /*#__PURE__*/_react["default"].createElement(_Setting["default"], params);
95
+ },
96
+ onChange: handleChange
97
+ }));
98
+ }
99
+
100
+ var _default = /*#__PURE__*/_react["default"].forwardRef(LinkTagV2);
101
+
102
+ exports["default"] = _default;
@@ -23,7 +23,8 @@ var _resourcePermissionUtil = require("./utils/resourcePermissionUtil");
23
23
 
24
24
  function addLinkData(_x, _x2) {
25
25
  return _addLinkData.apply(this, arguments);
26
- }
26
+ } // FIXME 业务拓扑不需要链路相关逻辑
27
+
27
28
 
28
29
  function _addLinkData() {
29
30
  _addLinkData = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee(oldLinks, nodes) {
@@ -32,10 +33,22 @@ function _addLinkData() {
32
33
  while (1) {
33
34
  switch (_context.prev = _context.next) {
34
35
  case 0:
35
- _context.next = 2;
36
- return (0, _linkUtils.getLinksDetail)(oldLinks, nodes);
36
+ // 过滤掉无两端节点数据的链路
37
+ links = oldLinks.filter(function (link) {
38
+ var sourceNode = nodes.find(function (node) {
39
+ return node.id === link.source;
40
+ });
37
41
 
38
- case 2:
42
+ if (link.source && !sourceNode) {
43
+ return false;
44
+ }
45
+
46
+ return true;
47
+ });
48
+ _context.next = 3;
49
+ return (0, _linkUtils.getLinksDetail)(links, nodes);
50
+
51
+ case 3:
39
52
  links = _context.sent;
40
53
  return _context.abrupt("return", {
41
54
  links: links.filter(function (link) {
@@ -46,7 +59,7 @@ function _addLinkData() {
46
59
  })
47
60
  });
48
61
 
49
- case 4:
62
+ case 5:
50
63
  case "end":
51
64
  return _context.stop();
52
65
  }
@@ -82,7 +95,7 @@ function _buildData() {
82
95
  return Promise.all([// 查询节点属性
83
96
  (0, _services.queryCisByIds)(nodes.map(function (node) {
84
97
  return node.id;
85
- })), addLinkData(data.links, nodes)]);
98
+ })), addLinkData(data.links || [], nodes)]);
86
99
 
87
100
  case 4:
88
101
  _yield$Promise$all = _context2.sent;
@@ -0,0 +1,21 @@
1
+ "use strict";
2
+
3
+ exports.__esModule = true;
4
+ exports["default"] = useGroupSortResources;
5
+
6
+ function useGroupSortResources(store, nodes) {
7
+ var _store$useModelState = store.useModelState('topoMod'),
8
+ data = _store$useModelState.data;
9
+
10
+ var resources = [];
11
+ ((data === null || data === void 0 ? void 0 : data.nodes) || []).forEach(function (res) {
12
+ var node = nodes.find(function (item) {
13
+ return item.id === res.id;
14
+ });
15
+
16
+ if (node) {
17
+ resources.push(node);
18
+ }
19
+ });
20
+ return resources;
21
+ }
@@ -0,0 +1,33 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+
5
+ exports.__esModule = true;
6
+ exports["default"] = useEdgeExpand;
7
+
8
+ var _useHtDataPropertyChangeListener = _interopRequireDefault(require("../../core/hooks/ht/useHtDataPropertyChangeListener"));
9
+
10
+ var _edgeUtil = require("../../core/utils/edgeUtil");
11
+
12
+ /**
13
+ * 默认情况下,拓扑图不存在链路的动态效果
14
+ * 未监控的链路,不展示动态效果
15
+ * @param {*} props
16
+ */
17
+ function useEdgeExpand(props) {
18
+ var topo = props.topo;
19
+ (0, _useHtDataPropertyChangeListener["default"])({
20
+ topo: topo,
21
+ onChange: function onChange(e) {
22
+ var property = e.property,
23
+ data = e.data;
24
+
25
+ if (data instanceof ht.Group && property === 'expanded') {
26
+ (0, _edgeUtil.updateEdgeExpanded)(topo);
27
+ setTimeout(function () {
28
+ (0, _edgeUtil.updateEdgeExpanded)(topo);
29
+ }, 100);
30
+ }
31
+ }
32
+ });
33
+ }
@@ -25,7 +25,7 @@ function _default(props) {
25
25
  var graphLoaded = topoModState.graphLoaded,
26
26
  topoData = topoModState.data;
27
27
  (0, _react.useEffect)(function () {
28
- // 拓扑图记载完成时刷新
28
+ // 拓扑图加载完成时刷新
29
29
  if (graphLoaded && topoData) {
30
30
  topo.linkDynamicStyleExecutor.execute();
31
31
  }
@@ -13,6 +13,8 @@ var _useDeleteEdges = _interopRequireDefault(require("./editor/useDeleteEdges"))
13
13
 
14
14
  var _default = function _default(props) {
15
15
  var topo = props.topo;
16
+ var functionAuthState = topo.store.useModelState('functionAuth');
17
+ var canAddLink = !!functionAuthState.permissions.addResource;
16
18
  var deleteEdges = (0, _useDeleteEdges["default"])({
17
19
  topo: topo
18
20
  });
@@ -30,6 +32,7 @@ var _default = function _default(props) {
30
32
  };
31
33
 
32
34
  return {
35
+ canAddLink: canAddLink,
33
36
  onElementsDelete: onElementsDelete
34
37
  };
35
38
  };