@riil-frontend/component-topology 12.1.0-dev.9 → 13.0.0-dev.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 (56) hide show
  1. package/build/1.js +1 -1
  2. package/build/index.css +1 -1
  3. package/build/index.js +14 -14
  4. package/es/components/ResourceSelectDrawer/ResourceSelectDrawer.js +1 -1
  5. package/es/core/components/TopoView/topoView.js +7 -4
  6. package/es/core/editor/components/Sidebar/views/ImagePanel/ImagePanel.js +11 -3
  7. package/es/core/editor/components/settings/core/updateElementProperty.js +3 -2
  8. package/es/core/editor/components/settings/propertyViews/view/GlobalEdgeToggle.js +2 -2
  9. package/es/core/editor/hooks/useNewElementTheme.js +20 -16
  10. package/es/core/hooks/useGraphAlarmDisplay.js +4 -0
  11. package/es/core/hooks/usePolling.js +2 -1
  12. package/es/core/hooks/useTopoEdit.js +206 -244
  13. package/es/core/models/AttributeMetricDisplay.js +4 -3
  14. package/es/core/models/HistoryManager.js +11 -9
  15. package/es/core/models/TopoApp.js +17 -15
  16. package/es/core/models/topoData.js +7 -14
  17. package/es/core/models/utils/linkUtils.js +2 -2
  18. package/es/core/store/models/topoConfig.js +14 -17
  19. package/es/core/utils/edgeUtil.js +7 -11
  20. package/es/core/viewer/components/plugins/ResourceDetail/components/ResourceOverview/EventsCard.js +1 -1
  21. package/es/core/viewer/components/plugins/ResourceDetail/components/ResourceOverview/components/LinkTopo/LinkTopo.module.scss +1 -1
  22. package/es/networkTopo/models/LinkDynamicStyleExecutor.js +7 -63
  23. package/es/networkTopo/services/topo/basic.js +4 -2
  24. package/es/networkTopo/utils/exitLinkUtil.js +23 -11
  25. package/es/networkTopo/utils/relateTopoDataUtil.js +38 -0
  26. package/es/style.js +1 -1
  27. package/es/utils/clusterUtil.js +3 -3
  28. package/es/utils/htElementUtils.js +8 -108
  29. package/lib/components/ResourceSelectDrawer/ResourceSelectDrawer.js +1 -1
  30. package/lib/core/components/TopoView/topoView.js +15 -19
  31. package/lib/core/editor/components/Sidebar/views/ImagePanel/ImagePanel.js +12 -3
  32. package/lib/core/editor/components/settings/core/updateElementProperty.js +7 -2
  33. package/lib/core/editor/components/settings/propertyViews/view/GlobalEdgeToggle.js +2 -2
  34. package/lib/core/editor/hooks/useNewElementTheme.js +20 -16
  35. package/lib/core/hooks/useGraphAlarmDisplay.js +4 -0
  36. package/lib/core/hooks/usePolling.js +6 -5
  37. package/lib/core/hooks/useTopoEdit.js +212 -268
  38. package/lib/core/models/AttributeMetricDisplay.js +6 -6
  39. package/lib/core/models/HistoryManager.js +13 -17
  40. package/lib/core/models/TopoApp.js +18 -15
  41. package/lib/core/models/topoData.js +7 -14
  42. package/lib/core/models/utils/linkUtils.js +1 -1
  43. package/lib/core/store/models/topoConfig.js +20 -31
  44. package/lib/core/utils/edgeUtil.js +6 -10
  45. package/lib/core/viewer/components/plugins/ResourceDetail/components/ResourceOverview/EventsCard.js +1 -1
  46. package/lib/core/viewer/components/plugins/ResourceDetail/components/ResourceOverview/components/LinkTopo/LinkTopo.module.scss +1 -1
  47. package/lib/networkTopo/models/LinkDynamicStyleExecutor.js +6 -64
  48. package/lib/networkTopo/services/topo/basic.js +4 -2
  49. package/lib/networkTopo/utils/exitLinkUtil.js +23 -11
  50. package/lib/networkTopo/utils/relateTopoDataUtil.js +49 -0
  51. package/lib/style.js +1 -1
  52. package/lib/utils/clusterUtil.js +2 -2
  53. package/lib/utils/htElementUtils.js +9 -119
  54. package/package.json +2 -2
  55. package/es/networkTopo/models/LinkTagsTipsBuilder.js +0 -235
  56. package/lib/networkTopo/models/LinkTagsTipsBuilder.js +0 -245
@@ -19,9 +19,7 @@ var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/
19
19
 
20
20
  var _react = _interopRequireWildcard(require("react"));
21
21
 
22
- var _lodash = _interopRequireDefault(require("lodash"));
23
-
24
- var _rlog = _interopRequireDefault(require("@riil-frontend/component-topology-utils/es/rlog"));
22
+ var _loglevel = _interopRequireDefault(require("loglevel"));
25
23
 
26
24
  var _componentTopologyGraph = require("@riil-frontend/component-topology-graph");
27
25
 
@@ -47,6 +45,8 @@ 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
 
48
+ var rlog = _loglevel["default"].getLogger('topo');
49
+
50
50
  var useTopoEdit = function useTopoEdit(params) {
51
51
  var topo = params.topo,
52
52
  topoId = params.topoId,
@@ -96,8 +96,7 @@ var useTopoEdit = function useTopoEdit(params) {
96
96
 
97
97
 
98
98
  var showGlobalAddResourceDrawer = function showGlobalAddResourceDrawer() {
99
- _rlog["default"].debug("showGlobalAddResourceDrawer", resourceConfig.getViewResources());
100
-
99
+ rlog.debug("showGlobalAddResourceDrawer", resourceConfig.getViewResources());
101
100
  setComboResData(resourceConfig.getViewResources());
102
101
  setShowComboResDrawer(true);
103
102
  };
@@ -112,12 +111,10 @@ var useTopoEdit = function useTopoEdit(params) {
112
111
  topo.historyManager.beginTransaction(); // 从拓扑图获取分层和资源配置
113
112
 
114
113
  config = resourceConfig.getConfigFromHt(topo.getDataModel());
115
-
116
- _rlog["default"].info("onLayerAdd", {
114
+ rlog.info("onLayerAdd", {
117
115
  config: config
118
116
  }); // 如果非分层拓扑且有分层,切换到分层模板,设置方向
119
117
 
120
-
121
118
  if (!(!isLayerTopo && config.layers.length)) {
122
119
  _context.next = 7;
123
120
  break;
@@ -151,12 +148,10 @@ var useTopoEdit = function useTopoEdit(params) {
151
148
  emitEvent(_componentTopologyGraph.TopoEvent.EVENT_TRIGGER_DELETE, layerElement); // 获取资源配置
152
149
 
153
150
  config = resourceConfig.getConfigFromHt(topo.getDataModel());
154
-
155
- _rlog["default"].info("deleteLayer", {
151
+ rlog.info("deleteLayer", {
156
152
  config: config
157
153
  }); // 如果没有分层,将拓扑类型切换为空白模板
158
154
 
159
-
160
155
  if (config.layers.length) {
161
156
  _context2.next = 7;
162
157
  break;
@@ -227,48 +222,7 @@ var useTopoEdit = function useTopoEdit(params) {
227
222
  return onOk;
228
223
  }()
229
224
  });
230
- }; // const deleteGroupFooterBtn = () => {
231
- // return (
232
- // <div>
233
- // <Button type="primary" onClick={doDeleteOnlyGroup()}>
234
- // 仅删除区域
235
- // </Button>
236
- // <Button type="primary" onClick={doDeleteOnlyGroup()}>
237
- // 确定
238
- // </Button>
239
- // </div>
240
- // );
241
- // };
242
- // const [groupDeleteVisible, setGroupDeleteVisible] = useState(false);
243
- // function doDeleteOnlyGroup(data,group) {
244
- // topo.historyManager.beginTransaction();
245
- // console.log("仅删除区域", topo.view.topoClient, data);
246
- // const children = getGroupChildren(group);
247
- // children.map((child) => {
248
- // child.setParent(null);
249
- // // var viewRect = topo.getGraphView().getViewRect();
250
- // // var nodeRect = child.getRect();
251
- // // child.setPosition(
252
- // // viewRect.x + nodeRect.width + 2,
253
- // // viewRect.y + nodeRect.height + 4
254
- // // ); // 解决集群从区域内移出时,连线位置未更新的问题
255
- // setTimeout(function () {
256
- // child.iv();
257
- // topo.historyManager.endTransaction();
258
- // }, 50);
259
- // });
260
- // topo.view.topoClient.deleteGroup(data);
261
- // topo.historyManager.endTransaction();
262
- // setGroupDeleteVisible(false);
263
- // // console.log("仅删除区域", children, group);
264
- // }
265
- // function doDelete(data) {
266
- // topo.historyManager.beginTransaction();
267
- // // FIXME 。如果命中其他的动态条件,则立即显示
268
- // topo.view.topoClient.deleteGroup(data);
269
- // setGroupDeleteVisible(false);
270
- // }
271
-
225
+ };
272
226
  /**
273
227
  * 删除容器。
274
228
  *
@@ -299,21 +253,17 @@ var useTopoEdit = function useTopoEdit(params) {
299
253
  // content: "若执行相关操作,此区域包含的内容也会一同被删除,确定删除吗?",
300
254
  content: "是否仅删除区域或将区域包含的内容一同删除?",
301
255
  footer: [/*#__PURE__*/_react["default"].createElement(_button["default"], {
256
+ key: "1",
302
257
  type: "normal",
303
258
  onClick: doDeleteOnlyGroup,
304
259
  style: {
305
260
  marginRight: "15px"
306
261
  }
307
262
  }, "\u4EC5\u5220\u9664\u533A\u57DF"), /*#__PURE__*/_react["default"].createElement(_button["default"], {
263
+ key: "2",
308
264
  type: "normal",
309
265
  onClick: doDelete
310
266
  }, "\u5168\u90E8\u5220\u9664")],
311
- // okProps: {
312
- // children: "仅删除区域",
313
- // type: "normal",
314
- // className: "next-btn-normal",
315
- // },
316
- // cancelProps: { children: "全部删除" },
317
267
  messageProps: {
318
268
  type: "warning"
319
269
  }
@@ -324,13 +274,7 @@ var useTopoEdit = function useTopoEdit(params) {
324
274
  console.log("仅删除区域", topo.view.topoClient, data);
325
275
  var children = (0, _htElementUtils.getGroupChildren)(group);
326
276
  children.map(function (child) {
327
- child.setParent(null); // var viewRect = topo.getGraphView().getViewRect();
328
- // var nodeRect = child.getRect();
329
- // child.setPosition(
330
- // viewRect.x + nodeRect.width + 2,
331
- // viewRect.y + nodeRect.height + 4
332
- // ); // 解决集群从区域内移出时,连线位置未更新的问题
333
-
277
+ child.setParent(null);
334
278
  setTimeout(function () {
335
279
  child.iv();
336
280
  topo.historyManager.endTransaction();
@@ -349,10 +293,6 @@ var useTopoEdit = function useTopoEdit(params) {
349
293
  }
350
294
  };
351
295
 
352
- var deleteNode = function deleteNode(node) {
353
- emitEvent(_componentTopologyGraph.TopoEvent.EVENT_TRIGGER_DELETE, node);
354
- };
355
-
356
296
  var handleDeleteNode = function handleDeleteNode(element) {
357
297
  var _topo$options$editor;
358
298
 
@@ -369,51 +309,36 @@ var useTopoEdit = function useTopoEdit(params) {
369
309
  if (typeof onNodeDelete === "function") {
370
310
  onNodeDelete(data);
371
311
  } else {
372
- deleteNode(data);
312
+ emitEvent(_componentTopologyGraph.TopoEvent.EVENT_TRIGGER_DELETE, data);
373
313
  }
374
314
  }
375
315
  }; // 删除关联在节点上的出口链路
376
316
 
377
317
 
378
- var deleteExLink = /*#__PURE__*/function () {
379
- var _ref4 = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee4(node) {
380
- var _node$getEdges$toArra, _node$getEdges;
318
+ var deleteExLink = function deleteExLink(node) {
319
+ var _node$getEdges$toArra, _node$getEdges;
381
320
 
382
- var edges;
383
- return _regenerator["default"].wrap(function _callee4$(_context4) {
384
- while (1) switch (_context4.prev = _context4.next) {
385
- case 0:
386
- // console.log("删除关联在节点上的出口链路- node, config", node, config);
387
- edges = (_node$getEdges$toArra = (_node$getEdges = node.getEdges()) === null || _node$getEdges === void 0 ? void 0 : _node$getEdges.toArray()) !== null && _node$getEdges$toArra !== void 0 ? _node$getEdges$toArra : [];
321
+ rlog.debug("删除关联在节点上的出口链路", {
322
+ node: node
323
+ });
324
+ var edges = (_node$getEdges$toArra = (_node$getEdges = node.getEdges()) === null || _node$getEdges === void 0 ? void 0 : _node$getEdges.toArray()) !== null && _node$getEdges$toArra !== void 0 ? _node$getEdges$toArra : [];
388
325
 
389
- if (edges.length > 0) {
390
- edges.map(function (edge) {
391
- if (edge.getTag()) {
392
- var link = topo.dataModel.getDataById(edge.getTag());
326
+ if (edges.length > 0) {
327
+ edges.map(function (edge) {
328
+ if (edge.getTag()) {
329
+ var link = topo.dataModel.getDataById(edge.getTag());
393
330
 
394
- if (link && (0, _linkUtils.isExitLink)(link)) {
395
- topo.getGraphView().dm().remove(edge);
396
- }
397
- }
398
- });
399
- }
400
-
401
- case 2:
402
- case "end":
403
- return _context4.stop();
331
+ if (link && (0, _linkUtils.isExitLink)(link)) {
332
+ topo.getGraphView().dm().remove(edge);
333
+ }
404
334
  }
405
- }, _callee4);
406
- }));
407
-
408
- return function deleteExLink(_x3) {
409
- return _ref4.apply(this, arguments);
410
- };
411
- }();
335
+ });
336
+ }
337
+ };
412
338
 
413
339
  var onDeleteElement = function onDeleteElement(data) {
414
340
  var dtype = data.dtype;
415
-
416
- _rlog["default"].info("onDeleteElement", data);
341
+ rlog.info("onDeleteElement", data);
417
342
 
418
343
  if ((0, _htElementUtils.isLayer)(data)) {
419
344
  handleDeleteLayer(data);
@@ -460,7 +385,7 @@ var useTopoEdit = function useTopoEdit(params) {
460
385
  function findUNExistedLinkElements(elements) {
461
386
  var dm = topo.getDataModel();
462
387
  var newLinkElements = elements.filter(function (element) {
463
- return (element.type === "link" || element.type === "linkGroup") && !(0, _htElementUtils.isExistedElement)(topo.getHtTopo(), dm, element);
388
+ return (element.type === "link" || element.type === "linkGroup") && !(0, _htElementUtils.containsElement)(dm, element);
464
389
  });
465
390
  return newLinkElements;
466
391
  }
@@ -473,43 +398,56 @@ var useTopoEdit = function useTopoEdit(params) {
473
398
 
474
399
  function findUNExistedElements(elements) {
475
400
  var dm = topo.getDataModel();
476
- var newLinkElements = elements.filter(function (element) {
477
- return !(0, _htElementUtils.isExistedElement)(topo.getHtTopo(), dm, element);
401
+ var unExistedElements = elements.filter(function (element) {
402
+ return !(0, _htElementUtils.containsElement)(dm, element);
478
403
  });
479
- return newLinkElements;
404
+ return unExistedElements;
480
405
  }
481
406
  /**
482
- * 关联容器的资源
407
+ * 区域关联资源
408
+ * @param {{ id, tag }} group
409
+ * @param {*} resources
483
410
  */
484
411
 
485
412
 
486
- function bindGroupResources(_x4, _x5) {
413
+ function bindGroupResources(_x3, _x4) {
487
414
  return _bindGroupResources.apply(this, arguments);
488
415
  }
489
416
 
490
417
  function _bindGroupResources() {
491
- _bindGroupResources = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee10(group, resources) {
492
- var id, tag, _yield$editDispatcher2, elements, nodeElements, newLinkElements, updateElements;
418
+ _bindGroupResources = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee9(group, resources) {
419
+ var _yield$editDispatcher2, elements, dm, needDeleteHtDatas, nodeElements, newLinkElements, updateElements;
493
420
 
494
- return _regenerator["default"].wrap(function _callee10$(_context10) {
495
- while (1) switch (_context10.prev = _context10.next) {
421
+ return _regenerator["default"].wrap(function _callee9$(_context9) {
422
+ while (1) switch (_context9.prev = _context9.next) {
496
423
  case 0:
497
- id = group.id, tag = group.tag;
498
-
499
- _rlog["default"].debug("bindGroupResources--id, tag", id, tag);
500
-
424
+ rlog.debug("区域关联资源", {
425
+ group: group,
426
+ resources: resources
427
+ });
501
428
  topo.historyManager.beginTransaction();
502
- _context10.next = 5;
429
+ _context9.next = 4;
503
430
  return resourceConfig.updateGroupResources(group, resources);
504
431
 
505
- case 5:
506
- _context10.next = 7;
432
+ case 4:
433
+ _context9.next = 6;
507
434
  return editDispatchers.fetchDataByConfig();
508
435
 
509
- case 7:
510
- _yield$editDispatcher2 = _context10.sent;
436
+ case 6:
437
+ _yield$editDispatcher2 = _context9.sent;
511
438
  elements = _yield$editDispatcher2.elements;
512
- // 区域里的子区域及子区域的节点、新增的链路
439
+ rlog.debug("区域关联资源: 元素列表", elements); // 先删除多余的元素
440
+
441
+ dm = topo.getDataModel();
442
+ needDeleteHtDatas = (0, _htElementUtils.getElements)(dm).filter(function (htData) {
443
+ return htData.a('id') && !elements.find(function (ele) {
444
+ return ele.id === htData.a('id');
445
+ });
446
+ });
447
+ needDeleteHtDatas.forEach(function (htData) {
448
+ return dm.remove(htData);
449
+ }); // 区域里的所有子节点子区域、新增的链路
450
+
513
451
  nodeElements = (0, _topoData.findGroupChildren)(elements, group);
514
452
  newLinkElements = findUNExistedLinkElements(elements);
515
453
  updateElements = [].concat(nodeElements, newLinkElements);
@@ -524,16 +462,16 @@ var useTopoEdit = function useTopoEdit(params) {
524
462
 
525
463
  topo.historyManager.endTransaction();
526
464
 
527
- case 14:
465
+ case 17:
528
466
  case "end":
529
- return _context10.stop();
467
+ return _context9.stop();
530
468
  }
531
- }, _callee10);
469
+ }, _callee9);
532
470
  }));
533
471
  return _bindGroupResources.apply(this, arguments);
534
472
  }
535
473
 
536
- function addGroupResources(_x6, _x7) {
474
+ function addGroupResources(_x5, _x6) {
537
475
  return _addGroupResources.apply(this, arguments);
538
476
  }
539
477
  /**
@@ -542,10 +480,10 @@ var useTopoEdit = function useTopoEdit(params) {
542
480
 
543
481
 
544
482
  function _addGroupResources() {
545
- _addGroupResources = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee11(group, newResourceIds) {
483
+ _addGroupResources = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee10(group, newResourceIds) {
546
484
  var groupConfig, resources, groupData;
547
- return _regenerator["default"].wrap(function _callee11$(_context11) {
548
- while (1) switch (_context11.prev = _context11.next) {
485
+ return _regenerator["default"].wrap(function _callee10$(_context10) {
486
+ while (1) switch (_context10.prev = _context10.next) {
549
487
  case 0:
550
488
  groupConfig = resourceConfig.getGroupConfigByElement(group);
551
489
  resources = {
@@ -555,19 +493,19 @@ var useTopoEdit = function useTopoEdit(params) {
555
493
  id: group.getTag(),
556
494
  tag: group.a("tag")
557
495
  };
558
- _context11.next = 5;
496
+ _context10.next = 5;
559
497
  return bindGroupResources(groupData, resources);
560
498
 
561
499
  case 5:
562
500
  case "end":
563
- return _context11.stop();
501
+ return _context10.stop();
564
502
  }
565
- }, _callee11);
503
+ }, _callee10);
566
504
  }));
567
505
  return _addGroupResources.apply(this, arguments);
568
506
  }
569
507
 
570
- function bindViewResources(_x8) {
508
+ function bindViewResources(_x7) {
571
509
  return _bindViewResources.apply(this, arguments);
572
510
  }
573
511
  /**
@@ -579,24 +517,24 @@ var useTopoEdit = function useTopoEdit(params) {
579
517
 
580
518
 
581
519
  function _bindViewResources() {
582
- _bindViewResources = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee12(data) {
520
+ _bindViewResources = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee11(data) {
583
521
  var config, result, _elements;
584
522
 
585
- return _regenerator["default"].wrap(function _callee12$(_context12) {
586
- while (1) switch (_context12.prev = _context12.next) {
523
+ return _regenerator["default"].wrap(function _callee11$(_context11) {
524
+ while (1) switch (_context11.prev = _context11.next) {
587
525
  case 0:
588
526
  // console.log("关联视图的资源", data);
589
527
  config = resourceConfig.getConfig();
590
528
  config.resources = data;
591
- _context12.next = 4;
529
+ _context11.next = 4;
592
530
  return resourceConfig.updateConfig(config);
593
531
 
594
532
  case 4:
595
- _context12.next = 6;
533
+ _context11.next = 6;
596
534
  return editDispatchers.fetchDataByConfig();
597
535
 
598
536
  case 6:
599
- result = _context12.sent;
537
+ result = _context11.sent;
600
538
  console.log("fetchDataByConfig", result);
601
539
 
602
540
  if (result) {
@@ -610,44 +548,42 @@ var useTopoEdit = function useTopoEdit(params) {
610
548
 
611
549
  case 9:
612
550
  case "end":
613
- return _context12.stop();
551
+ return _context11.stop();
614
552
  }
615
- }, _callee12);
553
+ }, _callee11);
616
554
  }));
617
555
  return _bindViewResources.apply(this, arguments);
618
556
  }
619
557
 
620
- function addLayerResources(_x9, _x10) {
558
+ function addLayerResources(_x8, _x9) {
621
559
  return _addLayerResources.apply(this, arguments);
622
560
  }
623
561
 
624
562
  function _addLayerResources() {
625
- _addLayerResources = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee13(group, newResourceIds) {
563
+ _addLayerResources = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee12(group, newResourceIds) {
626
564
  var _yield$editDispatcher3, elements, newElements;
627
565
 
628
- return _regenerator["default"].wrap(function _callee13$(_context13) {
629
- while (1) switch (_context13.prev = _context13.next) {
566
+ return _regenerator["default"].wrap(function _callee12$(_context12) {
567
+ while (1) switch (_context12.prev = _context12.next) {
630
568
  case 0:
631
569
  topo.historyManager.beginTransaction(); // 构造新的配置
632
570
 
633
- _context13.next = 3;
571
+ _context12.next = 3;
634
572
  return resourceConfig.addLayerStaticResources(group, newResourceIds);
635
573
 
636
574
  case 3:
637
- _context13.next = 5;
575
+ _context12.next = 5;
638
576
  return editDispatchers.fetchDataByConfig();
639
577
 
640
578
  case 5:
641
- _yield$editDispatcher3 = _context13.sent;
579
+ _yield$editDispatcher3 = _context12.sent;
642
580
  elements = _yield$editDispatcher3.elements;
643
581
  // 2022-11-10 修复 添加资源后分层重新布局问题,仅布局新增资源。替换api topo.updateElements(data)
644
582
  newElements = findUNExistedElements(elements);
645
-
646
- _rlog["default"].debug("添加分层资源", {
583
+ rlog.debug("添加分层资源", {
647
584
  layer: group,
648
585
  newElements: newElements
649
586
  });
650
-
651
587
  topo.getHtTopo().addElements(newElements); // 临时放这里,仅拓扑中心有
652
588
 
653
589
  if (topo.linkDynamicStyleExecutor) {
@@ -663,32 +599,32 @@ var useTopoEdit = function useTopoEdit(params) {
663
599
 
664
600
  case 14:
665
601
  case "end":
666
- return _context13.stop();
602
+ return _context12.stop();
667
603
  }
668
- }, _callee13);
604
+ }, _callee12);
669
605
  }));
670
606
  return _addLayerResources.apply(this, arguments);
671
607
  }
672
608
 
673
- function addResourceToFirstLayer(_x11) {
609
+ function addResourceToFirstLayer(_x10) {
674
610
  return _addResourceToFirstLayer.apply(this, arguments);
675
611
  }
676
612
 
677
613
  function _addResourceToFirstLayer() {
678
- _addResourceToFirstLayer = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee14(data) {
614
+ _addResourceToFirstLayer = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee13(data) {
679
615
  var group;
680
- return _regenerator["default"].wrap(function _callee14$(_context14) {
681
- while (1) switch (_context14.prev = _context14.next) {
616
+ return _regenerator["default"].wrap(function _callee13$(_context13) {
617
+ while (1) switch (_context13.prev = _context13.next) {
682
618
  case 0:
683
619
  group = resourceConfig.getGroups()[0];
684
- _context14.next = 3;
620
+ _context13.next = 3;
685
621
  return addLayerResources(group, data);
686
622
 
687
623
  case 3:
688
624
  case "end":
689
- return _context14.stop();
625
+ return _context13.stop();
690
626
  }
691
- }, _callee14);
627
+ }, _callee13);
692
628
  }));
693
629
  return _addResourceToFirstLayer.apply(this, arguments);
694
630
  }
@@ -720,28 +656,27 @@ var useTopoEdit = function useTopoEdit(params) {
720
656
 
721
657
 
722
658
  var onSaveComboRes = /*#__PURE__*/function () {
723
- var _ref5 = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee5(data) {
724
- return _regenerator["default"].wrap(function _callee5$(_context5) {
725
- while (1) switch (_context5.prev = _context5.next) {
659
+ var _ref4 = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee4(data) {
660
+ return _regenerator["default"].wrap(function _callee4$(_context4) {
661
+ while (1) switch (_context4.prev = _context4.next) {
726
662
  case 0:
727
- _rlog["default"].debug("关联资源-----onSaveComboRes", data);
728
-
663
+ rlog.debug("关联资源-----onSaveComboRes", data);
729
664
  topo.historyManager.beginTransaction();
730
665
 
731
666
  if (!(getAddResourceType() === "addToFirstLayer")) {
732
- _context5.next = 7;
667
+ _context4.next = 7;
733
668
  break;
734
669
  }
735
670
 
736
- _context5.next = 5;
671
+ _context4.next = 5;
737
672
  return addResourceToFirstLayer(data);
738
673
 
739
674
  case 5:
740
- _context5.next = 9;
675
+ _context4.next = 9;
741
676
  break;
742
677
 
743
678
  case 7:
744
- _context5.next = 9;
679
+ _context4.next = 9;
745
680
  return bindViewResources(data);
746
681
 
747
682
  case 9:
@@ -753,22 +688,22 @@ var useTopoEdit = function useTopoEdit(params) {
753
688
 
754
689
  case 12:
755
690
  case "end":
756
- return _context5.stop();
691
+ return _context4.stop();
757
692
  }
758
- }, _callee5);
693
+ }, _callee4);
759
694
  }));
760
695
 
761
- return function onSaveComboRes(_x12) {
762
- return _ref5.apply(this, arguments);
696
+ return function onSaveComboRes(_x11) {
697
+ return _ref4.apply(this, arguments);
763
698
  };
764
699
  }();
765
700
 
766
701
  var onSaveTopo = /*#__PURE__*/function () {
767
- var _ref6 = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee7(data) {
702
+ var _ref5 = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee6(data) {
768
703
  var id, config, serialize, _config$layout, template, layout, saveConfig;
769
704
 
770
- return _regenerator["default"].wrap(function _callee7$(_context7) {
771
- while (1) switch (_context7.prev = _context7.next) {
705
+ return _regenerator["default"].wrap(function _callee6$(_context6) {
706
+ while (1) switch (_context6.prev = _context6.next) {
772
707
  case 0:
773
708
  id = data.id, config = data.config, serialize = data.serialize;
774
709
  _config$layout = config === null || config === void 0 ? void 0 : config.layout, template = _config$layout.type, layout = _config$layout.layout;
@@ -776,11 +711,11 @@ var useTopoEdit = function useTopoEdit(params) {
776
711
  if (onSave) {
777
712
  // 自定义保存
778
713
  saveConfig = /*#__PURE__*/function () {
779
- var _ref7 = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee6() {
780
- return _regenerator["default"].wrap(function _callee6$(_context6) {
781
- while (1) switch (_context6.prev = _context6.next) {
714
+ var _ref6 = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee5() {
715
+ return _regenerator["default"].wrap(function _callee5$(_context5) {
716
+ while (1) switch (_context5.prev = _context5.next) {
782
717
  case 0:
783
- _context6.next = 2;
718
+ _context5.next = 2;
784
719
  return editDispatchers.saveTopo({
785
720
  id: id,
786
721
  layout: layout,
@@ -789,13 +724,13 @@ var useTopoEdit = function useTopoEdit(params) {
789
724
 
790
725
  case 2:
791
726
  case "end":
792
- return _context6.stop();
727
+ return _context5.stop();
793
728
  }
794
- }, _callee6);
729
+ }, _callee5);
795
730
  }));
796
731
 
797
732
  return function saveConfig() {
798
- return _ref7.apply(this, arguments);
733
+ return _ref6.apply(this, arguments);
799
734
  };
800
735
  }();
801
736
 
@@ -808,13 +743,13 @@ var useTopoEdit = function useTopoEdit(params) {
808
743
 
809
744
  case 3:
810
745
  case "end":
811
- return _context7.stop();
746
+ return _context6.stop();
812
747
  }
813
- }, _callee7);
748
+ }, _callee6);
814
749
  }));
815
750
 
816
- return function onSaveTopo(_x13) {
817
- return _ref6.apply(this, arguments);
751
+ return function onSaveTopo(_x12) {
752
+ return _ref5.apply(this, arguments);
818
753
  };
819
754
  }();
820
755
 
@@ -823,9 +758,7 @@ var useTopoEdit = function useTopoEdit(params) {
823
758
  type: type,
824
759
  data: data
825
760
  };
826
-
827
- _rlog["default"].debug("TopoCenter:onSaveBind", eventData);
828
-
761
+ rlog.debug("=> ht: saveBind", eventData);
829
762
  emitEvent(_componentTopologyGraph.TopoEvent.EVENT_DATA_RESULT, eventData);
830
763
  };
831
764
  /**
@@ -842,11 +775,11 @@ var useTopoEdit = function useTopoEdit(params) {
842
775
 
843
776
 
844
777
  var bindNodeResource = /*#__PURE__*/function () {
845
- var _ref8 = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee9(params) {
778
+ var _ref7 = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee8(params) {
846
779
  var id, oldResId, newResId, node, parentGroupElement, htTopo, config, groupId, groupTag, _yield$editDispatcher, elements, newData, doBind, _doBind, replaceOrAddRes;
847
780
 
848
- return _regenerator["default"].wrap(function _callee9$(_context9) {
849
- while (1) switch (_context9.prev = _context9.next) {
781
+ return _regenerator["default"].wrap(function _callee8$(_context8) {
782
+ while (1) switch (_context8.prev = _context8.next) {
850
783
  case 0:
851
784
  replaceOrAddRes = function _replaceOrAddRes(resources, oldResId, newResId) {
852
785
  return (0, _extends2["default"])({}, resources, {
@@ -857,14 +790,23 @@ var useTopoEdit = function useTopoEdit(params) {
857
790
  };
858
791
 
859
792
  _doBind = function _doBind3() {
860
- _doBind = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee8() {
861
- var dm, newLinkElements, createElementsData, groupChildren, newGroupChildren, existedGroupChildren, groupElement, newElement, sm;
862
- return _regenerator["default"].wrap(function _callee8$(_context8) {
863
- while (1) switch (_context8.prev = _context8.next) {
793
+ _doBind = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee7() {
794
+ var dm, needDeleteHtDatas, newLinkElements, createElementsData, groupChildren, newGroupChildren, existedGroupChildren, groupElement, newElement, sm;
795
+ return _regenerator["default"].wrap(function _callee7$(_context7) {
796
+ while (1) switch (_context7.prev = _context7.next) {
864
797
  case 0:
865
798
  dm = htTopo.getGraphView().dm(); // 移除旧节点。先删除后创建,解决ip节点替换ping资源后链路丢失问题
866
799
 
867
- dm.remove(node); // 创建
800
+ dm.remove(node); // 先删除多余的元素。解决 区域子节点关联ping,未更新显示链路及删除ip节点
801
+
802
+ needDeleteHtDatas = (0, _htElementUtils.getElements)(dm).filter(function (htData) {
803
+ return htData.a('id') && !elements.find(function (ele) {
804
+ return ele.id === htData.a('id');
805
+ });
806
+ });
807
+ needDeleteHtDatas.forEach(function (htData) {
808
+ return dm.remove(htData);
809
+ }); // 创建
868
810
 
869
811
  newLinkElements = findUNExistedLinkElements(elements);
870
812
  createElementsData = null;
@@ -913,8 +855,7 @@ var useTopoEdit = function useTopoEdit(params) {
913
855
  htTopo.createElements(createElementsData);
914
856
  }
915
857
 
916
- _rlog["default"].debug("批量创建元素", createElementsData); // 恢复图标、大小、位置
917
-
858
+ rlog.debug("批量创建元素", createElementsData); // 恢复图标、大小、位置、父区域
918
859
 
919
860
  newElement = dm.getDataByTag(newData.id);
920
861
 
@@ -922,21 +863,18 @@ var useTopoEdit = function useTopoEdit(params) {
922
863
  newElement.setSize(node.getSize());
923
864
  newElement.setPosition(node.getPosition());
924
865
  newElement.setImage(node.getImage());
866
+ newElement.setParent(parentGroupElement);
925
867
  } // 选中
926
868
 
927
869
 
928
870
  sm = htTopo.getGraphView().sm();
929
- sm.setSelection([newElement]); // 临时放这里,仅拓扑中心有
930
-
931
- if (topo.linkDynamicStyleExecutor) {
932
- topo.linkDynamicStyleExecutor.execute();
933
- }
871
+ sm.setSelection([newElement]);
934
872
 
935
- case 11:
873
+ case 12:
936
874
  case "end":
937
- return _context8.stop();
875
+ return _context7.stop();
938
876
  }
939
- }, _callee8);
877
+ }, _callee7);
940
878
  }));
941
879
  return _doBind.apply(this, arguments);
942
880
  };
@@ -947,9 +885,7 @@ var useTopoEdit = function useTopoEdit(params) {
947
885
 
948
886
  topo.historyManager.beginTransaction();
949
887
  id = params.id, oldResId = params.oldResId, newResId = params.newResId;
950
-
951
- _rlog["default"].debug("bindNodeResource", params);
952
-
888
+ rlog.debug("bindNodeResource", params);
953
889
  node = topo.getDataModel().getDataById(id); // 节点所属容器
954
890
 
955
891
  parentGroupElement = node.getParent();
@@ -978,49 +914,55 @@ var useTopoEdit = function useTopoEdit(params) {
978
914
  config.resources = replaceOrAddRes(config.resources, oldResId, newResId);
979
915
  }
980
916
 
981
- _context9.next = 13;
917
+ _context8.next = 13;
982
918
  return resourceConfig.updateConfig(config);
983
919
 
984
920
  case 13:
985
- _context9.next = 15;
921
+ _context8.next = 15;
986
922
  return editDispatchers.fetchDataByConfig();
987
923
 
988
924
  case 15:
989
- _yield$editDispatcher = _context9.sent;
925
+ _yield$editDispatcher = _context8.sent;
990
926
  elements = _yield$editDispatcher.elements;
991
927
  newData = elements.find(function (item) {
992
928
  return item.id === newResId;
993
929
  });
994
930
 
995
- if (newData) {
996
- _context9.next = 23;
931
+ if (!newData) {
932
+ _context8.next = 25;
997
933
  break;
998
934
  }
999
935
 
1000
- topo.historyManager.endTransaction();
1001
-
1002
- _message["default"].error("关联资源失败");
936
+ _context8.next = 21;
937
+ return doBind();
1003
938
 
1004
- _rlog["default"].error("关联资源失败");
939
+ case 21:
940
+ topo.historyManager.endTransaction(); // 临时放这里,仅拓扑中心有
1005
941
 
1006
- return _context9.abrupt("return", false);
942
+ if (topo.linkDynamicStyleExecutor) {
943
+ topo.linkDynamicStyleExecutor.execute();
944
+ }
1007
945
 
1008
- case 23:
1009
- _context9.next = 25;
1010
- return doBind();
946
+ _context8.next = 29;
947
+ break;
1011
948
 
1012
949
  case 25:
1013
950
  topo.historyManager.endTransaction();
1014
951
 
1015
- case 26:
952
+ _message["default"].error("关联资源失败");
953
+
954
+ rlog.error("关联资源失败");
955
+ return _context8.abrupt("return", false);
956
+
957
+ case 29:
1016
958
  case "end":
1017
- return _context9.stop();
959
+ return _context8.stop();
1018
960
  }
1019
- }, _callee9);
961
+ }, _callee8);
1020
962
  }));
1021
963
 
1022
- return function bindNodeResource(_x14) {
1023
- return _ref8.apply(this, arguments);
964
+ return function bindNodeResource(_x13) {
965
+ return _ref7.apply(this, arguments);
1024
966
  };
1025
967
  }();
1026
968
  /**
@@ -1028,93 +970,96 @@ var useTopoEdit = function useTopoEdit(params) {
1028
970
  */
1029
971
 
1030
972
 
1031
- function relateNodeIp(_x15, _x16) {
973
+ function relateNodeIp(_x14, _x15, _x16) {
1032
974
  return _relateNodeIp.apply(this, arguments);
1033
975
  }
1034
976
 
1035
977
  function _relateNodeIp() {
1036
- _relateNodeIp = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee15(txtValue, nodeElement) {
1037
- var dm, isUnique, ipNodeData, configObj, configData, _elements2, newLinkElements, newLink, newLinkGroup, createElementsData, _htTopo;
978
+ _relateNodeIp = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee14(txtValue, nodeElement, disableHistory) {
979
+ var dm, isUnique, ipNodeData, configObj, configData, elements, newLinkElements, newLink, newLinkGroup, createElementsData, _htTopo;
1038
980
 
1039
- return _regenerator["default"].wrap(function _callee15$(_context15) {
1040
- while (1) switch (_context15.prev = _context15.next) {
981
+ return _regenerator["default"].wrap(function _callee14$(_context14) {
982
+ while (1) switch (_context14.prev = _context14.next) {
1041
983
  case 0:
984
+ if (disableHistory === void 0) {
985
+ disableHistory = false;
986
+ }
987
+
1042
988
  if (txtValue) {
1043
- _context15.next = 2;
989
+ _context14.next = 3;
1044
990
  break;
1045
991
  }
1046
992
 
1047
- return _context15.abrupt("return");
993
+ return _context14.abrupt("return");
1048
994
 
1049
- case 2:
1050
- // if (txtValue === nodeElement.a('bindIp')) {
1051
- // return;
1052
- // }
995
+ case 3:
1053
996
  // 根据配置查询拓扑数据
1054
997
  dm = topo.getDataModel(); // 执行唯一性验证
1055
998
 
1056
- isUnique = (0, _exitLinkUtil.isUniqueIp)(dm, txtValue, nodeElement); // 获取关联链路
999
+ isUnique = (0, _exitLinkUtil.isUniqueIp)(dm, txtValue, nodeElement);
1057
1000
 
1058
- if (!isUnique) {
1059
- _context15.next = 24;
1001
+ if (isUnique) {
1002
+ _context14.next = 7;
1060
1003
  break;
1061
1004
  }
1062
1005
 
1063
- ipNodeData = (0, _exitLinkUtil.buildIpNode)(txtValue);
1064
- _context15.next = 8;
1065
- return deleteExLink(nodeElement);
1006
+ return _context14.abrupt("return");
1066
1007
 
1067
- case 8:
1008
+ case 7:
1009
+ disableHistory && topo.historyManager.setDisabled(true, '关联IP: 删除关联出口链路、节点绑定IP'); // 删除关联出口链路
1010
+
1011
+ deleteExLink(nodeElement); // 节点绑定IP
1012
+
1013
+ ipNodeData = (0, _exitLinkUtil.buildIpNode)(txtValue);
1068
1014
  nodeElement.a(ipNodeData);
1069
1015
  nodeElement.setName(txtValue);
1070
- nodeElement.setTag("ip:" + txtValue); // 获取配置
1016
+ nodeElement.setTag("ip:" + txtValue);
1017
+ disableHistory && topo.historyManager.setDisabled(false, '关联IP: 删除关联出口链路、节点绑定IP'); // 获取配置
1071
1018
 
1072
1019
  configObj = topo.resourceConfig.getConfig();
1073
- _context15.next = 14;
1020
+ _context14.next = 17;
1074
1021
  return resourceConfig.updateConfig(configObj);
1075
1022
 
1076
- case 14:
1077
- _context15.next = 16;
1023
+ case 17:
1024
+ _context14.next = 19;
1078
1025
  return editDispatchers.fetchDataByConfig();
1079
1026
 
1080
- case 16:
1081
- configData = _context15.sent;
1082
- // console.log("configData",configObj, configData);
1083
- _elements2 = configData.elements;
1084
- newLinkElements = findUNExistedLinkElements(_elements2); // console.log("configData", configData, newLinkElements);
1085
-
1027
+ case 19:
1028
+ configData = _context14.sent;
1029
+ elements = configData.elements;
1030
+ newLinkElements = findUNExistedLinkElements(elements);
1086
1031
  newLink = newLinkElements.filter(function (item) {
1087
1032
  return item.type === "link";
1088
1033
  });
1089
1034
  newLinkGroup = newLinkElements.filter(function (item) {
1090
1035
  return item.type === "linkGroup";
1091
- }); // const newData = elements.find((item) => item.id === `ip:${txtValue}`);
1092
- // console.log("newData",newLinkElements, newLink);
1093
-
1036
+ });
1094
1037
  createElementsData = {
1095
1038
  groups: [],
1096
1039
  nodes: [],
1097
1040
  links: newLink,
1098
1041
  linkGroups: newLinkGroup
1099
1042
  };
1100
- console.log("createElementsData", createElementsData);
1043
+ rlog.debug("createElementsData", createElementsData);
1101
1044
 
1102
1045
  if ([].concat(newLink, newLinkGroup).length > 0) {
1103
1046
  _htTopo = topo.getHtTopo();
1047
+ disableHistory && topo.historyManager.setDisabled(true, '关联IP: 创建链路');
1104
1048
 
1105
- _htTopo.createElements(createElementsData); // 临时放这里,仅拓扑中心有
1049
+ _htTopo.createElements(createElementsData);
1106
1050
 
1051
+ disableHistory && topo.historyManager.setDisabled(false, '关联IP: 创建链路'); // 临时放这里,仅拓扑中心有
1107
1052
 
1108
1053
  if (topo.linkDynamicStyleExecutor) {
1109
1054
  topo.linkDynamicStyleExecutor.execute();
1110
1055
  }
1111
1056
  }
1112
1057
 
1113
- case 24:
1058
+ case 27:
1114
1059
  case "end":
1115
- return _context15.stop();
1060
+ return _context14.stop();
1116
1061
  }
1117
- }, _callee15);
1062
+ }, _callee14);
1118
1063
  }));
1119
1064
  return _relateNodeIp.apply(this, arguments);
1120
1065
  }
@@ -1135,8 +1080,7 @@ var useTopoEdit = function useTopoEdit(params) {
1135
1080
  */
1136
1081
 
1137
1082
  var setViewMouseMode = function setViewMouseMode(mode) {
1138
- _rlog["default"].debug("设置视图鼠标模式", mode);
1139
-
1083
+ rlog.debug("设置视图鼠标模式", mode);
1140
1084
  topo.getHtTopo().setViewMouseMode(mode);
1141
1085
  topoEditDispatchers.update({
1142
1086
  viewMouseMode: mode