@riil-frontend/component-topology 12.1.0-dev.8 → 12.1.1

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 (64) 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/AlarmListPanel/components/AlarmListItem.js +2 -2
  6. package/es/core/components/TopoView/topoView.js +7 -4
  7. package/es/core/editor/components/Sidebar/views/ImagePanel/ImagePanel.js +11 -3
  8. package/es/core/editor/components/Toolbar/widgets/Layout/index.js +2 -2
  9. package/es/core/editor/components/settings/core/updateElementProperty.js +3 -2
  10. package/es/core/editor/components/settings/propertyViews/view/GlobalEdgeToggle.js +2 -2
  11. package/es/core/editor/hooks/useKeyboardShortcut.js +4 -0
  12. package/es/core/editor/hooks/useNewElementTheme.js +20 -16
  13. package/es/core/hooks/useGraphAlarmDisplay.js +4 -0
  14. package/es/core/hooks/usePolling.js +2 -1
  15. package/es/core/hooks/useTopoEdit.js +208 -243
  16. package/es/core/models/Alarm.js +14 -15
  17. package/es/core/models/AttributeMetricDisplay.js +4 -3
  18. package/es/core/models/HistoryManager.js +11 -9
  19. package/es/core/models/TopoApp.js +17 -15
  20. package/es/core/models/topoData.js +7 -14
  21. package/es/core/models/utils/linkUtils.js +2 -2
  22. package/es/core/store/models/topoConfig.js +7 -11
  23. package/es/core/utils/edgeUtil.js +7 -11
  24. package/es/core/viewer/components/plugins/ResourceDetail/components/ResourceOverview/EventsCard.js +51 -13
  25. package/es/core/viewer/components/plugins/ResourceDetail/components/ResourceOverview/components/LinkTopo/LinkTopo.module.scss +1 -1
  26. package/es/core/viewer/components/plugins/ResourceDetail/components/ResourceOverview/index.module.scss +8 -0
  27. package/es/networkTopo/models/LinkDynamicStyleExecutor.js +7 -63
  28. package/es/networkTopo/utils/exitLinkUtil.js +23 -11
  29. package/es/style.js +1 -1
  30. package/es/utils/clusterUtil.js +3 -3
  31. package/es/utils/htElementUtils.js +8 -108
  32. package/es/utils/topoData.js +1 -1
  33. package/lib/components/ResourceSelectDrawer/ResourceSelectDrawer.js +1 -1
  34. package/lib/core/components/AlarmListPanel/components/AlarmListItem.js +2 -2
  35. package/lib/core/components/TopoView/topoView.js +15 -19
  36. package/lib/core/editor/components/Sidebar/views/ImagePanel/ImagePanel.js +12 -3
  37. package/lib/core/editor/components/Toolbar/widgets/Layout/index.js +1 -1
  38. package/lib/core/editor/components/settings/core/updateElementProperty.js +7 -2
  39. package/lib/core/editor/components/settings/propertyViews/view/GlobalEdgeToggle.js +2 -2
  40. package/lib/core/editor/hooks/useKeyboardShortcut.js +4 -0
  41. package/lib/core/editor/hooks/useNewElementTheme.js +20 -16
  42. package/lib/core/hooks/useGraphAlarmDisplay.js +4 -0
  43. package/lib/core/hooks/usePolling.js +6 -5
  44. package/lib/core/hooks/useTopoEdit.js +214 -267
  45. package/lib/core/models/Alarm.js +14 -15
  46. package/lib/core/models/AttributeMetricDisplay.js +6 -6
  47. package/lib/core/models/HistoryManager.js +13 -17
  48. package/lib/core/models/TopoApp.js +18 -15
  49. package/lib/core/models/topoData.js +7 -14
  50. package/lib/core/models/utils/linkUtils.js +1 -1
  51. package/lib/core/store/models/topoConfig.js +13 -25
  52. package/lib/core/utils/edgeUtil.js +6 -10
  53. package/lib/core/viewer/components/plugins/ResourceDetail/components/ResourceOverview/EventsCard.js +52 -13
  54. package/lib/core/viewer/components/plugins/ResourceDetail/components/ResourceOverview/components/LinkTopo/LinkTopo.module.scss +1 -1
  55. package/lib/core/viewer/components/plugins/ResourceDetail/components/ResourceOverview/index.module.scss +8 -0
  56. package/lib/networkTopo/models/LinkDynamicStyleExecutor.js +6 -64
  57. package/lib/networkTopo/utils/exitLinkUtil.js +23 -11
  58. package/lib/style.js +1 -1
  59. package/lib/utils/clusterUtil.js +2 -2
  60. package/lib/utils/htElementUtils.js +9 -119
  61. package/lib/utils/topoData.js +1 -1
  62. package/package.json +2 -2
  63. package/es/networkTopo/models/LinkTagsTipsBuilder.js +0 -235
  64. 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,38 @@ 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 : [];
388
-
389
- if (edges.length > 0) {
390
- edges.map(function (edge) {
391
- if (edge.getTag()) {
392
- var link = topo.dataModel.getDataById(edge.getTag());
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 : [];
393
325
 
394
- if (link && (0, _linkUtils.isExitLink)(link)) {
395
- topo.getGraphView().dm().remove(edge);
396
- }
397
- }
398
- });
399
- }
326
+ if (edges.length > 0) {
327
+ edges.map(function (edge) {
328
+ if (edge.getTag()) {
329
+ var link = topo.dataModel.getDataById(edge.getTag());
400
330
 
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
- }));
335
+ });
336
+ }
337
+ };
407
338
 
408
- return function deleteExLink(_x3) {
409
- return _ref4.apply(this, arguments);
410
- };
411
- }();
339
+ var batchDeleteSelectedElement = function batchDeleteSelectedElement() {};
412
340
 
413
341
  var onDeleteElement = function onDeleteElement(data) {
414
342
  var dtype = data.dtype;
415
-
416
- _rlog["default"].info("onDeleteElement", data);
343
+ rlog.info("onDeleteElement", data);
417
344
 
418
345
  if ((0, _htElementUtils.isLayer)(data)) {
419
346
  handleDeleteLayer(data);
@@ -460,7 +387,7 @@ var useTopoEdit = function useTopoEdit(params) {
460
387
  function findUNExistedLinkElements(elements) {
461
388
  var dm = topo.getDataModel();
462
389
  var newLinkElements = elements.filter(function (element) {
463
- return (element.type === "link" || element.type === "linkGroup") && !(0, _htElementUtils.isExistedElement)(topo.getHtTopo(), dm, element);
390
+ return (element.type === "link" || element.type === "linkGroup") && !(0, _htElementUtils.containsElement)(dm, element);
464
391
  });
465
392
  return newLinkElements;
466
393
  }
@@ -473,43 +400,56 @@ var useTopoEdit = function useTopoEdit(params) {
473
400
 
474
401
  function findUNExistedElements(elements) {
475
402
  var dm = topo.getDataModel();
476
- var newLinkElements = elements.filter(function (element) {
477
- return !(0, _htElementUtils.isExistedElement)(topo.getHtTopo(), dm, element);
403
+ var unExistedElements = elements.filter(function (element) {
404
+ return !(0, _htElementUtils.containsElement)(dm, element);
478
405
  });
479
- return newLinkElements;
406
+ return unExistedElements;
480
407
  }
481
408
  /**
482
- * 关联容器的资源
409
+ * 区域关联资源
410
+ * @param {{ id, tag }} group
411
+ * @param {*} resources
483
412
  */
484
413
 
485
414
 
486
- function bindGroupResources(_x4, _x5) {
415
+ function bindGroupResources(_x3, _x4) {
487
416
  return _bindGroupResources.apply(this, arguments);
488
417
  }
489
418
 
490
419
  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;
420
+ _bindGroupResources = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee9(group, resources) {
421
+ var _yield$editDispatcher2, elements, dm, needDeleteHtDatas, nodeElements, newLinkElements, updateElements;
493
422
 
494
- return _regenerator["default"].wrap(function _callee10$(_context10) {
495
- while (1) switch (_context10.prev = _context10.next) {
423
+ return _regenerator["default"].wrap(function _callee9$(_context9) {
424
+ while (1) switch (_context9.prev = _context9.next) {
496
425
  case 0:
497
- id = group.id, tag = group.tag;
498
-
499
- _rlog["default"].debug("bindGroupResources--id, tag", id, tag);
500
-
426
+ rlog.debug("区域关联资源", {
427
+ group: group,
428
+ resources: resources
429
+ });
501
430
  topo.historyManager.beginTransaction();
502
- _context10.next = 5;
431
+ _context9.next = 4;
503
432
  return resourceConfig.updateGroupResources(group, resources);
504
433
 
505
- case 5:
506
- _context10.next = 7;
434
+ case 4:
435
+ _context9.next = 6;
507
436
  return editDispatchers.fetchDataByConfig();
508
437
 
509
- case 7:
510
- _yield$editDispatcher2 = _context10.sent;
438
+ case 6:
439
+ _yield$editDispatcher2 = _context9.sent;
511
440
  elements = _yield$editDispatcher2.elements;
512
- // 区域里的子区域及子区域的节点、新增的链路
441
+ rlog.debug("区域关联资源: 元素列表", elements); // 先删除多余的元素
442
+
443
+ dm = topo.getDataModel();
444
+ needDeleteHtDatas = (0, _htElementUtils.getElements)(dm).filter(function (htData) {
445
+ return htData.a('id') && !elements.find(function (ele) {
446
+ return ele.id === htData.a('id');
447
+ });
448
+ });
449
+ needDeleteHtDatas.forEach(function (htData) {
450
+ return dm.remove(htData);
451
+ }); // 区域里的所有子节点子区域、新增的链路
452
+
513
453
  nodeElements = (0, _topoData.findGroupChildren)(elements, group);
514
454
  newLinkElements = findUNExistedLinkElements(elements);
515
455
  updateElements = [].concat(nodeElements, newLinkElements);
@@ -524,16 +464,16 @@ var useTopoEdit = function useTopoEdit(params) {
524
464
 
525
465
  topo.historyManager.endTransaction();
526
466
 
527
- case 14:
467
+ case 17:
528
468
  case "end":
529
- return _context10.stop();
469
+ return _context9.stop();
530
470
  }
531
- }, _callee10);
471
+ }, _callee9);
532
472
  }));
533
473
  return _bindGroupResources.apply(this, arguments);
534
474
  }
535
475
 
536
- function addGroupResources(_x6, _x7) {
476
+ function addGroupResources(_x5, _x6) {
537
477
  return _addGroupResources.apply(this, arguments);
538
478
  }
539
479
  /**
@@ -542,10 +482,10 @@ var useTopoEdit = function useTopoEdit(params) {
542
482
 
543
483
 
544
484
  function _addGroupResources() {
545
- _addGroupResources = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee11(group, newResourceIds) {
485
+ _addGroupResources = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee10(group, newResourceIds) {
546
486
  var groupConfig, resources, groupData;
547
- return _regenerator["default"].wrap(function _callee11$(_context11) {
548
- while (1) switch (_context11.prev = _context11.next) {
487
+ return _regenerator["default"].wrap(function _callee10$(_context10) {
488
+ while (1) switch (_context10.prev = _context10.next) {
549
489
  case 0:
550
490
  groupConfig = resourceConfig.getGroupConfigByElement(group);
551
491
  resources = {
@@ -555,19 +495,19 @@ var useTopoEdit = function useTopoEdit(params) {
555
495
  id: group.getTag(),
556
496
  tag: group.a("tag")
557
497
  };
558
- _context11.next = 5;
498
+ _context10.next = 5;
559
499
  return bindGroupResources(groupData, resources);
560
500
 
561
501
  case 5:
562
502
  case "end":
563
- return _context11.stop();
503
+ return _context10.stop();
564
504
  }
565
- }, _callee11);
505
+ }, _callee10);
566
506
  }));
567
507
  return _addGroupResources.apply(this, arguments);
568
508
  }
569
509
 
570
- function bindViewResources(_x8) {
510
+ function bindViewResources(_x7) {
571
511
  return _bindViewResources.apply(this, arguments);
572
512
  }
573
513
  /**
@@ -579,24 +519,24 @@ var useTopoEdit = function useTopoEdit(params) {
579
519
 
580
520
 
581
521
  function _bindViewResources() {
582
- _bindViewResources = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee12(data) {
522
+ _bindViewResources = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee11(data) {
583
523
  var config, result, _elements;
584
524
 
585
- return _regenerator["default"].wrap(function _callee12$(_context12) {
586
- while (1) switch (_context12.prev = _context12.next) {
525
+ return _regenerator["default"].wrap(function _callee11$(_context11) {
526
+ while (1) switch (_context11.prev = _context11.next) {
587
527
  case 0:
588
528
  // console.log("关联视图的资源", data);
589
529
  config = resourceConfig.getConfig();
590
530
  config.resources = data;
591
- _context12.next = 4;
531
+ _context11.next = 4;
592
532
  return resourceConfig.updateConfig(config);
593
533
 
594
534
  case 4:
595
- _context12.next = 6;
535
+ _context11.next = 6;
596
536
  return editDispatchers.fetchDataByConfig();
597
537
 
598
538
  case 6:
599
- result = _context12.sent;
539
+ result = _context11.sent;
600
540
  console.log("fetchDataByConfig", result);
601
541
 
602
542
  if (result) {
@@ -610,44 +550,42 @@ var useTopoEdit = function useTopoEdit(params) {
610
550
 
611
551
  case 9:
612
552
  case "end":
613
- return _context12.stop();
553
+ return _context11.stop();
614
554
  }
615
- }, _callee12);
555
+ }, _callee11);
616
556
  }));
617
557
  return _bindViewResources.apply(this, arguments);
618
558
  }
619
559
 
620
- function addLayerResources(_x9, _x10) {
560
+ function addLayerResources(_x8, _x9) {
621
561
  return _addLayerResources.apply(this, arguments);
622
562
  }
623
563
 
624
564
  function _addLayerResources() {
625
- _addLayerResources = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee13(group, newResourceIds) {
565
+ _addLayerResources = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee12(group, newResourceIds) {
626
566
  var _yield$editDispatcher3, elements, newElements;
627
567
 
628
- return _regenerator["default"].wrap(function _callee13$(_context13) {
629
- while (1) switch (_context13.prev = _context13.next) {
568
+ return _regenerator["default"].wrap(function _callee12$(_context12) {
569
+ while (1) switch (_context12.prev = _context12.next) {
630
570
  case 0:
631
571
  topo.historyManager.beginTransaction(); // 构造新的配置
632
572
 
633
- _context13.next = 3;
573
+ _context12.next = 3;
634
574
  return resourceConfig.addLayerStaticResources(group, newResourceIds);
635
575
 
636
576
  case 3:
637
- _context13.next = 5;
577
+ _context12.next = 5;
638
578
  return editDispatchers.fetchDataByConfig();
639
579
 
640
580
  case 5:
641
- _yield$editDispatcher3 = _context13.sent;
581
+ _yield$editDispatcher3 = _context12.sent;
642
582
  elements = _yield$editDispatcher3.elements;
643
583
  // 2022-11-10 修复 添加资源后分层重新布局问题,仅布局新增资源。替换api topo.updateElements(data)
644
584
  newElements = findUNExistedElements(elements);
645
-
646
- _rlog["default"].debug("添加分层资源", {
585
+ rlog.debug("添加分层资源", {
647
586
  layer: group,
648
587
  newElements: newElements
649
588
  });
650
-
651
589
  topo.getHtTopo().addElements(newElements); // 临时放这里,仅拓扑中心有
652
590
 
653
591
  if (topo.linkDynamicStyleExecutor) {
@@ -663,32 +601,32 @@ var useTopoEdit = function useTopoEdit(params) {
663
601
 
664
602
  case 14:
665
603
  case "end":
666
- return _context13.stop();
604
+ return _context12.stop();
667
605
  }
668
- }, _callee13);
606
+ }, _callee12);
669
607
  }));
670
608
  return _addLayerResources.apply(this, arguments);
671
609
  }
672
610
 
673
- function addResourceToFirstLayer(_x11) {
611
+ function addResourceToFirstLayer(_x10) {
674
612
  return _addResourceToFirstLayer.apply(this, arguments);
675
613
  }
676
614
 
677
615
  function _addResourceToFirstLayer() {
678
- _addResourceToFirstLayer = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee14(data) {
616
+ _addResourceToFirstLayer = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee13(data) {
679
617
  var group;
680
- return _regenerator["default"].wrap(function _callee14$(_context14) {
681
- while (1) switch (_context14.prev = _context14.next) {
618
+ return _regenerator["default"].wrap(function _callee13$(_context13) {
619
+ while (1) switch (_context13.prev = _context13.next) {
682
620
  case 0:
683
621
  group = resourceConfig.getGroups()[0];
684
- _context14.next = 3;
622
+ _context13.next = 3;
685
623
  return addLayerResources(group, data);
686
624
 
687
625
  case 3:
688
626
  case "end":
689
- return _context14.stop();
627
+ return _context13.stop();
690
628
  }
691
- }, _callee14);
629
+ }, _callee13);
692
630
  }));
693
631
  return _addResourceToFirstLayer.apply(this, arguments);
694
632
  }
@@ -720,28 +658,27 @@ var useTopoEdit = function useTopoEdit(params) {
720
658
 
721
659
 
722
660
  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) {
661
+ var _ref4 = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee4(data) {
662
+ return _regenerator["default"].wrap(function _callee4$(_context4) {
663
+ while (1) switch (_context4.prev = _context4.next) {
726
664
  case 0:
727
- _rlog["default"].debug("关联资源-----onSaveComboRes", data);
728
-
665
+ rlog.debug("关联资源-----onSaveComboRes", data);
729
666
  topo.historyManager.beginTransaction();
730
667
 
731
668
  if (!(getAddResourceType() === "addToFirstLayer")) {
732
- _context5.next = 7;
669
+ _context4.next = 7;
733
670
  break;
734
671
  }
735
672
 
736
- _context5.next = 5;
673
+ _context4.next = 5;
737
674
  return addResourceToFirstLayer(data);
738
675
 
739
676
  case 5:
740
- _context5.next = 9;
677
+ _context4.next = 9;
741
678
  break;
742
679
 
743
680
  case 7:
744
- _context5.next = 9;
681
+ _context4.next = 9;
745
682
  return bindViewResources(data);
746
683
 
747
684
  case 9:
@@ -753,22 +690,22 @@ var useTopoEdit = function useTopoEdit(params) {
753
690
 
754
691
  case 12:
755
692
  case "end":
756
- return _context5.stop();
693
+ return _context4.stop();
757
694
  }
758
- }, _callee5);
695
+ }, _callee4);
759
696
  }));
760
697
 
761
- return function onSaveComboRes(_x12) {
762
- return _ref5.apply(this, arguments);
698
+ return function onSaveComboRes(_x11) {
699
+ return _ref4.apply(this, arguments);
763
700
  };
764
701
  }();
765
702
 
766
703
  var onSaveTopo = /*#__PURE__*/function () {
767
- var _ref6 = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee7(data) {
704
+ var _ref5 = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee6(data) {
768
705
  var id, config, serialize, _config$layout, template, layout, saveConfig;
769
706
 
770
- return _regenerator["default"].wrap(function _callee7$(_context7) {
771
- while (1) switch (_context7.prev = _context7.next) {
707
+ return _regenerator["default"].wrap(function _callee6$(_context6) {
708
+ while (1) switch (_context6.prev = _context6.next) {
772
709
  case 0:
773
710
  id = data.id, config = data.config, serialize = data.serialize;
774
711
  _config$layout = config === null || config === void 0 ? void 0 : config.layout, template = _config$layout.type, layout = _config$layout.layout;
@@ -776,11 +713,11 @@ var useTopoEdit = function useTopoEdit(params) {
776
713
  if (onSave) {
777
714
  // 自定义保存
778
715
  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) {
716
+ var _ref6 = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee5() {
717
+ return _regenerator["default"].wrap(function _callee5$(_context5) {
718
+ while (1) switch (_context5.prev = _context5.next) {
782
719
  case 0:
783
- _context6.next = 2;
720
+ _context5.next = 2;
784
721
  return editDispatchers.saveTopo({
785
722
  id: id,
786
723
  layout: layout,
@@ -789,13 +726,13 @@ var useTopoEdit = function useTopoEdit(params) {
789
726
 
790
727
  case 2:
791
728
  case "end":
792
- return _context6.stop();
729
+ return _context5.stop();
793
730
  }
794
- }, _callee6);
731
+ }, _callee5);
795
732
  }));
796
733
 
797
734
  return function saveConfig() {
798
- return _ref7.apply(this, arguments);
735
+ return _ref6.apply(this, arguments);
799
736
  };
800
737
  }();
801
738
 
@@ -808,13 +745,13 @@ var useTopoEdit = function useTopoEdit(params) {
808
745
 
809
746
  case 3:
810
747
  case "end":
811
- return _context7.stop();
748
+ return _context6.stop();
812
749
  }
813
- }, _callee7);
750
+ }, _callee6);
814
751
  }));
815
752
 
816
- return function onSaveTopo(_x13) {
817
- return _ref6.apply(this, arguments);
753
+ return function onSaveTopo(_x12) {
754
+ return _ref5.apply(this, arguments);
818
755
  };
819
756
  }();
820
757
 
@@ -823,9 +760,7 @@ var useTopoEdit = function useTopoEdit(params) {
823
760
  type: type,
824
761
  data: data
825
762
  };
826
-
827
- _rlog["default"].debug("TopoCenter:onSaveBind", eventData);
828
-
763
+ rlog.debug("=> ht: saveBind", eventData);
829
764
  emitEvent(_componentTopologyGraph.TopoEvent.EVENT_DATA_RESULT, eventData);
830
765
  };
831
766
  /**
@@ -842,11 +777,11 @@ var useTopoEdit = function useTopoEdit(params) {
842
777
 
843
778
 
844
779
  var bindNodeResource = /*#__PURE__*/function () {
845
- var _ref8 = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee9(params) {
780
+ var _ref7 = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee8(params) {
846
781
  var id, oldResId, newResId, node, parentGroupElement, htTopo, config, groupId, groupTag, _yield$editDispatcher, elements, newData, doBind, _doBind, replaceOrAddRes;
847
782
 
848
- return _regenerator["default"].wrap(function _callee9$(_context9) {
849
- while (1) switch (_context9.prev = _context9.next) {
783
+ return _regenerator["default"].wrap(function _callee8$(_context8) {
784
+ while (1) switch (_context8.prev = _context8.next) {
850
785
  case 0:
851
786
  replaceOrAddRes = function _replaceOrAddRes(resources, oldResId, newResId) {
852
787
  return (0, _extends2["default"])({}, resources, {
@@ -857,14 +792,23 @@ var useTopoEdit = function useTopoEdit(params) {
857
792
  };
858
793
 
859
794
  _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) {
795
+ _doBind = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee7() {
796
+ var dm, needDeleteHtDatas, newLinkElements, createElementsData, groupChildren, newGroupChildren, existedGroupChildren, groupElement, newElement, sm;
797
+ return _regenerator["default"].wrap(function _callee7$(_context7) {
798
+ while (1) switch (_context7.prev = _context7.next) {
864
799
  case 0:
865
800
  dm = htTopo.getGraphView().dm(); // 移除旧节点。先删除后创建,解决ip节点替换ping资源后链路丢失问题
866
801
 
867
- dm.remove(node); // 创建
802
+ dm.remove(node); // 先删除多余的元素。解决 区域子节点关联ping,未更新显示链路及删除ip节点
803
+
804
+ needDeleteHtDatas = (0, _htElementUtils.getElements)(dm).filter(function (htData) {
805
+ return htData.a('id') && !elements.find(function (ele) {
806
+ return ele.id === htData.a('id');
807
+ });
808
+ });
809
+ needDeleteHtDatas.forEach(function (htData) {
810
+ return dm.remove(htData);
811
+ }); // 创建
868
812
 
869
813
  newLinkElements = findUNExistedLinkElements(elements);
870
814
  createElementsData = null;
@@ -913,8 +857,7 @@ var useTopoEdit = function useTopoEdit(params) {
913
857
  htTopo.createElements(createElementsData);
914
858
  }
915
859
 
916
- _rlog["default"].debug("批量创建元素", createElementsData); // 恢复图标、大小、位置
917
-
860
+ rlog.debug("批量创建元素", createElementsData); // 恢复图标、大小、位置、父区域
918
861
 
919
862
  newElement = dm.getDataByTag(newData.id);
920
863
 
@@ -922,21 +865,18 @@ var useTopoEdit = function useTopoEdit(params) {
922
865
  newElement.setSize(node.getSize());
923
866
  newElement.setPosition(node.getPosition());
924
867
  newElement.setImage(node.getImage());
868
+ newElement.setParent(parentGroupElement);
925
869
  } // 选中
926
870
 
927
871
 
928
872
  sm = htTopo.getGraphView().sm();
929
- sm.setSelection([newElement]); // 临时放这里,仅拓扑中心有
930
-
931
- if (topo.linkDynamicStyleExecutor) {
932
- topo.linkDynamicStyleExecutor.execute();
933
- }
873
+ sm.setSelection([newElement]);
934
874
 
935
- case 11:
875
+ case 12:
936
876
  case "end":
937
- return _context8.stop();
877
+ return _context7.stop();
938
878
  }
939
- }, _callee8);
879
+ }, _callee7);
940
880
  }));
941
881
  return _doBind.apply(this, arguments);
942
882
  };
@@ -947,9 +887,7 @@ var useTopoEdit = function useTopoEdit(params) {
947
887
 
948
888
  topo.historyManager.beginTransaction();
949
889
  id = params.id, oldResId = params.oldResId, newResId = params.newResId;
950
-
951
- _rlog["default"].debug("bindNodeResource", params);
952
-
890
+ rlog.debug("bindNodeResource", params);
953
891
  node = topo.getDataModel().getDataById(id); // 节点所属容器
954
892
 
955
893
  parentGroupElement = node.getParent();
@@ -978,49 +916,55 @@ var useTopoEdit = function useTopoEdit(params) {
978
916
  config.resources = replaceOrAddRes(config.resources, oldResId, newResId);
979
917
  }
980
918
 
981
- _context9.next = 13;
919
+ _context8.next = 13;
982
920
  return resourceConfig.updateConfig(config);
983
921
 
984
922
  case 13:
985
- _context9.next = 15;
923
+ _context8.next = 15;
986
924
  return editDispatchers.fetchDataByConfig();
987
925
 
988
926
  case 15:
989
- _yield$editDispatcher = _context9.sent;
927
+ _yield$editDispatcher = _context8.sent;
990
928
  elements = _yield$editDispatcher.elements;
991
929
  newData = elements.find(function (item) {
992
930
  return item.id === newResId;
993
931
  });
994
932
 
995
- if (newData) {
996
- _context9.next = 23;
933
+ if (!newData) {
934
+ _context8.next = 25;
997
935
  break;
998
936
  }
999
937
 
1000
- topo.historyManager.endTransaction();
1001
-
1002
- _message["default"].error("关联资源失败");
938
+ _context8.next = 21;
939
+ return doBind();
1003
940
 
1004
- _rlog["default"].error("关联资源失败");
941
+ case 21:
942
+ topo.historyManager.endTransaction(); // 临时放这里,仅拓扑中心有
1005
943
 
1006
- return _context9.abrupt("return", false);
944
+ if (topo.linkDynamicStyleExecutor) {
945
+ topo.linkDynamicStyleExecutor.execute();
946
+ }
1007
947
 
1008
- case 23:
1009
- _context9.next = 25;
1010
- return doBind();
948
+ _context8.next = 29;
949
+ break;
1011
950
 
1012
951
  case 25:
1013
952
  topo.historyManager.endTransaction();
1014
953
 
1015
- case 26:
954
+ _message["default"].error("关联资源失败");
955
+
956
+ rlog.error("关联资源失败");
957
+ return _context8.abrupt("return", false);
958
+
959
+ case 29:
1016
960
  case "end":
1017
- return _context9.stop();
961
+ return _context8.stop();
1018
962
  }
1019
- }, _callee9);
963
+ }, _callee8);
1020
964
  }));
1021
965
 
1022
- return function bindNodeResource(_x14) {
1023
- return _ref8.apply(this, arguments);
966
+ return function bindNodeResource(_x13) {
967
+ return _ref7.apply(this, arguments);
1024
968
  };
1025
969
  }();
1026
970
  /**
@@ -1028,93 +972,96 @@ var useTopoEdit = function useTopoEdit(params) {
1028
972
  */
1029
973
 
1030
974
 
1031
- function relateNodeIp(_x15, _x16) {
975
+ function relateNodeIp(_x14, _x15, _x16) {
1032
976
  return _relateNodeIp.apply(this, arguments);
1033
977
  }
1034
978
 
1035
979
  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;
980
+ _relateNodeIp = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee14(txtValue, nodeElement, disableHistory) {
981
+ var dm, isUnique, ipNodeData, configObj, configData, elements, newLinkElements, newLink, newLinkGroup, createElementsData, _htTopo;
1038
982
 
1039
- return _regenerator["default"].wrap(function _callee15$(_context15) {
1040
- while (1) switch (_context15.prev = _context15.next) {
983
+ return _regenerator["default"].wrap(function _callee14$(_context14) {
984
+ while (1) switch (_context14.prev = _context14.next) {
1041
985
  case 0:
986
+ if (disableHistory === void 0) {
987
+ disableHistory = false;
988
+ }
989
+
1042
990
  if (txtValue) {
1043
- _context15.next = 2;
991
+ _context14.next = 3;
1044
992
  break;
1045
993
  }
1046
994
 
1047
- return _context15.abrupt("return");
995
+ return _context14.abrupt("return");
1048
996
 
1049
- case 2:
1050
- // if (txtValue === nodeElement.a('bindIp')) {
1051
- // return;
1052
- // }
997
+ case 3:
1053
998
  // 根据配置查询拓扑数据
1054
999
  dm = topo.getDataModel(); // 执行唯一性验证
1055
1000
 
1056
- isUnique = (0, _exitLinkUtil.isUniqueIp)(dm, txtValue, nodeElement); // 获取关联链路
1001
+ isUnique = (0, _exitLinkUtil.isUniqueIp)(dm, txtValue, nodeElement);
1057
1002
 
1058
- if (!isUnique) {
1059
- _context15.next = 24;
1003
+ if (isUnique) {
1004
+ _context14.next = 7;
1060
1005
  break;
1061
1006
  }
1062
1007
 
1063
- ipNodeData = (0, _exitLinkUtil.buildIpNode)(txtValue);
1064
- _context15.next = 8;
1065
- return deleteExLink(nodeElement);
1008
+ return _context14.abrupt("return");
1066
1009
 
1067
- case 8:
1010
+ case 7:
1011
+ disableHistory && topo.historyManager.setDisabled(true, '关联IP: 删除关联出口链路、节点绑定IP'); // 删除关联出口链路
1012
+
1013
+ deleteExLink(nodeElement); // 节点绑定IP
1014
+
1015
+ ipNodeData = (0, _exitLinkUtil.buildIpNode)(txtValue);
1068
1016
  nodeElement.a(ipNodeData);
1069
1017
  nodeElement.setName(txtValue);
1070
- nodeElement.setTag("ip:" + txtValue); // 获取配置
1018
+ nodeElement.setTag("ip:" + txtValue);
1019
+ disableHistory && topo.historyManager.setDisabled(false, '关联IP: 删除关联出口链路、节点绑定IP'); // 获取配置
1071
1020
 
1072
1021
  configObj = topo.resourceConfig.getConfig();
1073
- _context15.next = 14;
1022
+ _context14.next = 17;
1074
1023
  return resourceConfig.updateConfig(configObj);
1075
1024
 
1076
- case 14:
1077
- _context15.next = 16;
1025
+ case 17:
1026
+ _context14.next = 19;
1078
1027
  return editDispatchers.fetchDataByConfig();
1079
1028
 
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
-
1029
+ case 19:
1030
+ configData = _context14.sent;
1031
+ elements = configData.elements;
1032
+ newLinkElements = findUNExistedLinkElements(elements);
1086
1033
  newLink = newLinkElements.filter(function (item) {
1087
1034
  return item.type === "link";
1088
1035
  });
1089
1036
  newLinkGroup = newLinkElements.filter(function (item) {
1090
1037
  return item.type === "linkGroup";
1091
- }); // const newData = elements.find((item) => item.id === `ip:${txtValue}`);
1092
- // console.log("newData",newLinkElements, newLink);
1093
-
1038
+ });
1094
1039
  createElementsData = {
1095
1040
  groups: [],
1096
1041
  nodes: [],
1097
1042
  links: newLink,
1098
1043
  linkGroups: newLinkGroup
1099
1044
  };
1100
- console.log("createElementsData", createElementsData);
1045
+ rlog.debug("createElementsData", createElementsData);
1101
1046
 
1102
1047
  if ([].concat(newLink, newLinkGroup).length > 0) {
1103
1048
  _htTopo = topo.getHtTopo();
1049
+ disableHistory && topo.historyManager.setDisabled(true, '关联IP: 创建链路');
1104
1050
 
1105
- _htTopo.createElements(createElementsData); // 临时放这里,仅拓扑中心有
1051
+ _htTopo.createElements(createElementsData);
1106
1052
 
1053
+ disableHistory && topo.historyManager.setDisabled(false, '关联IP: 创建链路'); // 临时放这里,仅拓扑中心有
1107
1054
 
1108
1055
  if (topo.linkDynamicStyleExecutor) {
1109
1056
  topo.linkDynamicStyleExecutor.execute();
1110
1057
  }
1111
1058
  }
1112
1059
 
1113
- case 24:
1060
+ case 27:
1114
1061
  case "end":
1115
- return _context15.stop();
1062
+ return _context14.stop();
1116
1063
  }
1117
- }, _callee15);
1064
+ }, _callee14);
1118
1065
  }));
1119
1066
  return _relateNodeIp.apply(this, arguments);
1120
1067
  }
@@ -1135,8 +1082,7 @@ var useTopoEdit = function useTopoEdit(params) {
1135
1082
  */
1136
1083
 
1137
1084
  var setViewMouseMode = function setViewMouseMode(mode) {
1138
- _rlog["default"].debug("设置视图鼠标模式", mode);
1139
-
1085
+ rlog.debug("设置视图鼠标模式", mode);
1140
1086
  topo.getHtTopo().setViewMouseMode(mode);
1141
1087
  topoEditDispatchers.update({
1142
1088
  viewMouseMode: mode
@@ -1208,6 +1154,7 @@ var useTopoEdit = function useTopoEdit(params) {
1208
1154
  onCloseComboResDrawer: function onCloseComboResDrawer() {
1209
1155
  return setShowComboResDrawer(false);
1210
1156
  },
1157
+ batchDeleteSelectedElement: batchDeleteSelectedElement,
1211
1158
 
1212
1159
  /**
1213
1160
  * 拓扑图元素(节点、连线、容器)删除回调