@riil-frontend/component-topology 4.0.4 → 4.0.5
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/index.js +4 -4
- package/es/core/components/TopoView/topoView.js +3 -1
- package/es/core/models/TopoApp.js +1 -1
- package/es/utils/clusterUtil.js +71 -0
- package/es/utils/topoData.js +17 -8
- package/lib/core/components/TopoView/topoView.js +2 -0
- package/lib/core/models/TopoApp.js +1 -1
- package/lib/utils/clusterUtil.js +76 -0
- package/lib/utils/topoData.js +18 -7
- package/package.json +2 -2
|
@@ -19,7 +19,7 @@ import useAlarm from "../../../hooks/useAlarm";
|
|
|
19
19
|
import styles from "./TopoView.module.scss";
|
|
20
20
|
import useRouterAdapter from "../../hooks/useRouterAdapter";
|
|
21
21
|
import { fixLink } from "../../utils/graphLinkUtil";
|
|
22
|
-
import { handleClusterNoPermission } from "../../../utils/clusterUtil";
|
|
22
|
+
import { handleClusterNoPermission, upgradeV103GraphClusterNode } from "../../../utils/clusterUtil";
|
|
23
23
|
|
|
24
24
|
var Topology = function Topology(props) {
|
|
25
25
|
var _classnames, _graphViewProps$creat;
|
|
@@ -129,6 +129,7 @@ var Topology = function Topology(props) {
|
|
|
129
129
|
var handleGraphDataLoaded = useCallback(function () {
|
|
130
130
|
rlog.info("TopoView.handleGraphDataLoaded", topoData, topo.getDataModel().getDatas().toArray());
|
|
131
131
|
fixLink(topo);
|
|
132
|
+
upgradeV103GraphClusterNode(topo, topoData);
|
|
132
133
|
handleClusterNoPermission(topo);
|
|
133
134
|
updateEdgeExpanded(topo);
|
|
134
135
|
topoDispatchers.update({
|
|
@@ -142,6 +143,7 @@ var Topology = function Topology(props) {
|
|
|
142
143
|
var handleGraphLoaded = useCallback(function () {
|
|
143
144
|
rlog.info("TopoView.handleGraphLoaded", topoData, topo.getDataModel().getDatas().toArray());
|
|
144
145
|
fixLink(topo);
|
|
146
|
+
upgradeV103GraphClusterNode(topo, topoData);
|
|
145
147
|
handleClusterNoPermission(topo);
|
|
146
148
|
updateEdgeExpanded(topo);
|
|
147
149
|
topoDispatchers.update({
|
|
@@ -21,7 +21,7 @@ import PluginManager from "./PluginManager";
|
|
|
21
21
|
import topoFactory from "./topoFactory";
|
|
22
22
|
import ElementTagTipConfig from "./tagstips/ElementTagTipConfig"; // eslint-disable-next-line no-undef
|
|
23
23
|
|
|
24
|
-
var version = typeof "4.0.
|
|
24
|
+
var version = typeof "4.0.5" === 'string' ? "4.0.5" : null;
|
|
25
25
|
console.info("\u62D3\u6251\u7248\u672C: " + version);
|
|
26
26
|
/**
|
|
27
27
|
* 拓扑显示和编辑
|
package/es/utils/clusterUtil.js
CHANGED
|
@@ -3,7 +3,10 @@ import _extends from "@babel/runtime/helpers/extends";
|
|
|
3
3
|
/**
|
|
4
4
|
* 集群处理工具类
|
|
5
5
|
*/
|
|
6
|
+
import { transformTopoElements } from "@riil-frontend/component-topology-graph/es/utils";
|
|
7
|
+
import rlog from "@riil-frontend/component-topology-utils/es/rlog";
|
|
6
8
|
import { getGroups } from "./htElementUtils";
|
|
9
|
+
import { findGroupChildren } from "./topoData";
|
|
7
10
|
export function isCluster(node) {
|
|
8
11
|
return !!node.cluster;
|
|
9
12
|
}
|
|
@@ -86,4 +89,72 @@ export function handleClusterNoPermission(topo) {
|
|
|
86
89
|
group.setExpanded(false);
|
|
87
90
|
}
|
|
88
91
|
});
|
|
92
|
+
}
|
|
93
|
+
/**
|
|
94
|
+
* fix NEWITOM-22562 【1.0.3升级包集成】【网络拓扑】升级前创建的拓扑图,包含VSU集群,升级后不显示VSU集群了
|
|
95
|
+
* @param {*} topo
|
|
96
|
+
*/
|
|
97
|
+
|
|
98
|
+
export function upgradeV103GraphClusterNode(topo, topoData) {
|
|
99
|
+
var dm1 = topo.getDataModel();
|
|
100
|
+
dm1.removeDataByTag('00000000364831f0'); // FIXME
|
|
101
|
+
|
|
102
|
+
try {
|
|
103
|
+
doUpgrade();
|
|
104
|
+
} catch (error) {
|
|
105
|
+
rlog.error('upgradeV103GraphClusterNode', error);
|
|
106
|
+
}
|
|
107
|
+
|
|
108
|
+
function doUpgrade() {
|
|
109
|
+
// 查找图上未显示的集群、集群成员、关联的链路
|
|
110
|
+
var topoDataTrans = transformTopoElements(topoData);
|
|
111
|
+
var dm = topo.getDataModel();
|
|
112
|
+
var list = topoDataTrans.filter(function (data) {
|
|
113
|
+
return !dm.getDataByTag(data.id);
|
|
114
|
+
});
|
|
115
|
+
|
|
116
|
+
if (!list.length) {
|
|
117
|
+
return;
|
|
118
|
+
}
|
|
119
|
+
|
|
120
|
+
var groups = list.filter(function (item) {
|
|
121
|
+
return item.type === 'group';
|
|
122
|
+
});
|
|
123
|
+
var createElementsData = {
|
|
124
|
+
groups: groups,
|
|
125
|
+
nodes: list.filter(function (item) {
|
|
126
|
+
return item.type === 'node';
|
|
127
|
+
}),
|
|
128
|
+
links: list.filter(function (item) {
|
|
129
|
+
return item.type === 'link';
|
|
130
|
+
}),
|
|
131
|
+
linkGroups: list.filter(function (item) {
|
|
132
|
+
return item.type === 'linkGroup';
|
|
133
|
+
})
|
|
134
|
+
};
|
|
135
|
+
var htTopo = topo.getHtTopo();
|
|
136
|
+
htTopo.createElements(createElementsData);
|
|
137
|
+
groups.forEach(function (group) {
|
|
138
|
+
var groupElement = dm.getDataByTag(group.id); // 切换前图上如果存在集群内的节点,切换节点为集群后,移到集群内
|
|
139
|
+
|
|
140
|
+
findGroupChildren(topoDataTrans, group).forEach(function (child) {
|
|
141
|
+
var childEle = dm.getDataByTag(child.id);
|
|
142
|
+
|
|
143
|
+
if (childEle) {
|
|
144
|
+
childEle.setParent(groupElement);
|
|
145
|
+
}
|
|
146
|
+
}); // 如果序列化有,恢复区域位置
|
|
147
|
+
|
|
148
|
+
var deserializeDm = new ht.DataModel();
|
|
149
|
+
var jsonDeserialize = new ht.JSONSerializer(deserializeDm);
|
|
150
|
+
jsonDeserialize.deserialize(topoData.serialize, null, true);
|
|
151
|
+
var oldNode = deserializeDm.getDataByTag(group.id);
|
|
152
|
+
|
|
153
|
+
if (oldNode) {
|
|
154
|
+
groupElement.setSize(oldNode.getSize());
|
|
155
|
+
groupElement.setPosition(oldNode.getPosition());
|
|
156
|
+
groupElement.setImage(oldNode.getImage());
|
|
157
|
+
}
|
|
158
|
+
}); // 恢复手工画的线
|
|
159
|
+
}
|
|
89
160
|
}
|
package/es/utils/topoData.js
CHANGED
|
@@ -10,7 +10,7 @@ import buildEditorContextMenu from "../core/editor/contextmenu/buildContextmenu"
|
|
|
10
10
|
import mergeContextmenu from "../core/common/contextmenu/mergeContextmenu";
|
|
11
11
|
import { getEditorIcons } from "../core/common/icons/icon";
|
|
12
12
|
import { getBackgroundImageUrl } from "../core/utils/backgroundUtil";
|
|
13
|
-
import { processCluster } from "./clusterUtil";
|
|
13
|
+
import { isClusterHtElement, processCluster } from "./clusterUtil";
|
|
14
14
|
import { isGroup } from "./htElementUtils";
|
|
15
15
|
/**
|
|
16
16
|
* 查找数组中对应key的值为value的元素并返回,只查找第一个符合的元素
|
|
@@ -336,23 +336,32 @@ function buildGlobal(_ref2) {
|
|
|
336
336
|
canDragElementToGroup: function canDragElementToGroup(element, group) {
|
|
337
337
|
if (!isGroup(group)) {
|
|
338
338
|
return true;
|
|
339
|
-
}
|
|
339
|
+
} // 区域不能拖拽到区域
|
|
340
|
+
|
|
340
341
|
|
|
341
342
|
if (element.dtype === 'container' && isGroup(group)) {
|
|
342
343
|
return false;
|
|
343
|
-
}
|
|
344
|
+
} // 元素不能拖拽到集群
|
|
345
|
+
|
|
344
346
|
|
|
345
|
-
if (
|
|
347
|
+
if (isClusterHtElement(group)) {
|
|
346
348
|
return false;
|
|
347
349
|
}
|
|
348
350
|
|
|
349
|
-
|
|
351
|
+
rlog.debug(element, group);
|
|
350
352
|
return true;
|
|
351
353
|
},
|
|
352
354
|
// 图上元素能否拖动到区域中
|
|
353
|
-
canDragGraphElementsToGroup: function canDragGraphElementsToGroup(
|
|
354
|
-
|
|
355
|
-
|
|
355
|
+
canDragGraphElementsToGroup: function canDragGraphElementsToGroup(elements, targetGroup) {
|
|
356
|
+
rlog.debug('canDragGraphElementsToGroup', {
|
|
357
|
+
elements: elements,
|
|
358
|
+
targetGroup: targetGroup
|
|
359
|
+
}); // 非集群的区域不能拖拽到区域
|
|
360
|
+
|
|
361
|
+
if (elements.filter(function (ele) {
|
|
362
|
+
return isGroup(ele) && !isClusterHtElement(ele);
|
|
363
|
+
}).length && isGroup(targetGroup)) {
|
|
364
|
+
return false;
|
|
356
365
|
}
|
|
357
366
|
|
|
358
367
|
return true;
|
|
@@ -164,6 +164,7 @@ var Topology = function Topology(props) {
|
|
|
164
164
|
_rlog["default"].info("TopoView.handleGraphDataLoaded", topoData, topo.getDataModel().getDatas().toArray());
|
|
165
165
|
|
|
166
166
|
(0, _graphLinkUtil.fixLink)(topo);
|
|
167
|
+
(0, _clusterUtil.upgradeV103GraphClusterNode)(topo, topoData);
|
|
167
168
|
(0, _clusterUtil.handleClusterNoPermission)(topo);
|
|
168
169
|
(0, _edgeUtil.updateEdgeExpanded)(topo);
|
|
169
170
|
topoDispatchers.update({
|
|
@@ -178,6 +179,7 @@ var Topology = function Topology(props) {
|
|
|
178
179
|
_rlog["default"].info("TopoView.handleGraphLoaded", topoData, topo.getDataModel().getDatas().toArray());
|
|
179
180
|
|
|
180
181
|
(0, _graphLinkUtil.fixLink)(topo);
|
|
182
|
+
(0, _clusterUtil.upgradeV103GraphClusterNode)(topo, topoData);
|
|
181
183
|
(0, _clusterUtil.handleClusterNoPermission)(topo);
|
|
182
184
|
(0, _edgeUtil.updateEdgeExpanded)(topo);
|
|
183
185
|
topoDispatchers.update({
|
|
@@ -50,7 +50,7 @@ var _topoFactory = _interopRequireDefault(require("./topoFactory"));
|
|
|
50
50
|
var _ElementTagTipConfig = _interopRequireDefault(require("./tagstips/ElementTagTipConfig"));
|
|
51
51
|
|
|
52
52
|
// eslint-disable-next-line no-undef
|
|
53
|
-
var version = typeof "4.0.
|
|
53
|
+
var version = typeof "4.0.5" === 'string' ? "4.0.5" : null;
|
|
54
54
|
console.info("\u62D3\u6251\u7248\u672C: " + version);
|
|
55
55
|
/**
|
|
56
56
|
* 拓扑显示和编辑
|
package/lib/utils/clusterUtil.js
CHANGED
|
@@ -12,11 +12,18 @@ exports.isClusterMemberHtElement = isClusterMemberHtElement;
|
|
|
12
12
|
exports.processCluster = processCluster;
|
|
13
13
|
exports.processClusterChildNode = processClusterChildNode;
|
|
14
14
|
exports.processClusterChildrenNodes = processClusterChildrenNodes;
|
|
15
|
+
exports.upgradeV103GraphClusterNode = upgradeV103GraphClusterNode;
|
|
15
16
|
|
|
16
17
|
var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
|
|
17
18
|
|
|
19
|
+
var _utils = require("@riil-frontend/component-topology-graph/es/utils");
|
|
20
|
+
|
|
21
|
+
var _rlog = _interopRequireDefault(require("@riil-frontend/component-topology-utils/es/rlog"));
|
|
22
|
+
|
|
18
23
|
var _htElementUtils = require("./htElementUtils");
|
|
19
24
|
|
|
25
|
+
var _topoData = require("./topoData");
|
|
26
|
+
|
|
20
27
|
/**
|
|
21
28
|
* 集群处理工具类
|
|
22
29
|
*/
|
|
@@ -110,4 +117,73 @@ function handleClusterNoPermission(topo) {
|
|
|
110
117
|
group.setExpanded(false);
|
|
111
118
|
}
|
|
112
119
|
});
|
|
120
|
+
}
|
|
121
|
+
/**
|
|
122
|
+
* fix NEWITOM-22562 【1.0.3升级包集成】【网络拓扑】升级前创建的拓扑图,包含VSU集群,升级后不显示VSU集群了
|
|
123
|
+
* @param {*} topo
|
|
124
|
+
*/
|
|
125
|
+
|
|
126
|
+
|
|
127
|
+
function upgradeV103GraphClusterNode(topo, topoData) {
|
|
128
|
+
var dm1 = topo.getDataModel();
|
|
129
|
+
dm1.removeDataByTag('00000000364831f0'); // FIXME
|
|
130
|
+
|
|
131
|
+
try {
|
|
132
|
+
doUpgrade();
|
|
133
|
+
} catch (error) {
|
|
134
|
+
_rlog["default"].error('upgradeV103GraphClusterNode', error);
|
|
135
|
+
}
|
|
136
|
+
|
|
137
|
+
function doUpgrade() {
|
|
138
|
+
// 查找图上未显示的集群、集群成员、关联的链路
|
|
139
|
+
var topoDataTrans = (0, _utils.transformTopoElements)(topoData);
|
|
140
|
+
var dm = topo.getDataModel();
|
|
141
|
+
var list = topoDataTrans.filter(function (data) {
|
|
142
|
+
return !dm.getDataByTag(data.id);
|
|
143
|
+
});
|
|
144
|
+
|
|
145
|
+
if (!list.length) {
|
|
146
|
+
return;
|
|
147
|
+
}
|
|
148
|
+
|
|
149
|
+
var groups = list.filter(function (item) {
|
|
150
|
+
return item.type === 'group';
|
|
151
|
+
});
|
|
152
|
+
var createElementsData = {
|
|
153
|
+
groups: groups,
|
|
154
|
+
nodes: list.filter(function (item) {
|
|
155
|
+
return item.type === 'node';
|
|
156
|
+
}),
|
|
157
|
+
links: list.filter(function (item) {
|
|
158
|
+
return item.type === 'link';
|
|
159
|
+
}),
|
|
160
|
+
linkGroups: list.filter(function (item) {
|
|
161
|
+
return item.type === 'linkGroup';
|
|
162
|
+
})
|
|
163
|
+
};
|
|
164
|
+
var htTopo = topo.getHtTopo();
|
|
165
|
+
htTopo.createElements(createElementsData);
|
|
166
|
+
groups.forEach(function (group) {
|
|
167
|
+
var groupElement = dm.getDataByTag(group.id); // 切换前图上如果存在集群内的节点,切换节点为集群后,移到集群内
|
|
168
|
+
|
|
169
|
+
(0, _topoData.findGroupChildren)(topoDataTrans, group).forEach(function (child) {
|
|
170
|
+
var childEle = dm.getDataByTag(child.id);
|
|
171
|
+
|
|
172
|
+
if (childEle) {
|
|
173
|
+
childEle.setParent(groupElement);
|
|
174
|
+
}
|
|
175
|
+
}); // 如果序列化有,恢复区域位置
|
|
176
|
+
|
|
177
|
+
var deserializeDm = new ht.DataModel();
|
|
178
|
+
var jsonDeserialize = new ht.JSONSerializer(deserializeDm);
|
|
179
|
+
jsonDeserialize.deserialize(topoData.serialize, null, true);
|
|
180
|
+
var oldNode = deserializeDm.getDataByTag(group.id);
|
|
181
|
+
|
|
182
|
+
if (oldNode) {
|
|
183
|
+
groupElement.setSize(oldNode.getSize());
|
|
184
|
+
groupElement.setPosition(oldNode.getPosition());
|
|
185
|
+
groupElement.setImage(oldNode.getImage());
|
|
186
|
+
}
|
|
187
|
+
}); // 恢复手工画的线
|
|
188
|
+
}
|
|
113
189
|
}
|
package/lib/utils/topoData.js
CHANGED
|
@@ -383,23 +383,34 @@ function buildGlobal(_ref2) {
|
|
|
383
383
|
canDragElementToGroup: function canDragElementToGroup(element, group) {
|
|
384
384
|
if (!(0, _htElementUtils.isGroup)(group)) {
|
|
385
385
|
return true;
|
|
386
|
-
}
|
|
386
|
+
} // 区域不能拖拽到区域
|
|
387
|
+
|
|
387
388
|
|
|
388
389
|
if (element.dtype === 'container' && (0, _htElementUtils.isGroup)(group)) {
|
|
389
390
|
return false;
|
|
390
|
-
}
|
|
391
|
+
} // 元素不能拖拽到集群
|
|
391
392
|
|
|
392
|
-
|
|
393
|
+
|
|
394
|
+
if ((0, _clusterUtil.isClusterHtElement)(group)) {
|
|
393
395
|
return false;
|
|
394
396
|
}
|
|
395
397
|
|
|
396
|
-
|
|
398
|
+
_rlog["default"].debug(element, group);
|
|
399
|
+
|
|
397
400
|
return true;
|
|
398
401
|
},
|
|
399
402
|
// 图上元素能否拖动到区域中
|
|
400
|
-
canDragGraphElementsToGroup: function canDragGraphElementsToGroup(
|
|
401
|
-
|
|
402
|
-
|
|
403
|
+
canDragGraphElementsToGroup: function canDragGraphElementsToGroup(elements, targetGroup) {
|
|
404
|
+
_rlog["default"].debug('canDragGraphElementsToGroup', {
|
|
405
|
+
elements: elements,
|
|
406
|
+
targetGroup: targetGroup
|
|
407
|
+
}); // 非集群的区域不能拖拽到区域
|
|
408
|
+
|
|
409
|
+
|
|
410
|
+
if (elements.filter(function (ele) {
|
|
411
|
+
return (0, _htElementUtils.isGroup)(ele) && !(0, _clusterUtil.isClusterHtElement)(ele);
|
|
412
|
+
}).length && (0, _htElementUtils.isGroup)(targetGroup)) {
|
|
413
|
+
return false;
|
|
403
414
|
}
|
|
404
415
|
|
|
405
416
|
return true;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@riil-frontend/component-topology",
|
|
3
|
-
"version": "4.0.
|
|
3
|
+
"version": "4.0.5",
|
|
4
4
|
"description": "拓扑",
|
|
5
5
|
"scripts": {
|
|
6
6
|
"start": "build-scripts start",
|
|
@@ -114,6 +114,6 @@
|
|
|
114
114
|
"access": "public"
|
|
115
115
|
},
|
|
116
116
|
"license": "MIT",
|
|
117
|
-
"homepage": "https://unpkg.com/@riil-frontend/component-topology@4.0.
|
|
117
|
+
"homepage": "https://unpkg.com/@riil-frontend/component-topology@4.0.5/build/index.html",
|
|
118
118
|
"gitHead": "2da19ffccbb7ca60a8acf396e39f542c68bb33f5"
|
|
119
119
|
}
|