@riil-frontend/component-topology 13.0.0-dev.1 → 13.0.0-dev.2

Sign up to get free protection for your applications and to get access to all the features.
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
  }