@riil-frontend/component-topology 13.0.0-dev.1 → 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 (73) hide show
  1. package/build/1.js +1 -1
  2. package/build/index.js +14 -14
  3. package/es/components/ResourceSelectDrawer/ResourceSelectDrawer.js +1 -1
  4. package/es/core/components/TopoView/topoView.js +7 -4
  5. package/es/core/editor/components/Toolbar/widgets/EdgeColorButton/EdgeColorButton.js +2 -2
  6. package/es/core/editor/components/Toolbar/widgets/EdgeTypeButton/LineType.js +5 -15
  7. package/es/core/editor/components/Toolbar/widgets/FontFamilyWidget.js +2 -27
  8. package/es/core/editor/components/Toolbar/widgets/FontSizeWidget.js +3 -28
  9. package/es/core/editor/components/Toolbar/widgets/FontStyleButton.js +6 -52
  10. package/es/core/editor/components/Toolbar/widgets/components/FontFamilySelect.js +29 -0
  11. package/es/core/editor/components/Toolbar/widgets/components/FontSizeSelect.js +29 -0
  12. package/es/core/editor/components/Toolbar/widgets/components/FontStyleSelect.js +71 -0
  13. package/es/core/editor/components/settings/core/updateElementProperty.js +3 -2
  14. package/es/core/editor/components/settings/propertyViews/view/GlobalEdgeToggle.js +2 -2
  15. package/es/core/editor/hooks/useNewElementTheme.js +20 -16
  16. package/es/core/editor/utils/edgeTypeStyleUtil.js +11 -32
  17. package/es/core/hooks/useGraphAlarmDisplay.js +4 -0
  18. package/es/core/hooks/usePolling.js +2 -1
  19. package/es/core/hooks/useTopoEdit.js +206 -248
  20. package/es/core/models/AttributeMetricDisplay.js +4 -3
  21. package/es/core/models/HistoryManager.js +11 -9
  22. package/es/core/models/TopoApp.js +39 -45
  23. package/es/core/models/topoData.js +7 -14
  24. package/es/core/models/utils/linkUtils.js +36 -28
  25. package/es/core/store/models/topoConfig.js +14 -17
  26. package/es/core/utils/edgeUtil.js +7 -10
  27. package/es/core/viewer/components/plugins/ElementDetailDrawer/hooks/useElementDetailManager.js +2 -2
  28. package/es/networkTopo/models/EdgeGroupTagTipBuilder.js +7 -7
  29. package/es/networkTopo/models/LinkDynamicStyleExecutor.js +7 -63
  30. package/es/networkTopo/services/topo/basic.js +4 -2
  31. package/es/networkTopo/utils/edgeGroupTagUtil.js +2 -2
  32. package/es/networkTopo/utils/exitLinkUtil.js +23 -11
  33. package/es/networkTopo/utils/relateTopoDataUtil.js +38 -0
  34. package/es/style.js +1 -1
  35. package/es/utils/clusterUtil.js +3 -3
  36. package/es/utils/htElementUtils.js +16 -84
  37. package/lib/components/ResourceSelectDrawer/ResourceSelectDrawer.js +1 -1
  38. package/lib/core/components/TopoView/topoView.js +15 -19
  39. package/lib/core/editor/components/Toolbar/widgets/EdgeColorButton/EdgeColorButton.js +2 -2
  40. package/lib/core/editor/components/Toolbar/widgets/EdgeTypeButton/LineType.js +5 -14
  41. package/lib/core/editor/components/Toolbar/widgets/FontFamilyWidget.js +3 -28
  42. package/lib/core/editor/components/Toolbar/widgets/FontSizeWidget.js +3 -28
  43. package/lib/core/editor/components/Toolbar/widgets/FontStyleButton.js +6 -56
  44. package/lib/core/editor/components/Toolbar/widgets/components/FontFamilySelect.js +38 -0
  45. package/lib/core/editor/components/Toolbar/widgets/components/FontSizeSelect.js +38 -0
  46. package/lib/core/editor/components/Toolbar/widgets/components/FontStyleSelect.js +83 -0
  47. package/lib/core/editor/components/settings/core/updateElementProperty.js +7 -2
  48. package/lib/core/editor/components/settings/propertyViews/view/GlobalEdgeToggle.js +2 -2
  49. package/lib/core/editor/hooks/useNewElementTheme.js +20 -16
  50. package/lib/core/editor/utils/edgeTypeStyleUtil.js +10 -33
  51. package/lib/core/hooks/useGraphAlarmDisplay.js +4 -0
  52. package/lib/core/hooks/usePolling.js +6 -5
  53. package/lib/core/hooks/useTopoEdit.js +212 -272
  54. package/lib/core/models/AttributeMetricDisplay.js +6 -6
  55. package/lib/core/models/HistoryManager.js +13 -17
  56. package/lib/core/models/TopoApp.js +39 -43
  57. package/lib/core/models/topoData.js +7 -14
  58. package/lib/core/models/utils/linkUtils.js +36 -27
  59. package/lib/core/store/models/topoConfig.js +20 -31
  60. package/lib/core/utils/edgeUtil.js +8 -10
  61. package/lib/core/viewer/components/plugins/ElementDetailDrawer/hooks/useElementDetailManager.js +3 -2
  62. package/lib/networkTopo/models/EdgeGroupTagTipBuilder.js +6 -6
  63. package/lib/networkTopo/models/LinkDynamicStyleExecutor.js +6 -64
  64. package/lib/networkTopo/services/topo/basic.js +4 -2
  65. package/lib/networkTopo/utils/edgeGroupTagUtil.js +2 -2
  66. package/lib/networkTopo/utils/exitLinkUtil.js +23 -11
  67. package/lib/networkTopo/utils/relateTopoDataUtil.js +49 -0
  68. package/lib/style.js +1 -1
  69. package/lib/utils/clusterUtil.js +2 -2
  70. package/lib/utils/htElementUtils.js +19 -93
  71. package/package.json +2 -2
  72. package/es/networkTopo/models/LinkTagsTipsBuilder.js +0 -235
  73. package/lib/networkTopo/models/LinkTagsTipsBuilder.js +0 -245
@@ -4,19 +4,19 @@ import _Button from "@alifd/next/es/button";
4
4
  import _Dialog from "@alifd/next/es/dialog";
5
5
  import _asyncToGenerator from "@babel/runtime/helpers/asyncToGenerator";
6
6
  import _regeneratorRuntime from "@babel/runtime/regenerator";
7
- import React, { useCallback, useEffect, useMemo, useState } from "react";
8
- import _ from "lodash";
9
- import rlog from "@riil-frontend/component-topology-utils/es/rlog";
7
+ import React, { useCallback, useState } from "react";
8
+ import Logger from 'loglevel';
10
9
  import { TopoEvent } from "@riil-frontend/component-topology-graph";
11
10
  import { TPL_BLANK, TPL_TREE } from "../../utils/template";
12
- import { getGroupElementByTag, isEdge, isExistedElement, isGroup, isLayer, isNode, getGroupChildren } from "../../utils/htElementUtils";
11
+ import { getGroupElementByTag, isEdge, containsElement, isGroup, isLayer, isNode, getGroupChildren, getElements } from "../../utils/htElementUtils";
13
12
  import useResourceConfig from "./useResourceConfig";
14
13
  import useGroupAddResource from "./useGroupAddResource";
15
14
  import { findGroupChildren } from "../../utils/topoData";
16
15
  import { isResourceElement } from "../../utils/htElementDataUtil";
17
16
  import { isClusterHtElement, isClusterMemberHtElement } from "../../utils/clusterUtil";
18
- import { isExitLink, mergeExportLinkData } from "../models/utils/linkUtils";
17
+ import { isExitLink } from "../models/utils/linkUtils";
19
18
  import { isUniqueIp, buildIpNode } from "../../networkTopo/utils/exitLinkUtil";
19
+ var rlog = Logger.getLogger('topo');
20
20
 
21
21
  var useTopoEdit = function useTopoEdit(params) {
22
22
  var topo = params.topo,
@@ -95,10 +95,6 @@ var useTopoEdit = function useTopoEdit(params) {
95
95
  return topoDispatchers.setTopoType(TPL_TREE);
96
96
 
97
97
  case 7:
98
- // 更新配置
99
- // resourceConfig.updateConfig(config);
100
- // 更新配置对应的资源、链路
101
- // editDispatchers.fetchDataByConfig();
102
98
  topo.historyManager.endTransaction();
103
99
 
104
100
  case 8:
@@ -197,48 +193,7 @@ var useTopoEdit = function useTopoEdit(params) {
197
193
  return onOk;
198
194
  }()
199
195
  });
200
- }; // const deleteGroupFooterBtn = () => {
201
- // return (
202
- // <div>
203
- // <Button type="primary" onClick={doDeleteOnlyGroup()}>
204
- // 仅删除区域
205
- // </Button>
206
- // <Button type="primary" onClick={doDeleteOnlyGroup()}>
207
- // 确定
208
- // </Button>
209
- // </div>
210
- // );
211
- // };
212
- // const [groupDeleteVisible, setGroupDeleteVisible] = useState(false);
213
- // function doDeleteOnlyGroup(data,group) {
214
- // topo.historyManager.beginTransaction();
215
- // console.log("仅删除区域", topo.view.topoClient, data);
216
- // const children = getGroupChildren(group);
217
- // children.map((child) => {
218
- // child.setParent(null);
219
- // // var viewRect = topo.getGraphView().getViewRect();
220
- // // var nodeRect = child.getRect();
221
- // // child.setPosition(
222
- // // viewRect.x + nodeRect.width + 2,
223
- // // viewRect.y + nodeRect.height + 4
224
- // // ); // 解决集群从区域内移出时,连线位置未更新的问题
225
- // setTimeout(function () {
226
- // child.iv();
227
- // topo.historyManager.endTransaction();
228
- // }, 50);
229
- // });
230
- // topo.view.topoClient.deleteGroup(data);
231
- // topo.historyManager.endTransaction();
232
- // setGroupDeleteVisible(false);
233
- // // console.log("仅删除区域", children, group);
234
- // }
235
- // function doDelete(data) {
236
- // topo.historyManager.beginTransaction();
237
- // // FIXME 。如果命中其他的动态条件,则立即显示
238
- // topo.view.topoClient.deleteGroup(data);
239
- // setGroupDeleteVisible(false);
240
- // }
241
-
196
+ };
242
197
  /**
243
198
  * 删除容器。
244
199
  *
@@ -269,21 +224,17 @@ var useTopoEdit = function useTopoEdit(params) {
269
224
  // content: "若执行相关操作,此区域包含的内容也会一同被删除,确定删除吗?",
270
225
  content: "是否仅删除区域或将区域包含的内容一同删除?",
271
226
  footer: [/*#__PURE__*/React.createElement(_Button, {
227
+ key: "1",
272
228
  type: "normal",
273
229
  onClick: doDeleteOnlyGroup,
274
230
  style: {
275
231
  marginRight: "15px"
276
232
  }
277
233
  }, "\u4EC5\u5220\u9664\u533A\u57DF"), /*#__PURE__*/React.createElement(_Button, {
234
+ key: "2",
278
235
  type: "normal",
279
236
  onClick: doDelete
280
237
  }, "\u5168\u90E8\u5220\u9664")],
281
- // okProps: {
282
- // children: "仅删除区域",
283
- // type: "normal",
284
- // className: "next-btn-normal",
285
- // },
286
- // cancelProps: { children: "全部删除" },
287
238
  messageProps: {
288
239
  type: "warning"
289
240
  }
@@ -294,13 +245,7 @@ var useTopoEdit = function useTopoEdit(params) {
294
245
  console.log("仅删除区域", topo.view.topoClient, data);
295
246
  var children = getGroupChildren(group);
296
247
  children.map(function (child) {
297
- child.setParent(null); // var viewRect = topo.getGraphView().getViewRect();
298
- // var nodeRect = child.getRect();
299
- // child.setPosition(
300
- // viewRect.x + nodeRect.width + 2,
301
- // viewRect.y + nodeRect.height + 4
302
- // ); // 解决集群从区域内移出时,连线位置未更新的问题
303
-
248
+ child.setParent(null);
304
249
  setTimeout(function () {
305
250
  child.iv();
306
251
  topo.historyManager.endTransaction();
@@ -319,10 +264,6 @@ var useTopoEdit = function useTopoEdit(params) {
319
264
  }
320
265
  };
321
266
 
322
- var deleteNode = function deleteNode(node) {
323
- emitEvent(TopoEvent.EVENT_TRIGGER_DELETE, node);
324
- };
325
-
326
267
  var handleDeleteNode = function handleDeleteNode(element) {
327
268
  var _topo$options$editor;
328
269
 
@@ -339,46 +280,32 @@ var useTopoEdit = function useTopoEdit(params) {
339
280
  if (typeof onNodeDelete === "function") {
340
281
  onNodeDelete(data);
341
282
  } else {
342
- deleteNode(data);
283
+ emitEvent(TopoEvent.EVENT_TRIGGER_DELETE, data);
343
284
  }
344
285
  }
345
286
  }; // 删除关联在节点上的出口链路
346
287
 
347
288
 
348
- var deleteExLink = /*#__PURE__*/function () {
349
- var _ref4 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee4(node) {
350
- var _node$getEdges$toArra, _node$getEdges;
351
-
352
- var edges;
353
- return _regeneratorRuntime.wrap(function _callee4$(_context4) {
354
- while (1) switch (_context4.prev = _context4.next) {
355
- case 0:
356
- // console.log("删除关联在节点上的出口链路- node, config", node, config);
357
- 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 : [];
289
+ var deleteExLink = function deleteExLink(node) {
290
+ var _node$getEdges$toArra, _node$getEdges;
358
291
 
359
- if (edges.length > 0) {
360
- edges.map(function (edge) {
361
- if (edge.getTag()) {
362
- var link = topo.dataModel.getDataById(edge.getTag());
292
+ rlog.debug("删除关联在节点上的出口链路", {
293
+ node: node
294
+ });
295
+ 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 : [];
363
296
 
364
- if (link && isExitLink(link)) {
365
- topo.getGraphView().dm().remove(edge);
366
- }
367
- }
368
- });
369
- }
297
+ if (edges.length > 0) {
298
+ edges.map(function (edge) {
299
+ if (edge.getTag()) {
300
+ var link = topo.dataModel.getDataById(edge.getTag());
370
301
 
371
- case 2:
372
- case "end":
373
- return _context4.stop();
302
+ if (link && isExitLink(link)) {
303
+ topo.getGraphView().dm().remove(edge);
304
+ }
374
305
  }
375
- }, _callee4);
376
- }));
377
-
378
- return function deleteExLink(_x3) {
379
- return _ref4.apply(this, arguments);
380
- };
381
- }();
306
+ });
307
+ }
308
+ };
382
309
 
383
310
  var onDeleteElement = function onDeleteElement(data) {
384
311
  var dtype = data.dtype;
@@ -429,7 +356,7 @@ var useTopoEdit = function useTopoEdit(params) {
429
356
  function findUNExistedLinkElements(elements) {
430
357
  var dm = topo.getDataModel();
431
358
  var newLinkElements = elements.filter(function (element) {
432
- return (element.type === "link" || element.type === "linkGroup") && !isExistedElement(topo.getHtTopo(), dm, element);
359
+ return (element.type === "link" || element.type === "linkGroup") && !containsElement(dm, element);
433
360
  });
434
361
  return newLinkElements;
435
362
  }
@@ -442,41 +369,56 @@ var useTopoEdit = function useTopoEdit(params) {
442
369
 
443
370
  function findUNExistedElements(elements) {
444
371
  var dm = topo.getDataModel();
445
- var newLinkElements = elements.filter(function (element) {
446
- return !isExistedElement(topo.getHtTopo(), dm, element);
372
+ var unExistedElements = elements.filter(function (element) {
373
+ return !containsElement(dm, element);
447
374
  });
448
- return newLinkElements;
375
+ return unExistedElements;
449
376
  }
450
377
  /**
451
- * 关联容器的资源
378
+ * 区域关联资源
379
+ * @param {{ id, tag }} group
380
+ * @param {*} resources
452
381
  */
453
382
 
454
383
 
455
- function bindGroupResources(_x4, _x5) {
384
+ function bindGroupResources(_x3, _x4) {
456
385
  return _bindGroupResources.apply(this, arguments);
457
386
  }
458
387
 
459
388
  function _bindGroupResources() {
460
- _bindGroupResources = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee10(group, resources) {
461
- var id, tag, _yield$editDispatcher2, elements, nodeElements, newLinkElements, updateElements;
389
+ _bindGroupResources = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee9(group, resources) {
390
+ var _yield$editDispatcher2, elements, dm, needDeleteHtDatas, nodeElements, newLinkElements, updateElements;
462
391
 
463
- return _regeneratorRuntime.wrap(function _callee10$(_context10) {
464
- while (1) switch (_context10.prev = _context10.next) {
392
+ return _regeneratorRuntime.wrap(function _callee9$(_context9) {
393
+ while (1) switch (_context9.prev = _context9.next) {
465
394
  case 0:
466
- id = group.id, tag = group.tag;
467
- rlog.debug("bindGroupResources--id, tag", id, tag);
395
+ rlog.debug("区域关联资源", {
396
+ group: group,
397
+ resources: resources
398
+ });
468
399
  topo.historyManager.beginTransaction();
469
- _context10.next = 5;
400
+ _context9.next = 4;
470
401
  return resourceConfig.updateGroupResources(group, resources);
471
402
 
472
- case 5:
473
- _context10.next = 7;
403
+ case 4:
404
+ _context9.next = 6;
474
405
  return editDispatchers.fetchDataByConfig();
475
406
 
476
- case 7:
477
- _yield$editDispatcher2 = _context10.sent;
407
+ case 6:
408
+ _yield$editDispatcher2 = _context9.sent;
478
409
  elements = _yield$editDispatcher2.elements;
479
- // 区域里的子区域及子区域的节点、新增的链路
410
+ rlog.debug("区域关联资源: 元素列表", elements); // 先删除多余的元素
411
+
412
+ dm = topo.getDataModel();
413
+ needDeleteHtDatas = getElements(dm).filter(function (htData) {
414
+ return htData.a('id') && !elements.find(function (ele) {
415
+ return ele.id === htData.a('id');
416
+ });
417
+ });
418
+ needDeleteHtDatas.forEach(function (htData) {
419
+ return dm.remove(htData);
420
+ }); // 区域里的所有子节点子区域、新增的链路
421
+
480
422
  nodeElements = findGroupChildren(elements, group);
481
423
  newLinkElements = findUNExistedLinkElements(elements);
482
424
  updateElements = [].concat(nodeElements, newLinkElements);
@@ -491,16 +433,16 @@ var useTopoEdit = function useTopoEdit(params) {
491
433
 
492
434
  topo.historyManager.endTransaction();
493
435
 
494
- case 14:
436
+ case 17:
495
437
  case "end":
496
- return _context10.stop();
438
+ return _context9.stop();
497
439
  }
498
- }, _callee10);
440
+ }, _callee9);
499
441
  }));
500
442
  return _bindGroupResources.apply(this, arguments);
501
443
  }
502
444
 
503
- function addGroupResources(_x6, _x7) {
445
+ function addGroupResources(_x5, _x6) {
504
446
  return _addGroupResources.apply(this, arguments);
505
447
  }
506
448
  /**
@@ -509,10 +451,10 @@ var useTopoEdit = function useTopoEdit(params) {
509
451
 
510
452
 
511
453
  function _addGroupResources() {
512
- _addGroupResources = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee11(group, newResourceIds) {
454
+ _addGroupResources = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee10(group, newResourceIds) {
513
455
  var groupConfig, resources, groupData;
514
- return _regeneratorRuntime.wrap(function _callee11$(_context11) {
515
- while (1) switch (_context11.prev = _context11.next) {
456
+ return _regeneratorRuntime.wrap(function _callee10$(_context10) {
457
+ while (1) switch (_context10.prev = _context10.next) {
516
458
  case 0:
517
459
  groupConfig = resourceConfig.getGroupConfigByElement(group);
518
460
  resources = {
@@ -522,19 +464,19 @@ var useTopoEdit = function useTopoEdit(params) {
522
464
  id: group.getTag(),
523
465
  tag: group.a("tag")
524
466
  };
525
- _context11.next = 5;
467
+ _context10.next = 5;
526
468
  return bindGroupResources(groupData, resources);
527
469
 
528
470
  case 5:
529
471
  case "end":
530
- return _context11.stop();
472
+ return _context10.stop();
531
473
  }
532
- }, _callee11);
474
+ }, _callee10);
533
475
  }));
534
476
  return _addGroupResources.apply(this, arguments);
535
477
  }
536
478
 
537
- function bindViewResources(_x8) {
479
+ function bindViewResources(_x7) {
538
480
  return _bindViewResources.apply(this, arguments);
539
481
  }
540
482
  /**
@@ -546,24 +488,24 @@ var useTopoEdit = function useTopoEdit(params) {
546
488
 
547
489
 
548
490
  function _bindViewResources() {
549
- _bindViewResources = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee12(data) {
491
+ _bindViewResources = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee11(data) {
550
492
  var config, result, _elements;
551
493
 
552
- return _regeneratorRuntime.wrap(function _callee12$(_context12) {
553
- while (1) switch (_context12.prev = _context12.next) {
494
+ return _regeneratorRuntime.wrap(function _callee11$(_context11) {
495
+ while (1) switch (_context11.prev = _context11.next) {
554
496
  case 0:
555
497
  // console.log("关联视图的资源", data);
556
498
  config = resourceConfig.getConfig();
557
499
  config.resources = data;
558
- _context12.next = 4;
500
+ _context11.next = 4;
559
501
  return resourceConfig.updateConfig(config);
560
502
 
561
503
  case 4:
562
- _context12.next = 6;
504
+ _context11.next = 6;
563
505
  return editDispatchers.fetchDataByConfig();
564
506
 
565
507
  case 6:
566
- result = _context12.sent;
508
+ result = _context11.sent;
567
509
  console.log("fetchDataByConfig", result);
568
510
 
569
511
  if (result) {
@@ -577,35 +519,35 @@ var useTopoEdit = function useTopoEdit(params) {
577
519
 
578
520
  case 9:
579
521
  case "end":
580
- return _context12.stop();
522
+ return _context11.stop();
581
523
  }
582
- }, _callee12);
524
+ }, _callee11);
583
525
  }));
584
526
  return _bindViewResources.apply(this, arguments);
585
527
  }
586
528
 
587
- function addLayerResources(_x9, _x10) {
529
+ function addLayerResources(_x8, _x9) {
588
530
  return _addLayerResources.apply(this, arguments);
589
531
  }
590
532
 
591
533
  function _addLayerResources() {
592
- _addLayerResources = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee13(group, newResourceIds) {
534
+ _addLayerResources = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee12(group, newResourceIds) {
593
535
  var _yield$editDispatcher3, elements, newElements;
594
536
 
595
- return _regeneratorRuntime.wrap(function _callee13$(_context13) {
596
- while (1) switch (_context13.prev = _context13.next) {
537
+ return _regeneratorRuntime.wrap(function _callee12$(_context12) {
538
+ while (1) switch (_context12.prev = _context12.next) {
597
539
  case 0:
598
540
  topo.historyManager.beginTransaction(); // 构造新的配置
599
541
 
600
- _context13.next = 3;
542
+ _context12.next = 3;
601
543
  return resourceConfig.addLayerStaticResources(group, newResourceIds);
602
544
 
603
545
  case 3:
604
- _context13.next = 5;
546
+ _context12.next = 5;
605
547
  return editDispatchers.fetchDataByConfig();
606
548
 
607
549
  case 5:
608
- _yield$editDispatcher3 = _context13.sent;
550
+ _yield$editDispatcher3 = _context12.sent;
609
551
  elements = _yield$editDispatcher3.elements;
610
552
  // 2022-11-10 修复 添加资源后分层重新布局问题,仅布局新增资源。替换api topo.updateElements(data)
611
553
  newElements = findUNExistedElements(elements);
@@ -628,32 +570,32 @@ var useTopoEdit = function useTopoEdit(params) {
628
570
 
629
571
  case 14:
630
572
  case "end":
631
- return _context13.stop();
573
+ return _context12.stop();
632
574
  }
633
- }, _callee13);
575
+ }, _callee12);
634
576
  }));
635
577
  return _addLayerResources.apply(this, arguments);
636
578
  }
637
579
 
638
- function addResourceToFirstLayer(_x11) {
580
+ function addResourceToFirstLayer(_x10) {
639
581
  return _addResourceToFirstLayer.apply(this, arguments);
640
582
  }
641
583
 
642
584
  function _addResourceToFirstLayer() {
643
- _addResourceToFirstLayer = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee14(data) {
585
+ _addResourceToFirstLayer = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee13(data) {
644
586
  var group;
645
- return _regeneratorRuntime.wrap(function _callee14$(_context14) {
646
- while (1) switch (_context14.prev = _context14.next) {
587
+ return _regeneratorRuntime.wrap(function _callee13$(_context13) {
588
+ while (1) switch (_context13.prev = _context13.next) {
647
589
  case 0:
648
590
  group = resourceConfig.getGroups()[0];
649
- _context14.next = 3;
591
+ _context13.next = 3;
650
592
  return addLayerResources(group, data);
651
593
 
652
594
  case 3:
653
595
  case "end":
654
- return _context14.stop();
596
+ return _context13.stop();
655
597
  }
656
- }, _callee14);
598
+ }, _callee13);
657
599
  }));
658
600
  return _addResourceToFirstLayer.apply(this, arguments);
659
601
  }
@@ -685,27 +627,27 @@ var useTopoEdit = function useTopoEdit(params) {
685
627
 
686
628
 
687
629
  var onSaveComboRes = /*#__PURE__*/function () {
688
- var _ref5 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee5(data) {
689
- return _regeneratorRuntime.wrap(function _callee5$(_context5) {
690
- while (1) switch (_context5.prev = _context5.next) {
630
+ var _ref4 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee4(data) {
631
+ return _regeneratorRuntime.wrap(function _callee4$(_context4) {
632
+ while (1) switch (_context4.prev = _context4.next) {
691
633
  case 0:
692
634
  rlog.debug("关联资源-----onSaveComboRes", data);
693
635
  topo.historyManager.beginTransaction();
694
636
 
695
637
  if (!(getAddResourceType() === "addToFirstLayer")) {
696
- _context5.next = 7;
638
+ _context4.next = 7;
697
639
  break;
698
640
  }
699
641
 
700
- _context5.next = 5;
642
+ _context4.next = 5;
701
643
  return addResourceToFirstLayer(data);
702
644
 
703
645
  case 5:
704
- _context5.next = 9;
646
+ _context4.next = 9;
705
647
  break;
706
648
 
707
649
  case 7:
708
- _context5.next = 9;
650
+ _context4.next = 9;
709
651
  return bindViewResources(data);
710
652
 
711
653
  case 9:
@@ -717,22 +659,22 @@ var useTopoEdit = function useTopoEdit(params) {
717
659
 
718
660
  case 12:
719
661
  case "end":
720
- return _context5.stop();
662
+ return _context4.stop();
721
663
  }
722
- }, _callee5);
664
+ }, _callee4);
723
665
  }));
724
666
 
725
- return function onSaveComboRes(_x12) {
726
- return _ref5.apply(this, arguments);
667
+ return function onSaveComboRes(_x11) {
668
+ return _ref4.apply(this, arguments);
727
669
  };
728
670
  }();
729
671
 
730
672
  var onSaveTopo = /*#__PURE__*/function () {
731
- var _ref6 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee7(data) {
673
+ var _ref5 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee6(data) {
732
674
  var id, config, serialize, _config$layout, template, layout, saveConfig;
733
675
 
734
- return _regeneratorRuntime.wrap(function _callee7$(_context7) {
735
- while (1) switch (_context7.prev = _context7.next) {
676
+ return _regeneratorRuntime.wrap(function _callee6$(_context6) {
677
+ while (1) switch (_context6.prev = _context6.next) {
736
678
  case 0:
737
679
  id = data.id, config = data.config, serialize = data.serialize;
738
680
  _config$layout = config === null || config === void 0 ? void 0 : config.layout, template = _config$layout.type, layout = _config$layout.layout;
@@ -740,11 +682,11 @@ var useTopoEdit = function useTopoEdit(params) {
740
682
  if (onSave) {
741
683
  // 自定义保存
742
684
  saveConfig = /*#__PURE__*/function () {
743
- var _ref7 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee6() {
744
- return _regeneratorRuntime.wrap(function _callee6$(_context6) {
745
- while (1) switch (_context6.prev = _context6.next) {
685
+ var _ref6 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee5() {
686
+ return _regeneratorRuntime.wrap(function _callee5$(_context5) {
687
+ while (1) switch (_context5.prev = _context5.next) {
746
688
  case 0:
747
- _context6.next = 2;
689
+ _context5.next = 2;
748
690
  return editDispatchers.saveTopo({
749
691
  id: id,
750
692
  layout: layout,
@@ -753,13 +695,13 @@ var useTopoEdit = function useTopoEdit(params) {
753
695
 
754
696
  case 2:
755
697
  case "end":
756
- return _context6.stop();
698
+ return _context5.stop();
757
699
  }
758
- }, _callee6);
700
+ }, _callee5);
759
701
  }));
760
702
 
761
703
  return function saveConfig() {
762
- return _ref7.apply(this, arguments);
704
+ return _ref6.apply(this, arguments);
763
705
  };
764
706
  }();
765
707
 
@@ -772,13 +714,13 @@ var useTopoEdit = function useTopoEdit(params) {
772
714
 
773
715
  case 3:
774
716
  case "end":
775
- return _context7.stop();
717
+ return _context6.stop();
776
718
  }
777
- }, _callee7);
719
+ }, _callee6);
778
720
  }));
779
721
 
780
- return function onSaveTopo(_x13) {
781
- return _ref6.apply(this, arguments);
722
+ return function onSaveTopo(_x12) {
723
+ return _ref5.apply(this, arguments);
782
724
  };
783
725
  }();
784
726
 
@@ -787,7 +729,7 @@ var useTopoEdit = function useTopoEdit(params) {
787
729
  type: type,
788
730
  data: data
789
731
  };
790
- rlog.debug("TopoCenter:onSaveBind", eventData);
732
+ rlog.debug("=> ht: saveBind", eventData);
791
733
  emitEvent(TopoEvent.EVENT_DATA_RESULT, eventData);
792
734
  };
793
735
  /**
@@ -804,11 +746,11 @@ var useTopoEdit = function useTopoEdit(params) {
804
746
 
805
747
 
806
748
  var bindNodeResource = /*#__PURE__*/function () {
807
- var _ref8 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee9(params) {
749
+ var _ref7 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee8(params) {
808
750
  var id, oldResId, newResId, node, parentGroupElement, htTopo, config, groupId, groupTag, _yield$editDispatcher, elements, newData, doBind, _doBind, replaceOrAddRes;
809
751
 
810
- return _regeneratorRuntime.wrap(function _callee9$(_context9) {
811
- while (1) switch (_context9.prev = _context9.next) {
752
+ return _regeneratorRuntime.wrap(function _callee8$(_context8) {
753
+ while (1) switch (_context8.prev = _context8.next) {
812
754
  case 0:
813
755
  replaceOrAddRes = function _replaceOrAddRes(resources, oldResId, newResId) {
814
756
  return _extends({}, resources, {
@@ -819,14 +761,23 @@ var useTopoEdit = function useTopoEdit(params) {
819
761
  };
820
762
 
821
763
  _doBind = function _doBind3() {
822
- _doBind = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee8() {
823
- var dm, newLinkElements, createElementsData, groupChildren, newGroupChildren, existedGroupChildren, groupElement, newElement, sm;
824
- return _regeneratorRuntime.wrap(function _callee8$(_context8) {
825
- while (1) switch (_context8.prev = _context8.next) {
764
+ _doBind = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee7() {
765
+ var dm, needDeleteHtDatas, newLinkElements, createElementsData, groupChildren, newGroupChildren, existedGroupChildren, groupElement, newElement, sm;
766
+ return _regeneratorRuntime.wrap(function _callee7$(_context7) {
767
+ while (1) switch (_context7.prev = _context7.next) {
826
768
  case 0:
827
769
  dm = htTopo.getGraphView().dm(); // 移除旧节点。先删除后创建,解决ip节点替换ping资源后链路丢失问题
828
770
 
829
- dm.remove(node); // 创建
771
+ dm.remove(node); // 先删除多余的元素。解决 区域子节点关联ping,未更新显示链路及删除ip节点
772
+
773
+ needDeleteHtDatas = getElements(dm).filter(function (htData) {
774
+ return htData.a('id') && !elements.find(function (ele) {
775
+ return ele.id === htData.a('id');
776
+ });
777
+ });
778
+ needDeleteHtDatas.forEach(function (htData) {
779
+ return dm.remove(htData);
780
+ }); // 创建
830
781
 
831
782
  newLinkElements = findUNExistedLinkElements(elements);
832
783
  createElementsData = null;
@@ -875,7 +826,7 @@ var useTopoEdit = function useTopoEdit(params) {
875
826
  htTopo.createElements(createElementsData);
876
827
  }
877
828
 
878
- rlog.debug("批量创建元素", createElementsData); // 恢复图标、大小、位置
829
+ rlog.debug("批量创建元素", createElementsData); // 恢复图标、大小、位置、父区域
879
830
 
880
831
  newElement = dm.getDataByTag(newData.id);
881
832
 
@@ -883,21 +834,18 @@ var useTopoEdit = function useTopoEdit(params) {
883
834
  newElement.setSize(node.getSize());
884
835
  newElement.setPosition(node.getPosition());
885
836
  newElement.setImage(node.getImage());
837
+ newElement.setParent(parentGroupElement);
886
838
  } // 选中
887
839
 
888
840
 
889
841
  sm = htTopo.getGraphView().sm();
890
- sm.setSelection([newElement]); // 临时放这里,仅拓扑中心有
842
+ sm.setSelection([newElement]);
891
843
 
892
- if (topo.linkDynamicStyleExecutor) {
893
- topo.linkDynamicStyleExecutor.execute();
894
- }
895
-
896
- case 11:
844
+ case 12:
897
845
  case "end":
898
- return _context8.stop();
846
+ return _context7.stop();
899
847
  }
900
- }, _callee8);
848
+ }, _callee7);
901
849
  }));
902
850
  return _doBind.apply(this, arguments);
903
851
  };
@@ -937,48 +885,55 @@ var useTopoEdit = function useTopoEdit(params) {
937
885
  config.resources = replaceOrAddRes(config.resources, oldResId, newResId);
938
886
  }
939
887
 
940
- _context9.next = 13;
888
+ _context8.next = 13;
941
889
  return resourceConfig.updateConfig(config);
942
890
 
943
891
  case 13:
944
- _context9.next = 15;
892
+ _context8.next = 15;
945
893
  return editDispatchers.fetchDataByConfig();
946
894
 
947
895
  case 15:
948
- _yield$editDispatcher = _context9.sent;
896
+ _yield$editDispatcher = _context8.sent;
949
897
  elements = _yield$editDispatcher.elements;
950
898
  newData = elements.find(function (item) {
951
899
  return item.id === newResId;
952
900
  });
953
901
 
954
- if (newData) {
955
- _context9.next = 23;
902
+ if (!newData) {
903
+ _context8.next = 25;
956
904
  break;
957
905
  }
958
906
 
959
- topo.historyManager.endTransaction();
907
+ _context8.next = 21;
908
+ return doBind();
960
909
 
961
- _Message.error("关联资源失败");
910
+ case 21:
911
+ topo.historyManager.endTransaction(); // 临时放这里,仅拓扑中心有
962
912
 
963
- rlog.error("关联资源失败");
964
- return _context9.abrupt("return", false);
913
+ if (topo.linkDynamicStyleExecutor) {
914
+ topo.linkDynamicStyleExecutor.execute();
915
+ }
965
916
 
966
- case 23:
967
- _context9.next = 25;
968
- return doBind();
917
+ _context8.next = 29;
918
+ break;
969
919
 
970
920
  case 25:
971
921
  topo.historyManager.endTransaction();
972
922
 
973
- case 26:
923
+ _Message.error("关联资源失败");
924
+
925
+ rlog.error("关联资源失败");
926
+ return _context8.abrupt("return", false);
927
+
928
+ case 29:
974
929
  case "end":
975
- return _context9.stop();
930
+ return _context8.stop();
976
931
  }
977
- }, _callee9);
932
+ }, _callee8);
978
933
  }));
979
934
 
980
- return function bindNodeResource(_x14) {
981
- return _ref8.apply(this, arguments);
935
+ return function bindNodeResource(_x13) {
936
+ return _ref7.apply(this, arguments);
982
937
  };
983
938
  }();
984
939
  /**
@@ -986,93 +941,96 @@ var useTopoEdit = function useTopoEdit(params) {
986
941
  */
987
942
 
988
943
 
989
- function relateNodeIp(_x15, _x16) {
944
+ function relateNodeIp(_x14, _x15, _x16) {
990
945
  return _relateNodeIp.apply(this, arguments);
991
946
  }
992
947
 
993
948
  function _relateNodeIp() {
994
- _relateNodeIp = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee15(txtValue, nodeElement) {
995
- var dm, isUnique, ipNodeData, configObj, configData, _elements2, newLinkElements, newLink, newLinkGroup, createElementsData, _htTopo;
949
+ _relateNodeIp = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee14(txtValue, nodeElement, disableHistory) {
950
+ var dm, isUnique, ipNodeData, configObj, configData, elements, newLinkElements, newLink, newLinkGroup, createElementsData, _htTopo;
996
951
 
997
- return _regeneratorRuntime.wrap(function _callee15$(_context15) {
998
- while (1) switch (_context15.prev = _context15.next) {
952
+ return _regeneratorRuntime.wrap(function _callee14$(_context14) {
953
+ while (1) switch (_context14.prev = _context14.next) {
999
954
  case 0:
955
+ if (disableHistory === void 0) {
956
+ disableHistory = false;
957
+ }
958
+
1000
959
  if (txtValue) {
1001
- _context15.next = 2;
960
+ _context14.next = 3;
1002
961
  break;
1003
962
  }
1004
963
 
1005
- return _context15.abrupt("return");
964
+ return _context14.abrupt("return");
1006
965
 
1007
- case 2:
1008
- // if (txtValue === nodeElement.a('bindIp')) {
1009
- // return;
1010
- // }
966
+ case 3:
1011
967
  // 根据配置查询拓扑数据
1012
968
  dm = topo.getDataModel(); // 执行唯一性验证
1013
969
 
1014
- isUnique = isUniqueIp(dm, txtValue, nodeElement); // 获取关联链路
970
+ isUnique = isUniqueIp(dm, txtValue, nodeElement);
1015
971
 
1016
- if (!isUnique) {
1017
- _context15.next = 24;
972
+ if (isUnique) {
973
+ _context14.next = 7;
1018
974
  break;
1019
975
  }
1020
976
 
1021
- ipNodeData = buildIpNode(txtValue);
1022
- _context15.next = 8;
1023
- return deleteExLink(nodeElement);
977
+ return _context14.abrupt("return");
1024
978
 
1025
- case 8:
979
+ case 7:
980
+ disableHistory && topo.historyManager.setDisabled(true, '关联IP: 删除关联出口链路、节点绑定IP'); // 删除关联出口链路
981
+
982
+ deleteExLink(nodeElement); // 节点绑定IP
983
+
984
+ ipNodeData = buildIpNode(txtValue);
1026
985
  nodeElement.a(ipNodeData);
1027
986
  nodeElement.setName(txtValue);
1028
- nodeElement.setTag("ip:" + txtValue); // 获取配置
987
+ nodeElement.setTag("ip:" + txtValue);
988
+ disableHistory && topo.historyManager.setDisabled(false, '关联IP: 删除关联出口链路、节点绑定IP'); // 获取配置
1029
989
 
1030
990
  configObj = topo.resourceConfig.getConfig();
1031
- _context15.next = 14;
991
+ _context14.next = 17;
1032
992
  return resourceConfig.updateConfig(configObj);
1033
993
 
1034
- case 14:
1035
- _context15.next = 16;
994
+ case 17:
995
+ _context14.next = 19;
1036
996
  return editDispatchers.fetchDataByConfig();
1037
997
 
1038
- case 16:
1039
- configData = _context15.sent;
1040
- // console.log("configData",configObj, configData);
1041
- _elements2 = configData.elements;
1042
- newLinkElements = findUNExistedLinkElements(_elements2); // console.log("configData", configData, newLinkElements);
1043
-
998
+ case 19:
999
+ configData = _context14.sent;
1000
+ elements = configData.elements;
1001
+ newLinkElements = findUNExistedLinkElements(elements);
1044
1002
  newLink = newLinkElements.filter(function (item) {
1045
1003
  return item.type === "link";
1046
1004
  });
1047
1005
  newLinkGroup = newLinkElements.filter(function (item) {
1048
1006
  return item.type === "linkGroup";
1049
- }); // const newData = elements.find((item) => item.id === `ip:${txtValue}`);
1050
- // console.log("newData",newLinkElements, newLink);
1051
-
1007
+ });
1052
1008
  createElementsData = {
1053
1009
  groups: [],
1054
1010
  nodes: [],
1055
1011
  links: newLink,
1056
1012
  linkGroups: newLinkGroup
1057
1013
  };
1058
- console.log("createElementsData", createElementsData);
1014
+ rlog.debug("createElementsData", createElementsData);
1059
1015
 
1060
1016
  if ([].concat(newLink, newLinkGroup).length > 0) {
1061
1017
  _htTopo = topo.getHtTopo();
1018
+ disableHistory && topo.historyManager.setDisabled(true, '关联IP: 创建链路');
1062
1019
 
1063
- _htTopo.createElements(createElementsData); // 临时放这里,仅拓扑中心有
1020
+ _htTopo.createElements(createElementsData);
1064
1021
 
1022
+ disableHistory && topo.historyManager.setDisabled(false, '关联IP: 创建链路'); // 临时放这里,仅拓扑中心有
1065
1023
 
1066
1024
  if (topo.linkDynamicStyleExecutor) {
1067
1025
  topo.linkDynamicStyleExecutor.execute();
1068
1026
  }
1069
1027
  }
1070
1028
 
1071
- case 24:
1029
+ case 27:
1072
1030
  case "end":
1073
- return _context15.stop();
1031
+ return _context14.stop();
1074
1032
  }
1075
- }, _callee15);
1033
+ }, _callee14);
1076
1034
  }));
1077
1035
  return _relateNodeIp.apply(this, arguments);
1078
1036
  }