@riil-frontend/component-topology 4.0.2 → 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.
@@ -901,7 +901,7 @@ var useTopoEdit = function useTopoEdit(params) {
901
901
 
902
902
  var bindNodeResource = /*#__PURE__*/function () {
903
903
  var _ref7 = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee8(params) {
904
- var id, oldResId, newResId, node, groupElement, htTopo, config, groupId, groupTag, _yield$editDispatcher, elements, newData, newNodeElements, newLinkElements, newDatas, createElementsData, sm, dm, newElement, replaceOrAddRes;
904
+ var id, oldResId, newResId, node, parentGroupElement, htTopo, config, groupId, groupTag, _yield$editDispatcher, elements, newData, dm, newLinkElements, createElementsData, groupChildren, newGroupChildren, existedGroupChildren, groupElement, newElement, sm, replaceOrAddRes;
905
905
 
906
906
  return _regenerator["default"].wrap(function _callee8$(_context8) {
907
907
  while (1) {
@@ -921,15 +921,15 @@ var useTopoEdit = function useTopoEdit(params) {
921
921
 
922
922
  node = topo.getDataModel().getDataById(id); // 节点所属容器
923
923
 
924
- groupElement = node.getParent();
924
+ parentGroupElement = node.getParent();
925
925
  htTopo = topo.getHtTopo();
926
926
  config = resourceConfig.getConfig();
927
927
 
928
- if (groupElement) {
928
+ if (parentGroupElement) {
929
929
  // 在容器中
930
- groupId = groupElement.getTag(); // 容器业务id
930
+ groupId = parentGroupElement.getTag(); // 容器业务id
931
931
 
932
- groupTag = groupElement.a("tag"); // 容器临时id
932
+ groupTag = parentGroupElement.a("tag"); // 容器临时id
933
933
 
934
934
  config.groups = config.groups.map(function (g) {
935
935
  // 匹配到容器,替换资源或增加
@@ -961,19 +961,8 @@ var useTopoEdit = function useTopoEdit(params) {
961
961
  return item.id === newResId;
962
962
  });
963
963
 
964
- if (newData.type === 'group') {
965
- newNodeElements = [newData].concat((0, _topoData.findGroupChildren)(elements, newData));
966
- } else {
967
- newNodeElements = [newData];
968
- }
969
-
970
- newLinkElements = findUNExistedLinkElements(elements); // 过滤出关联的节点和连线,通知ht更新
971
- // const newDatas = filterElementsByNodeId(elements, newResId);
972
-
973
- newDatas = [].concat(newNodeElements, newLinkElements);
974
-
975
- if (newDatas.length) {
976
- _context8.next = 22;
964
+ if (newData) {
965
+ _context8.next = 19;
977
966
  break;
978
967
  }
979
968
 
@@ -983,27 +972,58 @@ var useTopoEdit = function useTopoEdit(params) {
983
972
 
984
973
  return _context8.abrupt("return", false);
985
974
 
986
- case 22:
987
- createElementsData = {
988
- groups: newDatas.filter(function (item) {
989
- return item.type === 'group';
990
- }),
991
- nodes: newDatas.filter(function (item) {
992
- return item.type === 'node';
993
- }),
994
- links: newDatas.filter(function (item) {
995
- return item.type === 'link';
996
- }),
997
- linkGroups: newDatas.filter(function (item) {
998
- return item.type === 'linkGroup';
999
- })
1000
- };
975
+ case 19:
976
+ dm = htTopo.getGraphView().dm(); // 创建
1001
977
 
1002
- _rlog["default"].debug('批量创建元素', newDatas, createElementsData);
978
+ newLinkElements = findUNExistedLinkElements(elements);
979
+ createElementsData = null;
980
+
981
+ if (newData.type === 'group') {
982
+ groupChildren = (0, _topoData.findGroupChildren)(elements, newData);
983
+ newGroupChildren = [];
984
+ existedGroupChildren = [];
985
+ groupChildren.forEach(function (groupChildData) {
986
+ var ele = dm.getDataByTag(groupChildData.id);
987
+
988
+ if (ele) {
989
+ existedGroupChildren.push(groupChildData);
990
+ } else {
991
+ newGroupChildren.push(groupChildData);
992
+ }
993
+ });
994
+ createElementsData = {
995
+ groups: [newData],
996
+ nodes: newGroupChildren,
997
+ links: newLinkElements.filter(function (item) {
998
+ return item.type === 'link';
999
+ }),
1000
+ linkGroups: newLinkElements.filter(function (item) {
1001
+ return item.type === 'linkGroup';
1002
+ })
1003
+ };
1004
+ htTopo.createElements(createElementsData); // 切换前图上如果存在集群内的节点,切换节点为集群后,移到集群内
1005
+
1006
+ groupElement = dm.getDataByTag(newData.id);
1007
+ existedGroupChildren.forEach(function (groupChildData) {
1008
+ var nodeElement = dm.getDataByTag(groupChildData.id);
1009
+ nodeElement.setParent(groupElement);
1010
+ });
1011
+ } else {
1012
+ createElementsData = {
1013
+ groups: [],
1014
+ nodes: [newData],
1015
+ links: newLinkElements.filter(function (item) {
1016
+ return item.type === 'link';
1017
+ }),
1018
+ linkGroups: newLinkElements.filter(function (item) {
1019
+ return item.type === 'linkGroup';
1020
+ })
1021
+ };
1022
+ htTopo.createElements(createElementsData);
1023
+ }
1024
+
1025
+ _rlog["default"].debug('批量创建元素', createElementsData); // 恢复图标、大小、位置
1003
1026
 
1004
- htTopo.createElements(createElementsData);
1005
- sm = htTopo.getGraphView().sm();
1006
- dm = htTopo.getGraphView().dm(); // 恢复图标、大小、位置
1007
1027
 
1008
1028
  newElement = dm.getDataByTag(newData.id);
1009
1029
 
@@ -1011,24 +1031,26 @@ var useTopoEdit = function useTopoEdit(params) {
1011
1031
  newElement.setSize(node.getSize());
1012
1032
  newElement.setPosition(node.getPosition());
1013
1033
  newElement.setImage(node.getImage());
1014
- }
1034
+ } // 选中
1035
+
1015
1036
 
1037
+ sm = htTopo.getGraphView().sm();
1016
1038
  sm.setSelection([newElement]); // 移除旧节点
1017
1039
 
1018
1040
  dm.remove(node); // saveBind(TopoEvent.DATA_TYPE_RESOURCE_SINGLE, newDatas);
1019
1041
  // node.a("customName", null);
1020
1042
  // 删除关联在节点上的出口链路
1021
1043
 
1022
- _context8.next = 33;
1044
+ _context8.next = 31;
1023
1045
  return deleteExLink(node);
1024
1046
 
1025
- case 33:
1047
+ case 31:
1026
1048
  // 临时放这里,仅拓扑中心有
1027
1049
  if (topo.linkDynamicStyleExecutor) {
1028
1050
  topo.linkDynamicStyleExecutor.execute();
1029
1051
  }
1030
1052
 
1031
- case 34:
1053
+ case 32:
1032
1054
  case "end":
1033
1055
  return _context8.stop();
1034
1056
  }
@@ -9,20 +9,18 @@ var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"))
9
9
 
10
10
  var _drawer = _interopRequireDefault(require("@alifd/next/lib/drawer"));
11
11
 
12
+ var _loading = _interopRequireDefault(require("@alifd/next/lib/loading"));
13
+
12
14
  var _message = _interopRequireDefault(require("@alifd/next/lib/message"));
13
15
 
14
16
  var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
15
17
 
16
18
  var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
17
19
 
18
- var _collapse = _interopRequireDefault(require("@alifd/next/lib/collapse"));
19
-
20
20
  var _react = _interopRequireWildcard(require("react"));
21
21
 
22
22
  var _topo = _interopRequireDefault(require("@riil-frontend/component-topology-common/es/services/topo"));
23
23
 
24
- var _ResourceTypeLimit = require("../../../../../../constants/ResourceTypeLimit");
25
-
26
24
  var _lodash = _interopRequireDefault(require("lodash"));
27
25
 
28
26
  var _rlog = _interopRequireDefault(require("@riil-frontend/component-topology-utils/es/rlog"));
@@ -47,8 +45,6 @@ function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "functio
47
45
 
48
46
  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; }
49
47
 
50
- var CollapsePanel = _collapse["default"].Panel;
51
-
52
48
  function AddLinkDrawer(props) {
53
49
  var topo = props.topo,
54
50
  lineData = props.lineData;
@@ -81,18 +77,26 @@ function AddLinkDrawer(props) {
81
77
  loading = _useState3[0],
82
78
  setLoading = _useState3[1];
83
79
 
84
- var _useState4 = (0, _react.useState)(),
85
- sourceIFDoc = _useState4[0],
86
- setSourceIFDoc = _useState4[1];
80
+ var _useState4 = (0, _react.useState)(false),
81
+ loadingConnectableNodes = _useState4[0],
82
+ setLoadingConnectableNodes = _useState4[1];
83
+
84
+ var _useState5 = (0, _react.useState)(false),
85
+ loadingFormData = _useState5[0],
86
+ setLoadingFormData = _useState5[1];
87
+
88
+ var _useState6 = (0, _react.useState)(),
89
+ sourceIFDoc = _useState6[0],
90
+ setSourceIFDoc = _useState6[1];
87
91
 
88
- var _useState5 = (0, _react.useState)(),
89
- targetIFDoc = _useState5[0],
90
- setTargetIFDoc = _useState5[1]; // 保存后更新拓扑图状态
92
+ var _useState7 = (0, _react.useState)(),
93
+ targetIFDoc = _useState7[0],
94
+ setTargetIFDoc = _useState7[1]; // 保存后更新拓扑图状态
91
95
 
92
96
 
93
- var _useState6 = (0, _react.useState)([]),
94
- ciIdsConnectable = _useState6[0],
95
- setCiIdsConnectable = _useState6[1];
97
+ var _useState8 = (0, _react.useState)([]),
98
+ ciIdsConnectable = _useState8[0],
99
+ setCiIdsConnectable = _useState8[1];
96
100
 
97
101
  var linkNodesRef = (0, _react.useRef)();
98
102
 
@@ -179,6 +183,11 @@ function AddLinkDrawer(props) {
179
183
  return _ref.apply(this, arguments);
180
184
  };
181
185
  }();
186
+ /**
187
+ * 连线第二个节点时的处理
188
+ * @param {*} e
189
+ */
190
+
182
191
 
183
192
  var handleEvent = /*#__PURE__*/function () {
184
193
  var _ref2 = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee2(e) {
@@ -193,16 +202,17 @@ function AddLinkDrawer(props) {
193
202
 
194
203
  setIsAddMode(true); // setTrue();
195
204
 
196
- _context2.prev = 3;
197
- _context2.next = 6;
205
+ setLoadingFormData(true);
206
+ _context2.prev = 4;
207
+ _context2.next = 7;
198
208
  return getPortsById(e.source._attrObject.id);
199
209
 
200
- case 6:
210
+ case 7:
201
211
  sourcePorts = _context2.sent;
202
- _context2.next = 9;
212
+ _context2.next = 10;
203
213
  return getPortsById(e.target._attrObject.id);
204
214
 
205
- case 9:
215
+ case 10:
206
216
  targetPorts = _context2.sent;
207
217
  setSourceIFDoc(sourcePorts.portsDoc);
208
218
  setTargetIFDoc(targetPorts.portsDoc);
@@ -232,21 +242,24 @@ function AddLinkDrawer(props) {
232
242
  connect_type: connect_type
233
243
  }
234
244
  });
235
- _context2.next = 23;
245
+ _context2.next = 24;
236
246
  break;
237
247
 
238
- case 20:
239
- _context2.prev = 20;
240
- _context2.t0 = _context2["catch"](3);
248
+ case 21:
249
+ _context2.prev = 21;
250
+ _context2.t0 = _context2["catch"](4);
241
251
 
242
252
  _rlog["default"].error("出现异常", _context2.t0);
243
253
 
244
- case 23:
254
+ case 24:
255
+ setLoadingFormData(false);
256
+
257
+ case 25:
245
258
  case "end":
246
259
  return _context2.stop();
247
260
  }
248
261
  }
249
- }, _callee2, null, [[3, 20]]);
262
+ }, _callee2, null, [[4, 21]]);
250
263
  }));
251
264
 
252
265
  return function handleEvent(_x3) {
@@ -344,20 +357,22 @@ function AddLinkDrawer(props) {
344
357
 
345
358
  var getCiTypesConnectable = /*#__PURE__*/function () {
346
359
  var _ref4 = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee4() {
347
- var ciTypes, ciTypesConnectable, nodes, ciIds, ciNodes, isWriteable;
360
+ var ciNodes, ciTypes, ciTypesConnectable, nodes, ciIds, isWriteable;
348
361
  return _regenerator["default"].wrap(function _callee4$(_context4) {
349
362
  while (1) {
350
363
  switch (_context4.prev = _context4.next) {
351
364
  case 0:
365
+ ciNodes = [];
366
+ setLoadingConnectableNodes(true);
367
+ _context4.prev = 2;
352
368
  ciTypes = (0, _topoData.getCiTypes)(topo.dataModel.getData());
353
- _context4.next = 3;
369
+ _context4.next = 6;
354
370
  return _topo["default"].networkLink.getCiTypesConnectable(ciTypes);
355
371
 
356
- case 3:
372
+ case 6:
357
373
  ciTypesConnectable = _context4.sent;
358
374
  nodes = (0, _htElementUtils.getNodes)(topo.getDataModel());
359
375
  ciIds = [];
360
- ciNodes = [];
361
376
 
362
377
  isWriteable = function isWriteable(node) {
363
378
  var _node$a;
@@ -365,7 +380,7 @@ function AddLinkDrawer(props) {
365
380
  return ["delete", "write"].indexOf(node.a("operation")) >= 0 || ((_node$a = node.a('permission')) === null || _node$a === void 0 ? void 0 : _node$a.writeable);
366
381
  };
367
382
 
368
- nodes.map(function (node) {
383
+ nodes.forEach(function (node) {
369
384
  // rlog.debug("过滤属性", node.a("operation"));
370
385
  if (ciTypesConnectable[node.a("ciType")] && isWriteable(node)) {
371
386
  ciIds.push(node.id);
@@ -376,14 +391,25 @@ function AddLinkDrawer(props) {
376
391
  ciConnectable: ciIds
377
392
  });
378
393
  setCiIdsConnectable(ciIds);
394
+ _context4.next = 18;
395
+ break;
396
+
397
+ case 15:
398
+ _context4.prev = 15;
399
+ _context4.t0 = _context4["catch"](2);
400
+
401
+ _rlog["default"].error('查询可创建链路节点失败', _context4.t0);
402
+
403
+ case 18:
404
+ setLoadingConnectableNodes(false);
379
405
  return _context4.abrupt("return", ciNodes);
380
406
 
381
- case 12:
407
+ case 20:
382
408
  case "end":
383
409
  return _context4.stop();
384
410
  }
385
411
  }
386
- }, _callee4);
412
+ }, _callee4, null, [[2, 15]]);
387
413
  }));
388
414
 
389
415
  return function getCiTypesConnectable() {
@@ -673,7 +699,13 @@ function AddLinkDrawer(props) {
673
699
  };
674
700
  }();
675
701
 
676
- return /*#__PURE__*/_react["default"].createElement(_drawer["default"], {
702
+ return /*#__PURE__*/_react["default"].createElement(_react["default"].Fragment, null, /*#__PURE__*/_react["default"].createElement(_loading["default"], {
703
+ visible: loadingConnectableNodes,
704
+ fullScreen: true
705
+ }), /*#__PURE__*/_react["default"].createElement(_loading["default"], {
706
+ visible: loadingFormData,
707
+ fullScreen: true
708
+ }), /*#__PURE__*/_react["default"].createElement(_drawer["default"], {
677
709
  closeMode: ["close", "esc"],
678
710
  visible: addLinkIsOpen,
679
711
  onClose: closeDrawer,
@@ -687,7 +719,7 @@ function AddLinkDrawer(props) {
687
719
  onSave: onSave,
688
720
  loading: loading,
689
721
  isAdd: isAddMode
690
- }));
722
+ })));
691
723
  }
692
724
 
693
725
  var _default = AddLinkDrawer;
@@ -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.2",
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.2/build/index.html",
117
+ "homepage": "https://unpkg.com/@riil-frontend/component-topology@4.0.5/build/index.html",
118
118
  "gitHead": "2da19ffccbb7ca60a8acf396e39f542c68bb33f5"
119
119
  }