@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.
@@ -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.4" === 'string' ? "4.0.4" : null;
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
  * 拓扑显示和编辑
@@ -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
  }
@@ -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 (isGroup(group) && group.a('cluster')) {
347
+ if (isClusterHtElement(group)) {
346
348
  return false;
347
349
  }
348
350
 
349
- console.error(element, group);
351
+ rlog.debug(element, group);
350
352
  return true;
351
353
  },
352
354
  // 图上元素能否拖动到区域中
353
- canDragGraphElementsToGroup: function canDragGraphElementsToGroup(elemetns, group) {
354
- if (!isGroup(group)) {
355
- return true;
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.4" === 'string' ? "4.0.4" : null;
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
  * 拓扑显示和编辑
@@ -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
  }
@@ -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
- if ((0, _htElementUtils.isGroup)(group) && group.a('cluster')) {
393
+
394
+ if ((0, _clusterUtil.isClusterHtElement)(group)) {
393
395
  return false;
394
396
  }
395
397
 
396
- console.error(element, group);
398
+ _rlog["default"].debug(element, group);
399
+
397
400
  return true;
398
401
  },
399
402
  // 图上元素能否拖动到区域中
400
- canDragGraphElementsToGroup: function canDragGraphElementsToGroup(elemetns, group) {
401
- if (!(0, _htElementUtils.isGroup)(group)) {
402
- return true;
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.4",
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.4/build/index.html",
117
+ "homepage": "https://unpkg.com/@riil-frontend/component-topology@4.0.5/build/index.html",
118
118
  "gitHead": "2da19ffccbb7ca60a8acf396e39f542c68bb33f5"
119
119
  }