@riil-frontend/component-topology 13.0.0-dev.1 → 13.0.0-dev.3
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.
- package/build/1.js +1 -1
- package/build/index.js +14 -14
- package/es/components/ResourceSelectDrawer/ResourceSelectDrawer.js +1 -1
- package/es/core/components/TopoView/topoView.js +7 -4
- package/es/core/editor/components/Toolbar/widgets/EdgeColorButton/EdgeColorButton.js +2 -2
- package/es/core/editor/components/Toolbar/widgets/EdgeTypeButton/LineType.js +5 -15
- package/es/core/editor/components/Toolbar/widgets/FontFamilyWidget.js +2 -27
- package/es/core/editor/components/Toolbar/widgets/FontSizeWidget.js +3 -28
- package/es/core/editor/components/Toolbar/widgets/FontStyleButton.js +6 -52
- package/es/core/editor/components/Toolbar/widgets/components/FontFamilySelect.js +29 -0
- package/es/core/editor/components/Toolbar/widgets/components/FontSizeSelect.js +29 -0
- package/es/core/editor/components/Toolbar/widgets/components/FontStyleSelect.js +71 -0
- package/es/core/editor/components/settings/core/updateElementProperty.js +3 -2
- package/es/core/editor/components/settings/propertyViews/view/GlobalEdgeToggle.js +2 -2
- package/es/core/editor/hooks/useNewElementTheme.js +20 -16
- package/es/core/editor/utils/edgeTypeStyleUtil.js +11 -32
- package/es/core/hooks/useGraphAlarmDisplay.js +4 -0
- package/es/core/hooks/usePolling.js +2 -1
- package/es/core/hooks/useTopoEdit.js +206 -248
- package/es/core/models/AttributeMetricDisplay.js +4 -3
- package/es/core/models/HistoryManager.js +11 -9
- package/es/core/models/TopoApp.js +39 -45
- package/es/core/models/topoData.js +7 -14
- package/es/core/models/utils/linkUtils.js +36 -28
- package/es/core/store/models/topoConfig.js +14 -17
- package/es/core/utils/edgeUtil.js +7 -10
- package/es/core/viewer/components/plugins/ElementDetailDrawer/hooks/useElementDetailManager.js +2 -2
- package/es/networkTopo/models/EdgeGroupTagTipBuilder.js +7 -7
- package/es/networkTopo/models/LinkDynamicStyleExecutor.js +7 -63
- package/es/networkTopo/services/topo/basic.js +15 -8
- package/es/networkTopo/utils/edgeGroupTagUtil.js +2 -2
- package/es/networkTopo/utils/exitLinkUtil.js +23 -11
- package/es/networkTopo/utils/relateTopoDataUtil.js +96 -0
- package/es/style.js +1 -1
- package/es/utils/clusterUtil.js +3 -3
- package/es/utils/htElementUtils.js +16 -84
- package/lib/components/ResourceSelectDrawer/ResourceSelectDrawer.js +1 -1
- package/lib/core/components/TopoView/topoView.js +15 -19
- package/lib/core/editor/components/Toolbar/widgets/EdgeColorButton/EdgeColorButton.js +2 -2
- package/lib/core/editor/components/Toolbar/widgets/EdgeTypeButton/LineType.js +5 -14
- package/lib/core/editor/components/Toolbar/widgets/FontFamilyWidget.js +3 -28
- package/lib/core/editor/components/Toolbar/widgets/FontSizeWidget.js +3 -28
- package/lib/core/editor/components/Toolbar/widgets/FontStyleButton.js +6 -56
- package/lib/core/editor/components/Toolbar/widgets/components/FontFamilySelect.js +38 -0
- package/lib/core/editor/components/Toolbar/widgets/components/FontSizeSelect.js +38 -0
- package/lib/core/editor/components/Toolbar/widgets/components/FontStyleSelect.js +83 -0
- package/lib/core/editor/components/settings/core/updateElementProperty.js +7 -2
- package/lib/core/editor/components/settings/propertyViews/view/GlobalEdgeToggle.js +2 -2
- package/lib/core/editor/hooks/useNewElementTheme.js +20 -16
- package/lib/core/editor/utils/edgeTypeStyleUtil.js +10 -33
- package/lib/core/hooks/useGraphAlarmDisplay.js +4 -0
- package/lib/core/hooks/usePolling.js +6 -5
- package/lib/core/hooks/useTopoEdit.js +212 -272
- package/lib/core/models/AttributeMetricDisplay.js +6 -6
- package/lib/core/models/HistoryManager.js +13 -17
- package/lib/core/models/TopoApp.js +39 -43
- package/lib/core/models/topoData.js +7 -14
- package/lib/core/models/utils/linkUtils.js +36 -27
- package/lib/core/store/models/topoConfig.js +20 -31
- package/lib/core/utils/edgeUtil.js +8 -10
- package/lib/core/viewer/components/plugins/ElementDetailDrawer/hooks/useElementDetailManager.js +3 -2
- package/lib/networkTopo/models/EdgeGroupTagTipBuilder.js +6 -6
- package/lib/networkTopo/models/LinkDynamicStyleExecutor.js +6 -64
- package/lib/networkTopo/services/topo/basic.js +21 -8
- package/lib/networkTopo/utils/edgeGroupTagUtil.js +2 -2
- package/lib/networkTopo/utils/exitLinkUtil.js +23 -11
- package/lib/networkTopo/utils/relateTopoDataUtil.js +109 -0
- package/lib/style.js +1 -1
- package/lib/utils/clusterUtil.js +2 -2
- package/lib/utils/htElementUtils.js +19 -93
- package/package.json +2 -2
- package/es/networkTopo/models/LinkTagsTipsBuilder.js +0 -235
- package/lib/networkTopo/models/LinkTagsTipsBuilder.js +0 -245
package/lib/core/viewer/components/plugins/ElementDetailDrawer/hooks/useElementDetailManager.js
CHANGED
|
@@ -9,6 +9,8 @@ var _react = _interopRequireWildcard(require("react"));
|
|
|
9
9
|
|
|
10
10
|
var _DefaultDetailContent = _interopRequireDefault(require("../../ResourceDetail/DefaultDetailContent"));
|
|
11
11
|
|
|
12
|
+
var _htElementUtils = require("../../../../../../utils/htElementUtils");
|
|
13
|
+
|
|
12
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); }
|
|
13
15
|
|
|
14
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; }
|
|
@@ -74,9 +76,8 @@ function useElementDetailManager(props) {
|
|
|
74
76
|
}
|
|
75
77
|
|
|
76
78
|
function openByHtElement(htElement) {
|
|
77
|
-
var isEdgeGroupAgent = htElement instanceof ht.Edge && htElement.isEdgeGroupAgent() && !htElement.s('edge.expanded');
|
|
78
79
|
open({
|
|
79
|
-
id: isEdgeGroupAgent || !htElement.getTag() ? "ht:" + htElement.getId() : htElement.getTag(),
|
|
80
|
+
id: (0, _htElementUtils.isEdgeGroupAgent)(htElement) || !htElement.getTag() ? "ht:" + htElement.getId() : htElement.getTag(),
|
|
80
81
|
htElement: htElement
|
|
81
82
|
});
|
|
82
83
|
}
|
|
@@ -22,11 +22,11 @@ var EdgeGroupTagTipBuilder = /*#__PURE__*/function () {
|
|
|
22
22
|
|
|
23
23
|
var topo = this.topo;
|
|
24
24
|
var dm = this.topo.getDataModel();
|
|
25
|
-
var
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
var linkId = (0, _edgeGroupTagUtil.getEdgeGroupLinkIdConfig)(
|
|
29
|
-
var edgeGroupId = [
|
|
25
|
+
var edgeGroupAgents = (0, _htElementUtils.getEdgeGroupAgents)(dm);
|
|
26
|
+
var edgeGroupsTagsTips = edgeGroupAgents.map(function (edgeGroupAgent) {
|
|
27
|
+
// 获取配置的链路
|
|
28
|
+
var linkId = (0, _edgeGroupTagUtil.getEdgeGroupLinkIdConfig)(edgeGroupAgent, topo);
|
|
29
|
+
var edgeGroupId = [edgeGroupAgent.getSource().getId(), edgeGroupAgent.getTarget().getId()];
|
|
30
30
|
var data = {
|
|
31
31
|
tags: [],
|
|
32
32
|
tips: []
|
|
@@ -37,7 +37,7 @@ var EdgeGroupTagTipBuilder = /*#__PURE__*/function () {
|
|
|
37
37
|
}
|
|
38
38
|
|
|
39
39
|
return {
|
|
40
|
-
htId:
|
|
40
|
+
htId: edgeGroupAgent.getId(),
|
|
41
41
|
edgeGroupId: edgeGroupId,
|
|
42
42
|
tags: data.tags,
|
|
43
43
|
tips: data.tips,
|
|
@@ -3,14 +3,10 @@
|
|
|
3
3
|
exports.__esModule = true;
|
|
4
4
|
exports["default"] = void 0;
|
|
5
5
|
|
|
6
|
-
var _componentTopologyUtils = require("@riil-frontend/component-topology-utils");
|
|
7
|
-
|
|
8
6
|
var _clusterUtil = require("../../utils/clusterUtil");
|
|
9
7
|
|
|
10
8
|
var _htElementUtils = require("../../utils/htElementUtils");
|
|
11
9
|
|
|
12
|
-
var _linkUtil = require("../utils/linkUtil");
|
|
13
|
-
|
|
14
10
|
// network_link.actual_bandwidth
|
|
15
11
|
function calcEdgeWidth(actualBandwidth) {
|
|
16
12
|
if (!actualBandwidth) {
|
|
@@ -61,16 +57,17 @@ var LinkDynamicStyleExecutor = /*#__PURE__*/function () {
|
|
|
61
57
|
var _proto = LinkDynamicStyleExecutor.prototype;
|
|
62
58
|
|
|
63
59
|
_proto.execute = function execute() {
|
|
64
|
-
var
|
|
60
|
+
var _topo$historyManager,
|
|
61
|
+
_this = this,
|
|
62
|
+
_topo$historyManager2;
|
|
65
63
|
|
|
66
64
|
var topo = this.topo;
|
|
67
65
|
|
|
68
66
|
var _topo$dataModel$getDa = topo.dataModel.getData(),
|
|
69
|
-
links = _topo$dataModel$getDa.links
|
|
70
|
-
linkGroups = _topo$dataModel$getDa.linkGroups;
|
|
67
|
+
links = _topo$dataModel$getDa.links;
|
|
71
68
|
|
|
72
69
|
var dataModel = this.topo.getDataModel();
|
|
73
|
-
|
|
70
|
+
(_topo$historyManager = topo.historyManager) === null || _topo$historyManager === void 0 ? void 0 : _topo$historyManager.setDisabled(true, '链路动态粗细'); // 1、如果连线可见,设置线宽
|
|
74
71
|
|
|
75
72
|
links.forEach(function (link) {
|
|
76
73
|
var edge = dataModel.getDataByTag(link.id);
|
|
@@ -78,63 +75,8 @@ var LinkDynamicStyleExecutor = /*#__PURE__*/function () {
|
|
|
78
75
|
if (edge) {
|
|
79
76
|
edge.s('edge.width', _this.calcLinkEdgeWidth(link));
|
|
80
77
|
}
|
|
81
|
-
}); // 2、如果连线组关联链路并可见,设置线宽
|
|
82
|
-
|
|
83
|
-
linkGroups.forEach(function (link) {
|
|
84
|
-
// 聚合链路是连线/连线组,并可以查询到
|
|
85
|
-
var edge = topo.getDataModel().getDataByTag(link.id);
|
|
86
|
-
|
|
87
|
-
if (edge) {
|
|
88
|
-
edge.s('edge.width', _this.calcLinkEdgeWidth(link));
|
|
89
|
-
return;
|
|
90
|
-
} // 聚合链路是连线组(编辑模式还未关联业务信息)
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
var edgeGroup = (0, _htElementUtils.getEdgeGroupByNodeTags)(dataModel, link.source, link.target);
|
|
94
|
-
|
|
95
|
-
if (edgeGroup) {
|
|
96
|
-
var edgeGroupAgent = edgeGroup.getEdgeGroupAgent(); // 判断是显示的连线组元素
|
|
97
|
-
|
|
98
|
-
if (edgeGroupAgent) {
|
|
99
|
-
edgeGroup.getEdgeGroupAgent().s('edge.width', _this.calcLinkEdgeWidth(link));
|
|
100
|
-
}
|
|
101
|
-
} else {
|
|
102
|
-
_componentTopologyUtils.rlog.warn('动态链路样式执行:未找到聚合链路的ht元素', link);
|
|
103
|
-
}
|
|
104
|
-
}); // 3、如果连线组未关联链路并可见,设置线宽。
|
|
105
|
-
|
|
106
|
-
var edges = (0, _htElementUtils.getEdges)(dataModel);
|
|
107
|
-
edges.forEach(function (edge) {
|
|
108
|
-
try {
|
|
109
|
-
// 获取两端代理节点
|
|
110
|
-
var sourceAgent = edge.getSourceAgent();
|
|
111
|
-
var targetAgent = edge.getTargetAgent();
|
|
112
|
-
var sourceId = sourceAgent.getTag();
|
|
113
|
-
var targetId = targetAgent.getTag(); // 查询是否有聚合链路
|
|
114
|
-
|
|
115
|
-
var aggLink = linkGroups.find(function (link) {
|
|
116
|
-
return link.source === sourceId && link.target === targetId || link.target === sourceId && link.source === targetId;
|
|
117
|
-
}); // 如果连线组未关联链路并可见
|
|
118
|
-
|
|
119
|
-
if (!aggLink && edge.isEdgeGroupAgent()) {
|
|
120
|
-
// 查询两端代理节点(包含子节点)间的子链路列表
|
|
121
|
-
var sourceCiIds = getChildrenNodeCiIds([sourceAgent]);
|
|
122
|
-
var targetCiIds = getChildrenNodeCiIds([targetAgent]);
|
|
123
|
-
var aggLinks = (0, _linkUtil.getLinksBetweenNodes)(linkGroups, sourceCiIds, targetCiIds);
|
|
124
|
-
var phyLinks = (0, _linkUtil.getLinksBetweenNodes)(links, sourceCiIds, targetCiIds);
|
|
125
|
-
var linkBetweenNodes = aggLinks.length ? aggLinks : phyLinks; // 如果有子链路,计算线宽并设置
|
|
126
|
-
|
|
127
|
-
if (linkBetweenNodes.length) {
|
|
128
|
-
var edgeWidth = _this.calcEdgeGroupEdgeWidth(linkBetweenNodes);
|
|
129
|
-
|
|
130
|
-
edge.s('edge.width', edgeWidth);
|
|
131
|
-
}
|
|
132
|
-
}
|
|
133
|
-
} catch (error) {
|
|
134
|
-
_componentTopologyUtils.rlog.error('连线组未关联链路并可见,设置线宽:异常', edge, error);
|
|
135
|
-
}
|
|
136
78
|
});
|
|
137
|
-
topo.historyManager
|
|
79
|
+
(_topo$historyManager2 = topo.historyManager) === null || _topo$historyManager2 === void 0 ? void 0 : _topo$historyManager2.setDisabled(false, '链路动态粗细');
|
|
138
80
|
}
|
|
139
81
|
/**
|
|
140
82
|
* 处理单个连线组切换。有链路时设置
|
|
@@ -23,7 +23,14 @@ var _model = require("../model");
|
|
|
23
23
|
|
|
24
24
|
var _exitLinkUtil = require("../../utils/exitLinkUtil");
|
|
25
25
|
|
|
26
|
+
var processBothTopoDataUtil = _interopRequireWildcard(require("../../utils/relateTopoDataUtil"));
|
|
27
|
+
|
|
26
28
|
var _excluded = ["groups", "resources"];
|
|
29
|
+
|
|
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); }
|
|
31
|
+
|
|
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; }
|
|
33
|
+
|
|
27
34
|
var API_ROOT = _constants.TOPO_API_ROOT;
|
|
28
35
|
/**
|
|
29
36
|
* 拓扑图(看做一个容器)的“父容器”ID
|
|
@@ -406,16 +413,19 @@ var _default = (0, _extends2["default"])({
|
|
|
406
413
|
|
|
407
414
|
case 2:
|
|
408
415
|
result = _context12.sent;
|
|
409
|
-
|
|
416
|
+
result = (0, _extends2["default"])({}, result, {
|
|
410
417
|
nodes: (_result$nodes = result.nodes) !== null && _result$nodes !== void 0 ? _result$nodes : [],
|
|
411
418
|
links: ((_result$links = result.links) !== null && _result$links !== void 0 ? _result$links : []).map(function (item) {
|
|
412
419
|
return (0, _extends2["default"])({}, item, {
|
|
413
420
|
ciType: 'network_link'
|
|
414
421
|
});
|
|
415
422
|
})
|
|
416
|
-
})
|
|
423
|
+
});
|
|
424
|
+
result = (0, _exitLinkUtil.processExitLink)(result);
|
|
425
|
+
result = processBothTopoDataUtil.processBothTopoData(result);
|
|
426
|
+
return _context12.abrupt("return", result);
|
|
417
427
|
|
|
418
|
-
case
|
|
428
|
+
case 7:
|
|
419
429
|
case "end":
|
|
420
430
|
return _context12.stop();
|
|
421
431
|
}
|
|
@@ -430,7 +440,7 @@ var _default = (0, _extends2["default"])({
|
|
|
430
440
|
* @param {Array} groups
|
|
431
441
|
* @returns
|
|
432
442
|
*/
|
|
433
|
-
getTopoDataByResource: function getTopoDataByResource(id, resources, groups) {
|
|
443
|
+
getTopoDataByResource: function getTopoDataByResource(id, resources, groups, relateTopoIdList) {
|
|
434
444
|
return (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee13() {
|
|
435
445
|
var _result$nodes2, _result$links2;
|
|
436
446
|
|
|
@@ -450,20 +460,23 @@ var _default = (0, _extends2["default"])({
|
|
|
450
460
|
|
|
451
461
|
obj = prepareGroupParams(data);
|
|
452
462
|
_context13.next = 5;
|
|
453
|
-
return _componentTopologyUtils.request.post(API_ROOT + "/structure/byCondition/" + id, (0, _extends2["default"])({}, obj
|
|
463
|
+
return _componentTopologyUtils.request.post(API_ROOT + "/structure/byCondition/" + id, (0, _extends2["default"])({}, obj, {
|
|
464
|
+
relateTopoIdList: relateTopoIdList
|
|
465
|
+
}));
|
|
454
466
|
|
|
455
467
|
case 5:
|
|
456
468
|
result = _context13.sent;
|
|
457
|
-
|
|
469
|
+
result = (0, _extends2["default"])({}, result, {
|
|
458
470
|
nodes: (_result$nodes2 = result.nodes) !== null && _result$nodes2 !== void 0 ? _result$nodes2 : [],
|
|
459
471
|
links: ((_result$links2 = result.links) !== null && _result$links2 !== void 0 ? _result$links2 : []).map(function (item) {
|
|
460
472
|
return (0, _extends2["default"])({}, item, {
|
|
461
473
|
ciType: 'network_link'
|
|
462
474
|
});
|
|
463
475
|
})
|
|
464
|
-
})
|
|
476
|
+
});
|
|
477
|
+
return _context13.abrupt("return", (0, _exitLinkUtil.processByConditionResult)(result, obj.groups));
|
|
465
478
|
|
|
466
|
-
case
|
|
479
|
+
case 8:
|
|
467
480
|
case "end":
|
|
468
481
|
return _context13.stop();
|
|
469
482
|
}
|
|
@@ -65,8 +65,8 @@ function getEdgeGroupLinkIdConfig(edgeGroup, topo) {
|
|
|
65
65
|
}
|
|
66
66
|
|
|
67
67
|
function getEdgeGroupConfigId(edgeGroup) {
|
|
68
|
-
var sourceNode = edgeGroup.
|
|
69
|
-
var targetNode = edgeGroup.
|
|
68
|
+
var sourceNode = edgeGroup.getSource();
|
|
69
|
+
var targetNode = edgeGroup.getTarget();
|
|
70
70
|
var sourceId = sourceNode.a('uuid');
|
|
71
71
|
var targetId = targetNode.a('uuid');
|
|
72
72
|
return [sourceId, targetId].sort().join(',');
|
|
@@ -251,9 +251,10 @@ function updateLinkTarget(links, nodes) {
|
|
|
251
251
|
|
|
252
252
|
|
|
253
253
|
function processByConditionResult(topoData, groupConfigs) {
|
|
254
|
-
var
|
|
254
|
+
var groups = topoData.groups,
|
|
255
|
+
nodes = topoData.nodes,
|
|
255
256
|
links = topoData.links;
|
|
256
|
-
var ipNodes = getIpNodes(groupConfigs,
|
|
257
|
+
var ipNodes = getIpNodes(groupConfigs, topoData); // 出口链路目的端设置为IP节点或者ping资源节点id
|
|
257
258
|
|
|
258
259
|
var newLinks = updateLinkTarget(links, nodes);
|
|
259
260
|
return (0, _extends2["default"])({}, topoData, {
|
|
@@ -261,15 +262,26 @@ function processByConditionResult(topoData, groupConfigs) {
|
|
|
261
262
|
links: newLinks
|
|
262
263
|
});
|
|
263
264
|
|
|
264
|
-
function getIpNodes(groupConfigs,
|
|
265
|
-
var
|
|
266
|
-
|
|
267
|
-
|
|
268
|
-
|
|
269
|
-
|
|
270
|
-
|
|
271
|
-
|
|
265
|
+
function getIpNodes(groupConfigs, _ref) {
|
|
266
|
+
var groups = _ref.groups,
|
|
267
|
+
nodes = _ref.nodes;
|
|
268
|
+
var ipNodes = [];
|
|
269
|
+
groupConfigs.forEach(function (g) {
|
|
270
|
+
g.condition.linkIps // 过滤ping资源对应的ip节点
|
|
271
|
+
.filter(function (ip) {
|
|
272
|
+
return !findPingNode(nodes, ip);
|
|
273
|
+
}).map(function (ip) {
|
|
274
|
+
var topoGroup = g.topoGroup;
|
|
275
|
+
var group = groups.find(function (item) {
|
|
276
|
+
return item.id === topoGroup.id || item.tag === topoGroup.tag;
|
|
277
|
+
});
|
|
278
|
+
ipNodes.push((0, _extends2["default"])({}, buildIpNode(ip), {
|
|
279
|
+
// 解决区域里有ip添加资源ip消失的问题
|
|
280
|
+
'groupId': group === null || group === void 0 ? void 0 : group.id,
|
|
281
|
+
'groupTag': group === null || group === void 0 ? void 0 : group.tag
|
|
282
|
+
}));
|
|
283
|
+
});
|
|
272
284
|
});
|
|
273
|
-
return
|
|
285
|
+
return ipNodes;
|
|
274
286
|
}
|
|
275
287
|
}
|
|
@@ -0,0 +1,109 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
|
|
5
|
+
exports.__esModule = true;
|
|
6
|
+
exports.buildTopoNode = buildTopoNode;
|
|
7
|
+
exports.processBothTopoData = processBothTopoData;
|
|
8
|
+
exports.processByConditionTopoData = processByConditionTopoData;
|
|
9
|
+
|
|
10
|
+
var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
|
|
11
|
+
|
|
12
|
+
// 关联拓扑数据
|
|
13
|
+
|
|
14
|
+
/**
|
|
15
|
+
* 升级历史数据:子拓扑节点序列化数据
|
|
16
|
+
* 构造子拓扑节点
|
|
17
|
+
* 构造子拓扑链路
|
|
18
|
+
* @param {*} ctx
|
|
19
|
+
*/
|
|
20
|
+
function processBothTopoData(topoData) {
|
|
21
|
+
var nodes = topoData.nodes,
|
|
22
|
+
links = topoData.links;
|
|
23
|
+
var serialize = upgradeSerializeOldTopoNode(topoData.serialize);
|
|
24
|
+
return (0, _extends2["default"])({}, topoData, {
|
|
25
|
+
nodes: [].concat(nodes, buildTopoNodeDatasFromSerialize(serialize)),
|
|
26
|
+
serialize: serialize
|
|
27
|
+
});
|
|
28
|
+
}
|
|
29
|
+
/**
|
|
30
|
+
* 构造子拓扑节点
|
|
31
|
+
* 构造子拓扑链路
|
|
32
|
+
* @param {*} ctx
|
|
33
|
+
*/
|
|
34
|
+
|
|
35
|
+
|
|
36
|
+
function processByConditionTopoData(ctx) {
|
|
37
|
+
var topoData = ctx.topoData;
|
|
38
|
+
var nodes = topoData.nodes,
|
|
39
|
+
links = topoData.links;
|
|
40
|
+
return (0, _extends2["default"])({}, topoData);
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
function buildTopoNode(topoId) {
|
|
44
|
+
return {
|
|
45
|
+
id: "topo:" + topoId,
|
|
46
|
+
// name: ,
|
|
47
|
+
bindType: "topo",
|
|
48
|
+
// 绑定资源类型。关联资源 值为空,关联IP ip
|
|
49
|
+
bindIp: topoId,
|
|
50
|
+
// TODO 所属区域,从序列化拿
|
|
51
|
+
// 'groupId': null,
|
|
52
|
+
// 'groupTag': null,
|
|
53
|
+
// 'attributes': [],
|
|
54
|
+
// 'metrics': [],
|
|
55
|
+
type: "node",
|
|
56
|
+
isbinding: true,
|
|
57
|
+
// 'dtype': 'device'
|
|
58
|
+
operation: "delete"
|
|
59
|
+
};
|
|
60
|
+
}
|
|
61
|
+
/**
|
|
62
|
+
* 升级历史数据:子拓扑节点序列化数据
|
|
63
|
+
* @param {*} serialize
|
|
64
|
+
*/
|
|
65
|
+
|
|
66
|
+
|
|
67
|
+
function upgradeSerializeOldTopoNode(serialize) {
|
|
68
|
+
if (serialize) {
|
|
69
|
+
var isOldTopoNode = function isOldTopoNode(ele) {
|
|
70
|
+
return isTopoNode(ele) && !ele.p.tag;
|
|
71
|
+
};
|
|
72
|
+
|
|
73
|
+
var oldTopoNodes = serialize.d.filter(isOldTopoNode);
|
|
74
|
+
oldTopoNodes.forEach(function (node) {
|
|
75
|
+
var _node$a;
|
|
76
|
+
|
|
77
|
+
var topoId = (_node$a = node.a) === null || _node$a === void 0 ? void 0 : _node$a.bindTopo;
|
|
78
|
+
node.a = (0, _extends2["default"])({}, node.a, buildTopoNode(topoId));
|
|
79
|
+
node.p.tag = "topo:" + topoId;
|
|
80
|
+
});
|
|
81
|
+
}
|
|
82
|
+
|
|
83
|
+
return serialize;
|
|
84
|
+
}
|
|
85
|
+
|
|
86
|
+
function isTopoNode(ele) {
|
|
87
|
+
var _ele$a;
|
|
88
|
+
|
|
89
|
+
return !!((_ele$a = ele.a) !== null && _ele$a !== void 0 && _ele$a.bindTopo);
|
|
90
|
+
}
|
|
91
|
+
|
|
92
|
+
function buildTopoNodeDatasFromSerialize(serialize) {
|
|
93
|
+
if (!serialize) {
|
|
94
|
+
return [];
|
|
95
|
+
}
|
|
96
|
+
|
|
97
|
+
var topoNodes = serialize.d.filter(isTopoNode);
|
|
98
|
+
var topoNodeDatas = topoNodes.map(function (node) {
|
|
99
|
+
var _node$a2;
|
|
100
|
+
|
|
101
|
+
var topoId = (_node$a2 = node.a) === null || _node$a2 === void 0 ? void 0 : _node$a2.bindTopo;
|
|
102
|
+
return buildTopoNode(topoId);
|
|
103
|
+
});
|
|
104
|
+
return topoNodeDatas;
|
|
105
|
+
}
|
|
106
|
+
|
|
107
|
+
function getRelateTopoIdsFromSerialize(serialize) {
|
|
108
|
+
return serialize;
|
|
109
|
+
}
|
package/lib/style.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
require('@riil-frontend/component-topology-graph/lib/style');
|
|
2
2
|
require('@alifd/next/lib/box/style');
|
|
3
|
-
require('@riil-frontend/component-topology-utils/lib/style');
|
|
4
3
|
require('@alifd/next/lib/message/style');
|
|
4
|
+
require('@riil-frontend/component-topology-utils/lib/style');
|
|
5
5
|
require('@riil-frontend/utils/lib/style');
|
|
6
6
|
require('@riil-frontend/component-riil-event-emitter/lib/style');
|
|
7
7
|
require('@alifd/next/lib/menu-button/style');
|
package/lib/utils/clusterUtil.js
CHANGED
|
@@ -103,7 +103,7 @@ function isClusterHtElement(element) {
|
|
|
103
103
|
}
|
|
104
104
|
|
|
105
105
|
function isClusterMemberHtElement(element) {
|
|
106
|
-
return element
|
|
106
|
+
return (element === null || element === void 0 ? void 0 : element.getParent()) && isClusterHtElement(element.getParent());
|
|
107
107
|
}
|
|
108
108
|
/**
|
|
109
109
|
* 集群无权限时收起
|
|
@@ -140,7 +140,7 @@ function upgradeV103GraphClusterNode(topo, topoData) {
|
|
|
140
140
|
var topoDataTrans = (0, _utils.transformTopoElements)(topoData);
|
|
141
141
|
var dm = topo.getDataModel();
|
|
142
142
|
var unExistedList = topoDataTrans.filter(function (data) {
|
|
143
|
-
return !(0, _htElementUtils.
|
|
143
|
+
return !(0, _htElementUtils.containsElement)(dm, data);
|
|
144
144
|
});
|
|
145
145
|
|
|
146
146
|
if (!unExistedList.length) {
|
|
@@ -3,11 +3,9 @@
|
|
|
3
3
|
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
4
|
|
|
5
5
|
exports.__esModule = true;
|
|
6
|
+
exports.containsElement = containsElement;
|
|
6
7
|
exports.getEdgeDatas = getEdgeDatas;
|
|
7
8
|
exports.getEdgeGroupAgents = getEdgeGroupAgents;
|
|
8
|
-
exports.getEdgeGroupByNodeTags = getEdgeGroupByNodeTags;
|
|
9
|
-
exports.getEdgeGroupByNodes = getEdgeGroupByNodes;
|
|
10
|
-
exports.getEdgeGroups = getEdgeGroups;
|
|
11
9
|
exports.getEdges = getEdges;
|
|
12
10
|
exports.getEdgesBetweenNodes = getEdgesBetweenNodes;
|
|
13
11
|
exports.getElements = getElements;
|
|
@@ -27,8 +25,7 @@ exports.getNodes = getNodes;
|
|
|
27
25
|
exports.getNodesByGroupIdOrTag = getNodesByGroupIdOrTag;
|
|
28
26
|
exports.isEdge = isEdge;
|
|
29
27
|
exports.isEdgeGroupAgent = isEdgeGroupAgent;
|
|
30
|
-
exports.
|
|
31
|
-
exports.isExistedElement = isExistedElement;
|
|
28
|
+
exports.isEdgeVisible = isEdgeVisible;
|
|
32
29
|
exports.isGroup = isGroup;
|
|
33
30
|
exports.isLayer = isLayer;
|
|
34
31
|
exports.isNode = isNode;
|
|
@@ -172,10 +169,6 @@ function getNodeData(element) {
|
|
|
172
169
|
function getEdges(dataModel) {
|
|
173
170
|
return getElements(dataModel).filter(isValidEdge);
|
|
174
171
|
}
|
|
175
|
-
|
|
176
|
-
function isEdgeGroupExpanded(edge) {
|
|
177
|
-
return isEdge(edge) && edge.getEdgeGroup() && !!edge.s("edge.expanded");
|
|
178
|
-
}
|
|
179
172
|
/**
|
|
180
173
|
* 是否连线组代理
|
|
181
174
|
* @param {*} edge
|
|
@@ -184,7 +177,11 @@ function isEdgeGroupExpanded(edge) {
|
|
|
184
177
|
|
|
185
178
|
|
|
186
179
|
function isEdgeGroupAgent(edge) {
|
|
187
|
-
return isEdge(edge) && edge.
|
|
180
|
+
return isEdge(edge) && edge.a('x.edgegroup.isEdgeGroup');
|
|
181
|
+
}
|
|
182
|
+
|
|
183
|
+
function isEdgeVisible(edge) {
|
|
184
|
+
return edge.s('2d.visible') || edge.s('2d.visible') === undefined;
|
|
188
185
|
}
|
|
189
186
|
/**
|
|
190
187
|
* 获得两个节点间的连线列表
|
|
@@ -212,66 +209,20 @@ function getEdgesBetweenNodes(node1, node2) {
|
|
|
212
209
|
return edges;
|
|
213
210
|
}
|
|
214
211
|
/**
|
|
215
|
-
*
|
|
216
|
-
* @
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
function getEdgeGroupByNodes(node1, node2) {
|
|
221
|
-
var htEdgeGroup = null;
|
|
222
|
-
getEdgesBetweenNodes(node1, node2).forEach(function (edge) {
|
|
223
|
-
if (!htEdgeGroup) {
|
|
224
|
-
htEdgeGroup = edge.getEdgeGroup();
|
|
225
|
-
}
|
|
226
|
-
});
|
|
227
|
-
|
|
228
|
-
if (!htEdgeGroup) {
|
|
229
|
-
return null;
|
|
230
|
-
}
|
|
231
|
-
|
|
232
|
-
return new _EdgeGroup["default"](htEdgeGroup);
|
|
233
|
-
}
|
|
234
|
-
/**
|
|
235
|
-
* 获得节点间的连线组,连线<=1时返回null
|
|
236
|
-
* @returns
|
|
212
|
+
* 获得连线组连线列表
|
|
213
|
+
* @param {*} dataModel
|
|
214
|
+
* @returns
|
|
237
215
|
*/
|
|
238
216
|
|
|
239
217
|
|
|
240
|
-
function getEdgeGroupByNodeTags(dataModel, nodeTag1, nodeTag2) {
|
|
241
|
-
var node1 = dataModel.getDataByTag(nodeTag1);
|
|
242
|
-
var node2 = dataModel.getDataByTag(nodeTag2);
|
|
243
|
-
|
|
244
|
-
if (!node1 || !node2) {
|
|
245
|
-
console.warn("getEdgeGroupByNodes 未找到节点", {
|
|
246
|
-
node1: node1,
|
|
247
|
-
node2: node2,
|
|
248
|
-
nodeTag1: nodeTag1,
|
|
249
|
-
nodeTag2: nodeTag2
|
|
250
|
-
});
|
|
251
|
-
return null;
|
|
252
|
-
}
|
|
253
|
-
|
|
254
|
-
return getEdgeGroupByNodes(node1, node2);
|
|
255
|
-
}
|
|
256
|
-
|
|
257
|
-
function getEdgeGroups(dataModel) {
|
|
258
|
-
var edgeGroups = [];
|
|
259
|
-
getEdges(dataModel).forEach(function (edge) {
|
|
260
|
-
var group = edge.getEdgeGroup();
|
|
261
|
-
|
|
262
|
-
if (group && !edgeGroups.includes(group)) {
|
|
263
|
-
edgeGroups.push(group);
|
|
264
|
-
}
|
|
265
|
-
});
|
|
266
|
-
return edgeGroups;
|
|
267
|
-
}
|
|
268
|
-
|
|
269
218
|
function getEdgeGroupAgents(dataModel) {
|
|
270
219
|
return getEdges(dataModel).filter(isEdgeGroupAgent);
|
|
271
220
|
}
|
|
272
221
|
|
|
273
222
|
function getEdgeDatas(dataModel) {
|
|
274
|
-
return getEdges(dataModel).
|
|
223
|
+
return getEdges(dataModel).filter(function (edge) {
|
|
224
|
+
return !isEdgeGroupAgent(edge);
|
|
225
|
+
}).map(function (element) {
|
|
275
226
|
var _element$getSource, _element$getTarget;
|
|
276
227
|
|
|
277
228
|
return (0, _extends3["default"])({}, element.getAttrObject(), {
|
|
@@ -379,10 +330,14 @@ function setElementRuntimeStyle(element, name, value) {
|
|
|
379
330
|
}
|
|
380
331
|
/**
|
|
381
332
|
* 判断拓扑图是否存在元素
|
|
333
|
+
*
|
|
334
|
+
* @param {*} dataModel
|
|
335
|
+
* @param {{id?: string, tag?: string}} data
|
|
336
|
+
* @returns
|
|
382
337
|
*/
|
|
383
338
|
|
|
384
339
|
|
|
385
|
-
function
|
|
340
|
+
function containsElement(dataModel, data) {
|
|
386
341
|
if (dataModel.getDataByTag(data.id)) {
|
|
387
342
|
return true;
|
|
388
343
|
} // 识别区域
|
|
@@ -391,34 +346,5 @@ function isExistedElement(htTopo, dataModel, data) {
|
|
|
391
346
|
var element = getElements(dataModel).find(function (item) {
|
|
392
347
|
return data.tag && item.a("tag") === data.tag;
|
|
393
348
|
});
|
|
394
|
-
|
|
395
|
-
if (element) {
|
|
396
|
-
return true;
|
|
397
|
-
} // 连线/连线组
|
|
398
|
-
|
|
399
|
-
|
|
400
|
-
var edges = getEdges(dataModel);
|
|
401
|
-
|
|
402
|
-
for (var i = 0; i < edges.length; i++) {
|
|
403
|
-
var edge = edges[i]; // 如果连线组折叠,判断子连线
|
|
404
|
-
|
|
405
|
-
var edgeData = htTopo.getEdgeData(edge);
|
|
406
|
-
|
|
407
|
-
if (edgeData) {
|
|
408
|
-
// eslint-disable-next-line no-underscore-dangle
|
|
409
|
-
var id = edgeData._attrObject.id;
|
|
410
|
-
|
|
411
|
-
if (id === data.id) {
|
|
412
|
-
return true;
|
|
413
|
-
}
|
|
414
|
-
} // 如果连线组展开,判断连线组
|
|
415
|
-
// eslint-disable-next-line no-underscore-dangle
|
|
416
|
-
|
|
417
|
-
|
|
418
|
-
if (edge.__edgeGroup && edge.__edgeGroup._tag === data.id) {
|
|
419
|
-
return true;
|
|
420
|
-
}
|
|
421
|
-
}
|
|
422
|
-
|
|
423
|
-
return false;
|
|
349
|
+
return !!element;
|
|
424
350
|
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@riil-frontend/component-topology",
|
|
3
|
-
"version": "13.0.0-dev.
|
|
3
|
+
"version": "13.0.0-dev.3",
|
|
4
4
|
"description": "拓扑",
|
|
5
5
|
"scripts": {
|
|
6
6
|
"start": "build-scripts start",
|
|
@@ -123,6 +123,6 @@
|
|
|
123
123
|
"access": "public"
|
|
124
124
|
},
|
|
125
125
|
"license": "MIT",
|
|
126
|
-
"homepage": "https://unpkg.com/@riil-frontend/component-topology@13.0.0-dev.
|
|
126
|
+
"homepage": "https://unpkg.com/@riil-frontend/component-topology@13.0.0-dev.3/build/index.html",
|
|
127
127
|
"gitHead": "2da19ffccbb7ca60a8acf396e39f542c68bb33f5"
|
|
128
128
|
}
|