@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
@@ -45,6 +45,10 @@ var _TopoViewModule = _interopRequireDefault(require("./TopoView.module.scss"));
45
45
 
46
46
  var _useRouterAdapter = _interopRequireDefault(require("../../hooks/useRouterAdapter"));
47
47
 
48
+ var _graphLinkUtil = require("../../utils/graphLinkUtil");
49
+
50
+ var _clusterUtil = require("../../../utils/clusterUtil");
51
+
48
52
  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); }
49
53
 
50
54
  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; }
@@ -57,8 +61,9 @@ var Topology = function Topology(props) {
57
61
  titleBar = props.titleBar,
58
62
  buildLoadOptions = props.buildLoadOptions,
59
63
  onReady = props.onReady,
60
- onDestroy = props.onDestroy,
61
64
  onLoaded = props.onLoaded,
65
+ onLoad = props.onLoad,
66
+ onDestroy = props.onDestroy,
62
67
  onRefreshTopo = props.onRefresh,
63
68
  onEnterEdit = props.onEnterEdit,
64
69
  onSave = props.onSave,
@@ -155,9 +160,25 @@ var Topology = function Topology(props) {
155
160
  onReady();
156
161
  }
157
162
  }, []);
163
+ var handleGraphDataLoaded = (0, _react.useCallback)(function () {
164
+ _rlog["default"].info("TopoView.handleGraphDataLoaded", topoData, topo.getDataModel().getDatas().toArray());
165
+
166
+ (0, _graphLinkUtil.fixLink)(topo);
167
+ (0, _clusterUtil.handleClusterNoPermission)(topo);
168
+ (0, _edgeUtil.updateEdgeExpanded)(topo);
169
+ topoDispatchers.update({
170
+ graphLoaded2: true
171
+ });
172
+
173
+ if (onLoad) {
174
+ onLoad();
175
+ }
176
+ }, [topoData]);
158
177
  var handleGraphLoaded = (0, _react.useCallback)(function () {
159
178
  _rlog["default"].info("TopoView.handleGraphLoaded", topoData, topo.getDataModel().getDatas().toArray());
160
179
 
180
+ (0, _graphLinkUtil.fixLink)(topo);
181
+ (0, _clusterUtil.handleClusterNoPermission)(topo);
161
182
  (0, _edgeUtil.updateEdgeExpanded)(topo);
162
183
  topoDispatchers.update({
163
184
  graphLoaded: true
@@ -166,6 +187,10 @@ var Topology = function Topology(props) {
166
187
  if (onLoaded) {
167
188
  onLoaded(topoData);
168
189
  }
190
+
191
+ if (onLoad) {
192
+ onLoad();
193
+ }
169
194
  }, [topoData]); // TODO 之后把事件方法都转移出去
170
195
 
171
196
  var rightEventHandle = function rightEventHandle(event) {
@@ -273,6 +298,7 @@ var Topology = function Topology(props) {
273
298
  renderBackgroundView: renderBackgroundView,
274
299
  onCreate: onGraphCreated,
275
300
  onLoaded: handleGraphLoaded,
301
+ onDataLoaded: handleGraphDataLoaded,
276
302
  onDestroy: onDestroy,
277
303
  onEvent: handleEvent,
278
304
  style: {
@@ -312,6 +338,7 @@ Topology.propTypes = {
312
338
  onNodeDelete: _propTypes["default"].func,
313
339
  onLineDelete: _propTypes["default"].func,
314
340
  onLoaded: _propTypes["default"].func,
341
+ onLoad: _propTypes["default"].func,
315
342
 
316
343
  /**
317
344
  * @deprecated 工具栏
@@ -15,10 +15,12 @@ function GroupNodeList(props) {
15
15
  var topo = props.topo,
16
16
  group = props.group,
17
17
  _props$showRemove = props.showRemove,
18
- showRemove = _props$showRemove === void 0 ? true : _props$showRemove;
18
+ showRemove = _props$showRemove === void 0 ? true : _props$showRemove,
19
+ useGroupSortResources = props.useGroupSortResources;
19
20
  var dataSource = (0, _useGroupRelateResource["default"])({
20
21
  group: group,
21
- topo: topo
22
+ topo: topo,
23
+ useGroupSortResources: useGroupSortResources
22
24
  });
23
25
  /**
24
26
  * 从区域移出节点,放到左上角
@@ -9,8 +9,6 @@ var _react = _interopRequireWildcard(require("react"));
9
9
 
10
10
  var _GroupRelateData = _interopRequireDefault(require("./GroupRelateData/GroupRelateData"));
11
11
 
12
- var _ClusterGroupRelateData = _interopRequireDefault(require("./ClusterGroupRelateData/ClusterGroupRelateData"));
13
-
14
12
  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); }
15
13
 
16
14
  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; }
@@ -21,11 +19,5 @@ function GroupRelateDataContainer(props) {
21
19
  group = props.group,
22
20
  values = props.values,
23
21
  editorProps = props.editorProps;
24
- var elementTemplate = group.a('elementTemplate');
25
-
26
- if (elementTemplate === 'cluster') {
27
- return /*#__PURE__*/_react["default"].createElement(_ClusterGroupRelateData["default"], props);
28
- }
29
-
30
22
  return /*#__PURE__*/_react["default"].createElement(_GroupRelateData["default"], props);
31
23
  }
@@ -7,14 +7,12 @@ exports["default"] = useGroupRelateResource;
7
7
 
8
8
  var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
9
9
 
10
- var _react = require("react");
11
-
12
- var _rlog = _interopRequireDefault(require("@riil-frontend/component-topology-utils/es/rlog"));
13
-
14
10
  var _componentTopologyGraph = require("@riil-frontend/component-topology-graph");
15
11
 
16
12
  var _sortBy = _interopRequireDefault(require("lodash/sortBy"));
17
13
 
14
+ var _htElementDataUtil = require("../../../../../../../../utils/htElementDataUtil");
15
+
18
16
  var _htElementUtils = require("../../../../../../../../utils/htElementUtils");
19
17
 
20
18
  function sortResourcesByName(resources) {
@@ -25,20 +23,22 @@ function useGroupRelateResource(props) {
25
23
  var _topo$options$editor;
26
24
 
27
25
  var group = props.group,
28
- topo = props.topo; // const [resources, setResources] = useState([]);
29
-
30
- var nodes = (0, _htElementUtils.getGroupChildrenNodes)(group); // 过滤出资源
26
+ topo = props.topo,
27
+ _props$useGroupSortRe = props.useGroupSortResources,
28
+ useGroupSortResources = _props$useGroupSortRe === void 0 ? function (nodes) {
29
+ return nodes;
30
+ } : _props$useGroupSortRe; // const [resources, setResources] = useState([]);
31
+ // 过滤出资源
31
32
 
32
- var resourceNodes = nodes.filter(function (node) {
33
- return !!node.getTag();
34
- }); // 资源按名称排序
33
+ var resourceNodes = (0, _htElementDataUtil.getGroupChildrenResourceElements)(group); // 资源按名称排序
35
34
 
36
- var sortResources = ((_topo$options$editor = topo.options.editor) === null || _topo$options$editor === void 0 ? void 0 : _topo$options$editor.sortResources) || sortResourcesByName;
37
- var data = sortResources(resourceNodes.map(function (node) {
35
+ var useSortNodes = useGroupSortResources || ((_topo$options$editor = topo.options.editor) === null || _topo$options$editor === void 0 ? void 0 : _topo$options$editor.sortResources) || sortResourcesByName;
36
+ var data = useSortNodes(resourceNodes.map(function (node) {
38
37
  return (0, _extends2["default"])({}, (0, _htElementUtils.getNodeData)(node), {
39
38
  node: node
40
39
  });
41
- })).map(function (item) {
40
+ }));
41
+ data = data.map(function (item) {
42
42
  return {
43
43
  title: item.name,
44
44
  img: _componentTopologyGraph.iconFactory.getIconImageUrl(item.image),
@@ -21,6 +21,8 @@ var _Setting = _interopRequireDefault(require("./SettingTab/Setting"));
21
21
 
22
22
  var _RelateData = _interopRequireDefault(require("./DataTab/RelateData"));
23
23
 
24
+ var _ClusterGroupRelateData = _interopRequireDefault(require("./cluster/ClusterGroupRelateData"));
25
+
24
26
  function GroupPropertyView(props) {
25
27
  var topo = props.topo,
26
28
  topoEdit = props.topoEdit,
@@ -32,10 +34,12 @@ function GroupPropertyView(props) {
32
34
  topo: topo,
33
35
  id: values.id
34
36
  });
37
+ var isCluster = group.a('cluster');
38
+ var DataTabContent = isCluster ? _ClusterGroupRelateData["default"] : _RelateData["default"];
35
39
  return /*#__PURE__*/_react["default"].createElement(_TabView["default"], null, /*#__PURE__*/_react["default"].createElement(_tab["default"].Item, {
36
40
  title: "\u6570\u636E",
37
41
  key: "1"
38
- }, /*#__PURE__*/_react["default"].createElement(_RelateData["default"], (0, _extends2["default"])({
42
+ }, /*#__PURE__*/_react["default"].createElement(DataTabContent, (0, _extends2["default"])({
39
43
  group: group
40
44
  }, props))), /*#__PURE__*/_react["default"].createElement(_tab["default"].Item, {
41
45
  title: "\u8BBE\u7F6E",
@@ -11,15 +11,17 @@ var _form = _interopRequireDefault(require("@alifd/next/lib/form"));
11
11
 
12
12
  var _react = _interopRequireWildcard(require("react"));
13
13
 
14
- var _GroupNodeList = _interopRequireDefault(require("../GroupNodeList"));
14
+ var _GroupNodeList = _interopRequireDefault(require("../DataTab/GroupNodeList"));
15
15
 
16
- var _Panel = _interopRequireDefault(require("../../../../../../../../components/collapse/Panel"));
16
+ var _Panel = _interopRequireDefault(require("../../../../../../../components/collapse/Panel"));
17
17
 
18
- var _NodeRelateResourceButton = _interopRequireDefault(require("../../../node/data/NodeRelateResourceButton"));
18
+ var _NodeRelateResourceButton = _interopRequireDefault(require("../../node/data/NodeRelateResourceButton"));
19
19
 
20
- var _CollapseFullheightModule = _interopRequireDefault(require("../../../../common/GroupNodeList/CollapseFullheight.module.scss"));
20
+ var _componentNoDataPage = _interopRequireDefault(require("@riil-frontend/component-no-data-page"));
21
21
 
22
- var _textModule = _interopRequireDefault(require("../../../../../../../common/text.module.scss"));
22
+ var _CollapseFullheightModule = _interopRequireDefault(require("../../../common/GroupNodeList/CollapseFullheight.module.scss"));
23
+
24
+ var _textModule = _interopRequireDefault(require("../../../../../../common/text.module.scss"));
23
25
 
24
26
  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); }
25
27
 
@@ -31,17 +33,25 @@ function ClusterGroupRelateData(props) {
31
33
  group = props.group,
32
34
  values = props.values,
33
35
  editorProps = props.editorProps;
36
+ var useGroupSortResources = editorProps.useGroupSortResources;
34
37
 
35
38
  var renderMemberPanel = function renderMemberPanel() {
36
39
  return /*#__PURE__*/_react["default"].createElement(_Panel["default"], {
37
40
  key: "\u96C6\u7FA4\u6210\u5458",
38
41
  title: "\u96C6\u7FA4\u6210\u5458",
39
42
  className: _CollapseFullheightModule["default"].panelFullHeight
40
- }, /*#__PURE__*/_react["default"].createElement(_GroupNodeList["default"], {
43
+ }, group.a('operation') ? /*#__PURE__*/_react["default"].createElement(_GroupNodeList["default"], {
41
44
  topo: topo,
42
45
  group: group,
43
- showRemove: false
44
- }));
46
+ showRemove: false,
47
+ useGroupSortResources: useGroupSortResources
48
+ }) : /*#__PURE__*/_react["default"].createElement("div", {
49
+ style: {
50
+ height: 180
51
+ }
52
+ }, /*#__PURE__*/_react["default"].createElement(_componentNoDataPage["default"], {
53
+ statusCode: "\u6CA1\u6709\u67E5\u770B\u6743\u9650"
54
+ })));
45
55
  };
46
56
 
47
57
  return /*#__PURE__*/_react["default"].createElement(_collapse["default"], {
@@ -72,5 +82,9 @@ function ClusterGroupRelateData(props) {
72
82
  color: '#4D6277'
73
83
  },
74
84
  title: values.tag ? values.name : null
75
- }, values.tag ? values.name : '—'))))), renderMemberPanel());
85
+ }, values.tag ? values.name : '—'), /*#__PURE__*/_react["default"].createElement(_NodeRelateResourceButton["default"], {
86
+ node: values,
87
+ topo: topo,
88
+ topoEditApi: topoEditApi
89
+ }))))), renderMemberPanel());
76
90
  }
@@ -11,7 +11,7 @@ var _componentTopologyGraph = require("@riil-frontend/component-topology-graph")
11
11
 
12
12
  var _ResourceList = _interopRequireDefault(require("../../../common/GroupNodeList/ResourceList"));
13
13
 
14
- var _htElementUtils = require("../../../../../../../utils/htElementUtils");
14
+ var _htElementDataUtil = require("../../../../../../../utils/htElementDataUtil");
15
15
 
16
16
  /**
17
17
  * 分层关联资源列表
@@ -19,10 +19,7 @@ var _htElementUtils = require("../../../../../../../utils/htElementUtils");
19
19
  function LayerResourceList(props) {
20
20
  var topo = props.topo,
21
21
  layer = props.layer;
22
- var nodes = (0, _htElementUtils.getLayerChildrenNodes)(layer);
23
- var relateDataNodes = nodes.filter(function (node) {
24
- return !!node.getTag();
25
- });
22
+ var relateDataNodes = (0, _htElementDataUtil.getLayerChildrenResourceElements)(layer);
26
23
  var data = relateDataNodes.map(function (node) {
27
24
  return {
28
25
  title: node.a('name'),
@@ -0,0 +1,31 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+
5
+ exports.__esModule = true;
6
+ exports["default"] = BatchSetNodeIcon;
7
+
8
+ var _react = _interopRequireDefault(require("react"));
9
+
10
+ var _htElementUtils = require("../../../../../../utils/htElementUtils");
11
+
12
+ var _NodeIconSelect = _interopRequireDefault(require("../node/NodeIconSelect"));
13
+
14
+ function BatchSetNodeIcon(props) {
15
+ var topo = props.topo;
16
+
17
+ var setNodeIcon = function setNodeIcon(iconId) {
18
+ var selection = topo.getSelectionModel().getSelection().toArray();
19
+ var nodes = selection.filter(function (element) {
20
+ return (0, _htElementUtils.isNode)(element) && !(0, _htElementUtils.isGroup)(element);
21
+ });
22
+ nodes.forEach(function (node) {
23
+ node.setImage(iconId);
24
+ });
25
+ };
26
+
27
+ return /*#__PURE__*/_react["default"].createElement(_NodeIconSelect["default"], {
28
+ topo: topo,
29
+ onChange: setNodeIcon
30
+ });
31
+ }
@@ -23,6 +23,8 @@ var _ViewPropertyView = _interopRequireDefault(require("../view/ViewPropertyView
23
23
 
24
24
  var _MultipleElementLineType = _interopRequireDefault(require("./MultipleElementLineType"));
25
25
 
26
+ var _BatchSetNodeIcon = _interopRequireDefault(require("./BatchSetNodeIcon"));
27
+
26
28
  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); }
27
29
 
28
30
  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; }
@@ -80,6 +82,10 @@ function MultipleElementPropertyView(props) {
80
82
  key: "\u56FE\u7247",
81
83
  title: "\u56FE\u7247"
82
84
  }, /*#__PURE__*/_react["default"].createElement(_form["default"].Item, {
85
+ label: "\u663E\u793A\u56FE\u7247"
86
+ }, /*#__PURE__*/_react["default"].createElement(_BatchSetNodeIcon["default"], {
87
+ topo: topo
88
+ })), /*#__PURE__*/_react["default"].createElement(_form["default"].Item, {
83
89
  label: "\u56FE\u7247\u5C3A\u5BF8",
84
90
  style: {
85
91
  marginBottom: 0
@@ -36,7 +36,9 @@ function NodePropertyView(props) {
36
36
  });
37
37
 
38
38
  var renderData = function renderData() {
39
- return /*#__PURE__*/_react["default"].createElement(_Data["default"], props);
39
+ return /*#__PURE__*/_react["default"].createElement(_Data["default"], (0, _extends2["default"])({}, props, {
40
+ node: node
41
+ }));
40
42
  };
41
43
 
42
44
  var renderSetting = function renderSetting() {
@@ -0,0 +1,52 @@
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 _input = _interopRequireDefault(require("@alifd/next/lib/input"));
9
+
10
+ var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
11
+
12
+ var _react = _interopRequireWildcard(require("react"));
13
+
14
+ 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); }
15
+
16
+ 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; }
17
+
18
+ var NameInput = /*#__PURE__*/_react["default"].forwardRef(function (props, ref) {
19
+ var onChange = props.onChange;
20
+
21
+ var _useState = (0, _react.useState)(props.value),
22
+ value = _useState[0],
23
+ setValue = _useState[1];
24
+
25
+ (0, _react.useEffect)(function () {
26
+ setValue(props.value);
27
+ }, [props.value]);
28
+
29
+ var handleChange = function handleChange(v) {
30
+ setValue(v);
31
+
32
+ if (v) {
33
+ onChange(v);
34
+ }
35
+ };
36
+
37
+ var handleBlur = function handleBlur() {
38
+ if (!value) {
39
+ onChange('');
40
+ }
41
+ };
42
+
43
+ return /*#__PURE__*/_react["default"].createElement(_input["default"], (0, _extends2["default"])({}, props, {
44
+ ref: ref,
45
+ value: value,
46
+ onChange: handleChange,
47
+ onBlur: handleBlur
48
+ }));
49
+ });
50
+
51
+ var _default = NameInput;
52
+ exports["default"] = _default;
@@ -7,8 +7,6 @@ exports["default"] = Setting;
7
7
 
8
8
  var _form = _interopRequireDefault(require("@alifd/next/lib/form"));
9
9
 
10
- var _input = _interopRequireDefault(require("@alifd/next/lib/input"));
11
-
12
10
  var _field = _interopRequireDefault(require("@alifd/next/lib/field"));
13
11
 
14
12
  var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
@@ -21,6 +19,8 @@ var _NodeSizeInput = _interopRequireDefault(require("../../../common/NodeSizeInp
21
19
 
22
20
  var _NodeIconSelect = _interopRequireDefault(require("../NodeIconSelect"));
23
21
 
22
+ var _NameInput = _interopRequireDefault(require("./NameInput"));
23
+
24
24
  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); }
25
25
 
26
26
  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; }
@@ -70,7 +70,7 @@ function Setting(props) {
70
70
  title: "\u663E\u793A\u8BBE\u7F6E"
71
71
  }, /*#__PURE__*/_react["default"].createElement(_form["default"].Item, {
72
72
  label: "\u56FE\u7247\u540D\u79F0"
73
- }, /*#__PURE__*/_react["default"].createElement(_input["default"], {
73
+ }, /*#__PURE__*/_react["default"].createElement(_NameInput["default"], {
74
74
  name: "attrObject.customName"
75
75
  })), showImageSetting && /*#__PURE__*/_react["default"].createElement(_form["default"].Item, {
76
76
  label: "\u663E\u793A\u56FE\u7247"
@@ -51,16 +51,13 @@ function getBindType(values) {
51
51
  }
52
52
 
53
53
  function Data(props) {
54
- var topo = props.topo,
54
+ var node = props.node,
55
+ topo = props.topo,
55
56
  topoEditApi = props.topoEditApi,
56
57
  values = props.values,
57
58
  _onChange = props.onChange,
58
59
  editorProps = props.editorProps;
59
60
  var bindType = getBindType(values);
60
- var node = (0, _useHtElement["default"])({
61
- topo: topo,
62
- id: values.id
63
- });
64
61
 
65
62
  var field = _field["default"].useField({
66
63
  autoUnmount: false,
@@ -133,6 +130,7 @@ function Data(props) {
133
130
  },
134
131
  title: values.tag ? values.name : null
135
132
  }, values.tag ? values.name : "—"), /*#__PURE__*/_react["default"].createElement(_NodeRelateResourceButton["default"], {
133
+ nodeElement: node,
136
134
  node: values,
137
135
  topo: topo,
138
136
  topoEditApi: topoEditApi
@@ -13,6 +13,8 @@ var _react = _interopRequireWildcard(require("react"));
13
13
 
14
14
  var _BindResourceDrawer = _interopRequireDefault(require("./BindResourceDrawer"));
15
15
 
16
+ var _clusterUtil = require("../../../../../../../utils/clusterUtil");
17
+
16
18
  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); }
17
19
 
18
20
  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; }
@@ -23,10 +25,11 @@ function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj &&
23
25
  function NodeRelateResourceButton(props) {
24
26
  var _node$attrObject$data;
25
27
 
26
- var topo = props.topo,
28
+ var nodeElement = props.nodeElement,
29
+ topo = props.topo,
27
30
  topoEditApi = props.topoEditApi,
28
31
  node = props.node;
29
- var hide = ((_node$attrObject$data = node.attrObject.data) === null || _node$attrObject$data === void 0 ? void 0 : _node$attrObject$data.relateResource) === false;
32
+ var hide = (0, _clusterUtil.isClusterMemberHtElement)(nodeElement) || ((_node$attrObject$data = node.attrObject.data) === null || _node$attrObject$data === void 0 ? void 0 : _node$attrObject$data.relateResource) === false;
30
33
  var currentResId = node.tag;
31
34
 
32
35
  var _useState = (0, _react.useState)(false),
@@ -0,0 +1,37 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+
5
+ exports.__esModule = true;
6
+ exports["default"] = useHtDataPropertyChangeListener;
7
+
8
+ var _rlog = _interopRequireDefault(require("@riil-frontend/component-topology-utils/es/rlog"));
9
+
10
+ var _react = require("react");
11
+
12
+ function useHtDataPropertyChangeListener(props) {
13
+ var topo = props.topo,
14
+ onChange = props.onChange;
15
+
16
+ var _topo$store$useModel = topo.store.useModel('topoMod'),
17
+ topoState = _topo$store$useModel[0],
18
+ topoDispatchers = _topo$store$useModel[1];
19
+
20
+ var graphLoaded = topoState.graphLoaded,
21
+ graphLoaded2 = topoState.graphLoaded2;
22
+ (0, _react.useEffect)(function () {
23
+ var dm = topo.getDataModel();
24
+ var inited = false;
25
+
26
+ if (graphLoaded || graphLoaded2) {
27
+ dm.addDataPropertyChangeListener(onChange);
28
+ inited = true;
29
+ }
30
+
31
+ return function () {
32
+ if (inited) {
33
+ dm.removeDataPropertyChangeListener(onChange);
34
+ }
35
+ };
36
+ }, [graphLoaded, graphLoaded2, onChange]);
37
+ }
@@ -131,10 +131,6 @@ var AttributeMetricDisplay = /*#__PURE__*/function () {
131
131
  return (0, _extends2["default"])({}, link, {
132
132
  type: 'edge'
133
133
  });
134
- }), linkGroups.map(function (link) {
135
- return (0, _extends2["default"])({}, link, {
136
- type: 'edgeGroup'
137
- });
138
134
  }));
139
135
  };
140
136
 
@@ -258,8 +254,14 @@ var AttributeMetricDisplay = /*#__PURE__*/function () {
258
254
  var tagTipOptions = this.topo.options.tagTip;
259
255
  var defaultLinkTagConfig = tagTipOptions !== null && tagTipOptions !== void 0 && tagTipOptions.getDefaultLinkTagConfig ? tagTipOptions === null || tagTipOptions === void 0 ? void 0 : tagTipOptions.getDefaultLinkTagConfig(link) : null;
260
256
  var defaultLinkTipConfig = tagTipOptions !== null && tagTipOptions !== void 0 && tagTipOptions.getDefaultLinkTipConfig ? tagTipOptions === null || tagTipOptions === void 0 ? void 0 : tagTipOptions.getDefaultLinkTipConfig(link) : null;
257
+ var linkTagConfig = linkTag || defaultLinkTagConfig;
261
258
  return {
262
- tags: getItems(linkTag || defaultLinkTagConfig),
259
+ tags: getItems(linkTagConfig),
260
+ tagLinkArrow: {
261
+ 1: 'both',
262
+ 2: 'from',
263
+ 3: 'to'
264
+ }[linkTagConfig === null || linkTagConfig === void 0 ? void 0 : linkTagConfig.type] || undefined,
263
265
  tips: getItems(linkTip || defaultLinkTipConfig)
264
266
  };
265
267
  };
@@ -272,13 +274,14 @@ var AttributeMetricDisplay = /*#__PURE__*/function () {
272
274
 
273
275
  var tagTipConfig = _this2.getLinkTagTipConfig(link);
274
276
 
275
- return {
277
+ return (0, _extends2["default"])({
276
278
  type: link.type,
277
279
  id: link.id,
278
- ciType: ciType,
280
+ ciType: ciType
281
+ }, tagTipConfig, {
279
282
  tags: filterByPermission(link, tagTipConfig.tags),
280
283
  tips: filterByPermission(link, tagTipConfig.tips)
281
- };
284
+ });
282
285
  });
283
286
  }
284
287
  /**
@@ -355,6 +358,10 @@ var AttributeMetricDisplay = /*#__PURE__*/function () {
355
358
  ;
356
359
 
357
360
  _proto.getNodeNameVisible = function getNodeNameVisible(node) {
361
+ if (!this.topo.isViewMode()) {
362
+ return true;
363
+ }
364
+
358
365
  var _this$getConfig3 = this.getConfig(),
359
366
  nodeTag = _this$getConfig3.nodeTag;
360
367
 
@@ -718,9 +725,10 @@ var AttributeMetricDisplay = /*#__PURE__*/function () {
718
725
  ;
719
726
 
720
727
  _proto.buildTagsTips = function buildTagsTips() {
728
+ var _this6 = this;
729
+
721
730
  var data = this.getData(); // 获取标注、悬浮框配置
722
731
 
723
- var formatter = new _attributeFormatter["default"](this.topo);
724
732
  var ciConfigs = this.getResourceTagTipConfig();
725
733
  var ciTagsAndTips = ciConfigs.map(function (ciConfig) {
726
734
  var ciDataItem = (0, _topoData.findItem)(data, 'id', ciConfig.id);
@@ -737,10 +745,20 @@ var AttributeMetricDisplay = /*#__PURE__*/function () {
737
745
  var ciData = (0, _extends2["default"])({}, (0, _topoData.findItem)(data, 'id', ciConfig.id), {
738
746
  ciType: ciConfig.ciType
739
747
  });
748
+ var formatter = new _attributeFormatter["default"](_this6.topo);
749
+ var tags = formatter.formatAttrs(ciConfig.tags, ciData); // 链路标注箭头
750
+
751
+ if (ciConfig.type === 'edge') {
752
+ tags = {
753
+ data: tags,
754
+ linkArrow: ciConfig.tagLinkArrow
755
+ };
756
+ }
757
+
740
758
  return {
741
759
  type: ciConfig.type,
742
760
  id: ciConfig.id,
743
- tags: formatter.formatAttrs(ciConfig.tags, ciData),
761
+ tags: tags,
744
762
  tips: formatter.formatAttrs(ciConfig.tips, ciData)
745
763
  };
746
764
  });
@@ -17,7 +17,7 @@ var _componentTopologyUtils = require("@riil-frontend/component-topology-utils")
17
17
 
18
18
  var _rlog = _interopRequireDefault(require("@riil-frontend/component-topology-utils/es/rlog"));
19
19
 
20
- var _CiTyeCache = _interopRequireDefault(require("./cache/CiTyeCache"));
20
+ var _CiTypeCache = _interopRequireDefault(require("./cache/CiTypeCache"));
21
21
 
22
22
  var _Alarm = _interopRequireDefault(require("./Alarm"));
23
23
 
@@ -47,8 +47,10 @@ var _PluginManager = _interopRequireDefault(require("./PluginManager"));
47
47
 
48
48
  var _topoFactory = _interopRequireDefault(require("./topoFactory"));
49
49
 
50
+ var _ElementTagTipConfig = _interopRequireDefault(require("./tagstips/ElementTagTipConfig"));
51
+
50
52
  // eslint-disable-next-line no-undef
51
- var version = typeof "4.0.0-beta.9" === 'string' ? "4.0.0-beta.9" : null;
53
+ var version = typeof "4.0.2" === 'string' ? "4.0.2" : null;
52
54
  console.info("\u62D3\u6251\u7248\u672C: " + version);
53
55
  /**
54
56
  * 拓扑显示和编辑
@@ -65,8 +67,10 @@ var Topo = /*#__PURE__*/function () {
65
67
  this.alarm = new _Alarm["default"]();
66
68
  this.store = void 0;
67
69
  this.serverApi = _topo["default"];
68
- this.ciTyeCache = _CiTyeCache["default"];
70
+ this.CiTypeCache = _CiTypeCache["default"];
71
+ this.ciTyeCache = _CiTypeCache["default"];
69
72
  this.dictCache = _DictCache["default"];
73
+ this.elementTagTipConfig = new _ElementTagTipConfig["default"](this);
70
74
  this.test = void 0;
71
75
  this.uid = void 0;
72
76
  this.version = version;
@@ -230,9 +234,10 @@ var Topo = /*#__PURE__*/function () {
230
234
  };
231
235
 
232
236
  _proto.getNodes = function getNodes() {
233
- return (0, _htElementUtils.getNodeDatas)(this.getDataModel()).filter(function (node) {
234
- return !!node.id;
237
+ var nodes = (0, _htElementUtils.getNodes)(this.getDataModel()).filter(function (node) {
238
+ return !!node.getTag();
235
239
  });
240
+ return nodes.map(_htElementUtils.getNodeData);
236
241
  };
237
242
 
238
243
  _proto.getLines = function getLines() {