@riil-frontend/component-topology 12.1.0-dev.12 → 12.1.0-dev.14

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.
@@ -4,6 +4,7 @@ import _extends from "@babel/runtime/helpers/extends";
4
4
  import _Button from "@alifd/next/es/button";
5
5
  import _Icon from "@alifd/next/es/icon";
6
6
  import React, { useMemo, useState } from 'react';
7
+ import NoDataPage from '@riil-frontend/component-no-data-page';
7
8
  import Collapse from "../../../../../../components/collapse/Collapse";
8
9
  import CiTypeImagePanel from "./CiTypeImagePanel";
9
10
  import CustomImagePanel from "./CustomImagePanel";
@@ -106,12 +107,16 @@ export default function ImagePanel(props) {
106
107
  }].filter(function (panel) {
107
108
  return !panel.hidden;
108
109
  });
110
+
111
+ if (!panels.length) {
112
+ return /*#__PURE__*/React.createElement(NoDataPage, null);
113
+ }
114
+
109
115
  return /*#__PURE__*/React.createElement(Collapse, {
110
116
  accordion: true,
111
117
  defaultExpandedKeys: ['资源图片'],
112
118
  style: {
113
- border: 'none',
114
- minWidth: '300px'
119
+ border: 'none'
115
120
  },
116
121
  fullheight: true,
117
122
  noContentPadding: true
@@ -140,6 +145,9 @@ export default function ImagePanel(props) {
140
145
  width: '100%'
141
146
  }
142
147
  })), /*#__PURE__*/React.createElement(_Box, {
143
- flex: 1
148
+ flex: 1,
149
+ style: {
150
+ minWidth: '300px'
151
+ }
144
152
  }, renderImageContent()));
145
153
  }
@@ -1,7 +1,8 @@
1
+ import Logger from 'loglevel';
2
+ var rlog = Logger.getLogger('topo');
1
3
  export default function updateElementProperty(topo, name, value) {
2
- // const element = topo.getDataModel().getDataById(selection[0].id);
3
4
  var element = topo.getSelectionModel().getFirstData();
4
- console.info("updateElementProperty", topo.getSelectionModel().getSelection(), {
5
+ rlog.debug("updateElementProperty. ", {
5
6
  element: element,
6
7
  name: name,
7
8
  value: value
@@ -417,8 +417,7 @@ var useTopoEdit = function useTopoEdit(params) {
417
417
  });
418
418
  needDeleteHtDatas.forEach(function (htData) {
419
419
  return dm.remove(htData);
420
- }); // 区域里的子区域及子区域的节点、新增的链路
421
- // 区域里的所有节点
420
+ }); // 区域里的所有子节点子区域、新增的链路
422
421
 
423
422
  nodeElements = findGroupChildren(elements, group);
424
423
  newLinkElements = findUNExistedLinkElements(elements);
@@ -430,17 +429,7 @@ var useTopoEdit = function useTopoEdit(params) {
430
429
  if (topo.linkDynamicStyleExecutor) {
431
430
  topo.linkDynamicStyleExecutor.execute();
432
431
  }
433
- } // const unExistedElements = findUNExistedElements(elements)
434
- // const createElementsData = {
435
- // groups: unExistedElements.filter((item) => item.type === "group"),
436
- // nodes: unExistedElements.filter((item) => item.type === "node"),
437
- // links: unExistedElements.filter((item) => item.type === "link"),
438
- // linkGroups: unExistedElements.filter((item) => item.type === "linkGroup"),
439
- // };
440
- // const htTopo = topo.getHtTopo()
441
- // htTopo.createElements(createElementsData);
442
- // rlog.debug('==> ht: createElements ', createElementsData)
443
-
432
+ }
444
433
 
445
434
  topo.historyManager.endTransaction();
446
435
 
@@ -773,13 +762,22 @@ var useTopoEdit = function useTopoEdit(params) {
773
762
 
774
763
  _doBind = function _doBind3() {
775
764
  _doBind = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee7() {
776
- var dm, newLinkElements, createElementsData, groupChildren, newGroupChildren, existedGroupChildren, groupElement, newElement, sm;
765
+ var dm, needDeleteHtDatas, newLinkElements, createElementsData, groupChildren, newGroupChildren, existedGroupChildren, groupElement, newElement, sm;
777
766
  return _regeneratorRuntime.wrap(function _callee7$(_context7) {
778
767
  while (1) switch (_context7.prev = _context7.next) {
779
768
  case 0:
780
769
  dm = htTopo.getGraphView().dm(); // 移除旧节点。先删除后创建,解决ip节点替换ping资源后链路丢失问题
781
770
 
782
- 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
+ }); // 创建
783
781
 
784
782
  newLinkElements = findUNExistedLinkElements(elements);
785
783
  createElementsData = null;
@@ -843,7 +841,7 @@ var useTopoEdit = function useTopoEdit(params) {
843
841
  sm = htTopo.getGraphView().sm();
844
842
  sm.setSelection([newElement]);
845
843
 
846
- case 10:
844
+ case 12:
847
845
  case "end":
848
846
  return _context7.stop();
849
847
  }
@@ -24,7 +24,7 @@ import ElementTagTipConfig from "./tagstips/ElementTagTipConfig";
24
24
  import SelectionModel from "./SelectionModel";
25
25
  import CiCache from "./cache/CiCache"; // eslint-disable-next-line no-undef
26
26
 
27
- var version = typeof "12.1.0-dev.12" === 'string' ? "12.1.0-dev.12" : null;
27
+ var version = typeof "12.1.0-dev.14" === 'string' ? "12.1.0-dev.14" : null;
28
28
  console.info("\u62D3\u6251\u7248\u672C: " + version);
29
29
  /**
30
30
  * 拓扑显示和编辑
@@ -41,7 +41,7 @@ export function saveTopo(_x) {
41
41
 
42
42
  function _saveTopo() {
43
43
  _saveTopo = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee(data) {
44
- var topoService, topoId, template, layout, backgroundId, globalConfig, serialize, resources, groups, relateTopoIdList, viewGroupId, groupInfo, viewResources, linkIps;
44
+ var topoService, topoId, template, layout, backgroundId, globalConfig, serialize, resources, groups, relateTopoIdList, viewGroupId, groupInfo, viewResources;
45
45
  return _regeneratorRuntime.wrap(function _callee$(_context) {
46
46
  while (1) switch (_context.prev = _context.next) {
47
47
  case 0:
@@ -72,7 +72,7 @@ function _saveTopo() {
72
72
 
73
73
  case 8:
74
74
  if (!(resources || groups)) {
75
- _context.next = 16;
75
+ _context.next = 15;
76
76
  break;
77
77
  }
78
78
 
@@ -94,30 +94,23 @@ function _saveTopo() {
94
94
  });
95
95
  }
96
96
 
97
- linkIps = []; // resources?.static.map((nodeId) => {
98
- // if (nodeId.startsWith("ip_")) {
99
- // linkIps.push(nodeId.replace("ip_", ""));
100
- // }
101
- // });
102
-
103
97
  rlog.debug("saveTopo-groupInfo", groupInfo);
104
- _context.next = 16;
98
+ _context.next = 15;
105
99
  return topoService.bindResourceToTopo(topoId, {
106
100
  groups: groupInfo,
107
- linkIps: linkIps,
108
101
  relateTopoIdList: relateTopoIdList
109
102
  });
110
103
 
111
- case 16:
104
+ case 15:
112
105
  if (!serialize) {
113
- _context.next = 19;
106
+ _context.next = 18;
114
107
  break;
115
108
  }
116
109
 
117
- _context.next = 19;
110
+ _context.next = 18;
118
111
  return topoService.saveSerializeData(topoId, serialize);
119
112
 
120
- case 19:
113
+ case 18:
121
114
  case "end":
122
115
  return _context.stop();
123
116
  }
@@ -322,10 +322,11 @@ export default function (topoApp) {
322
322
 
323
323
  case 11:
324
324
  data = _context4.sent;
325
- _context4.next = 14;
325
+ rlog.debug("getTopoByConditions--------", data, groupInfo);
326
+ _context4.next = 15;
326
327
  return Promise.all([addLinkData(data), topoApp.ciTyeCache.load(getCiTypes(data)), dispatch.customIcon.loadCustomIcons()]);
327
328
 
328
- case 14:
329
+ case 15:
329
330
  _yield$Promise$all = _context4.sent;
330
331
  dataWithLinkDetail = _yield$Promise$all[0];
331
332
  _combTopoData = combTopoData({
@@ -352,7 +353,7 @@ export default function (topoApp) {
352
353
  topoDataTrans: topoDataTrans
353
354
  });
354
355
 
355
- case 22:
356
+ case 23:
356
357
  case "end":
357
358
  return _context4.stop();
358
359
  }
@@ -239,9 +239,10 @@ function updateLinkTarget(links, nodes) {
239
239
 
240
240
 
241
241
  export function processByConditionResult(topoData, groupConfigs) {
242
- var nodes = topoData.nodes,
242
+ var groups = topoData.groups,
243
+ nodes = topoData.nodes,
243
244
  links = topoData.links;
244
- var ipNodes = getIpNodes(groupConfigs, nodes); // 出口链路目的端设置为IP节点或者ping资源节点id
245
+ var ipNodes = getIpNodes(groupConfigs, topoData); // 出口链路目的端设置为IP节点或者ping资源节点id
245
246
 
246
247
  var newLinks = updateLinkTarget(links, nodes);
247
248
  return _extends({}, topoData, {
@@ -249,15 +250,26 @@ export function processByConditionResult(topoData, groupConfigs) {
249
250
  links: newLinks
250
251
  });
251
252
 
252
- function getIpNodes(groupConfigs, nodes) {
253
- var ips = groupConfigs.map(function (g) {
254
- return g.condition.linkIps;
255
- }).reduce(function (result, groupIps) {
256
- return [].concat(result, groupIps);
257
- }, []) // 过滤ping资源对应的ip节点
258
- .filter(function (ip) {
259
- return !findPingNode(nodes, ip);
253
+ function getIpNodes(groupConfigs, _ref) {
254
+ var groups = _ref.groups,
255
+ nodes = _ref.nodes;
256
+ var ipNodes = [];
257
+ groupConfigs.forEach(function (g) {
258
+ g.condition.linkIps // 过滤ping资源对应的ip节点
259
+ .filter(function (ip) {
260
+ return !findPingNode(nodes, ip);
261
+ }).map(function (ip) {
262
+ var topoGroup = g.topoGroup;
263
+ var group = groups.find(function (item) {
264
+ return item.id === topoGroup.id || item.tag === topoGroup.tag;
265
+ });
266
+ ipNodes.push(_extends({}, buildIpNode(ip), {
267
+ // 解决区域里有ip添加资源ip消失的问题
268
+ 'groupId': group === null || group === void 0 ? void 0 : group.id,
269
+ 'groupTag': group === null || group === void 0 ? void 0 : group.tag
270
+ }));
271
+ });
260
272
  });
261
- return ips.map(buildIpNode);
273
+ return ipNodes;
262
274
  }
263
275
  }
@@ -17,6 +17,8 @@ var _icon = _interopRequireDefault(require("@alifd/next/lib/icon"));
17
17
 
18
18
  var _react = _interopRequireWildcard(require("react"));
19
19
 
20
+ var _componentNoDataPage = _interopRequireDefault(require("@riil-frontend/component-no-data-page"));
21
+
20
22
  var _Collapse = _interopRequireDefault(require("../../../../../../components/collapse/Collapse"));
21
23
 
22
24
  var _CiTypeImagePanel = _interopRequireDefault(require("./CiTypeImagePanel"));
@@ -130,12 +132,16 @@ function ImagePanel(props) {
130
132
  }].filter(function (panel) {
131
133
  return !panel.hidden;
132
134
  });
135
+
136
+ if (!panels.length) {
137
+ return /*#__PURE__*/_react["default"].createElement(_componentNoDataPage["default"], null);
138
+ }
139
+
133
140
  return /*#__PURE__*/_react["default"].createElement(_Collapse["default"], {
134
141
  accordion: true,
135
142
  defaultExpandedKeys: ['资源图片'],
136
143
  style: {
137
- border: 'none',
138
- minWidth: '300px'
144
+ border: 'none'
139
145
  },
140
146
  fullheight: true,
141
147
  noContentPadding: true
@@ -164,6 +170,9 @@ function ImagePanel(props) {
164
170
  width: '100%'
165
171
  }
166
172
  })), /*#__PURE__*/_react["default"].createElement(_box["default"], {
167
- flex: 1
173
+ flex: 1,
174
+ style: {
175
+ minWidth: '300px'
176
+ }
168
177
  }, renderImageContent()));
169
178
  }
@@ -1,12 +1,17 @@
1
1
  "use strict";
2
2
 
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+
3
5
  exports.__esModule = true;
4
6
  exports["default"] = updateElementProperty;
5
7
 
8
+ var _loglevel = _interopRequireDefault(require("loglevel"));
9
+
10
+ var rlog = _loglevel["default"].getLogger('topo');
11
+
6
12
  function updateElementProperty(topo, name, value) {
7
- // const element = topo.getDataModel().getDataById(selection[0].id);
8
13
  var element = topo.getSelectionModel().getFirstData();
9
- console.info("updateElementProperty", topo.getSelectionModel().getSelection(), {
14
+ rlog.debug("updateElementProperty. ", {
10
15
  element: element,
11
16
  name: name,
12
17
  value: value
@@ -446,8 +446,7 @@ var useTopoEdit = function useTopoEdit(params) {
446
446
  });
447
447
  needDeleteHtDatas.forEach(function (htData) {
448
448
  return dm.remove(htData);
449
- }); // 区域里的子区域及子区域的节点、新增的链路
450
- // 区域里的所有节点
449
+ }); // 区域里的所有子节点子区域、新增的链路
451
450
 
452
451
  nodeElements = (0, _topoData.findGroupChildren)(elements, group);
453
452
  newLinkElements = findUNExistedLinkElements(elements);
@@ -459,17 +458,7 @@ var useTopoEdit = function useTopoEdit(params) {
459
458
  if (topo.linkDynamicStyleExecutor) {
460
459
  topo.linkDynamicStyleExecutor.execute();
461
460
  }
462
- } // const unExistedElements = findUNExistedElements(elements)
463
- // const createElementsData = {
464
- // groups: unExistedElements.filter((item) => item.type === "group"),
465
- // nodes: unExistedElements.filter((item) => item.type === "node"),
466
- // links: unExistedElements.filter((item) => item.type === "link"),
467
- // linkGroups: unExistedElements.filter((item) => item.type === "linkGroup"),
468
- // };
469
- // const htTopo = topo.getHtTopo()
470
- // htTopo.createElements(createElementsData);
471
- // rlog.debug('==> ht: createElements ', createElementsData)
472
-
461
+ }
473
462
 
474
463
  topo.historyManager.endTransaction();
475
464
 
@@ -802,13 +791,22 @@ var useTopoEdit = function useTopoEdit(params) {
802
791
 
803
792
  _doBind = function _doBind3() {
804
793
  _doBind = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee7() {
805
- var dm, newLinkElements, createElementsData, groupChildren, newGroupChildren, existedGroupChildren, groupElement, newElement, sm;
794
+ var dm, needDeleteHtDatas, newLinkElements, createElementsData, groupChildren, newGroupChildren, existedGroupChildren, groupElement, newElement, sm;
806
795
  return _regenerator["default"].wrap(function _callee7$(_context7) {
807
796
  while (1) switch (_context7.prev = _context7.next) {
808
797
  case 0:
809
798
  dm = htTopo.getGraphView().dm(); // 移除旧节点。先删除后创建,解决ip节点替换ping资源后链路丢失问题
810
799
 
811
- dm.remove(node); // 创建
800
+ dm.remove(node); // 先删除多余的元素。解决 区域子节点关联ping,未更新显示链路及删除ip节点
801
+
802
+ needDeleteHtDatas = (0, _htElementUtils.getElements)(dm).filter(function (htData) {
803
+ return htData.a('id') && !elements.find(function (ele) {
804
+ return ele.id === htData.a('id');
805
+ });
806
+ });
807
+ needDeleteHtDatas.forEach(function (htData) {
808
+ return dm.remove(htData);
809
+ }); // 创建
812
810
 
813
811
  newLinkElements = findUNExistedLinkElements(elements);
814
812
  createElementsData = null;
@@ -872,7 +870,7 @@ var useTopoEdit = function useTopoEdit(params) {
872
870
  sm = htTopo.getGraphView().sm();
873
871
  sm.setSelection([newElement]);
874
872
 
875
- case 10:
873
+ case 12:
876
874
  case "end":
877
875
  return _context7.stop();
878
876
  }
@@ -54,7 +54,7 @@ var _SelectionModel = _interopRequireDefault(require("./SelectionModel"));
54
54
  var _CiCache = _interopRequireDefault(require("./cache/CiCache"));
55
55
 
56
56
  // eslint-disable-next-line no-undef
57
- var version = typeof "12.1.0-dev.12" === 'string' ? "12.1.0-dev.12" : null;
57
+ var version = typeof "12.1.0-dev.14" === 'string' ? "12.1.0-dev.14" : null;
58
58
  console.info("\u62D3\u6251\u7248\u672C: " + version);
59
59
  /**
60
60
  * 拓扑显示和编辑
@@ -57,7 +57,7 @@ function saveTopo(_x) {
57
57
 
58
58
  function _saveTopo() {
59
59
  _saveTopo = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee(data) {
60
- var topoService, topoId, template, layout, backgroundId, globalConfig, serialize, resources, groups, relateTopoIdList, viewGroupId, groupInfo, viewResources, linkIps;
60
+ var topoService, topoId, template, layout, backgroundId, globalConfig, serialize, resources, groups, relateTopoIdList, viewGroupId, groupInfo, viewResources;
61
61
  return _regenerator["default"].wrap(function _callee$(_context) {
62
62
  while (1) switch (_context.prev = _context.next) {
63
63
  case 0:
@@ -90,7 +90,7 @@ function _saveTopo() {
90
90
 
91
91
  case 8:
92
92
  if (!(resources || groups)) {
93
- _context.next = 16;
93
+ _context.next = 15;
94
94
  break;
95
95
  }
96
96
 
@@ -112,31 +112,24 @@ function _saveTopo() {
112
112
  });
113
113
  }
114
114
 
115
- linkIps = []; // resources?.static.map((nodeId) => {
116
- // if (nodeId.startsWith("ip_")) {
117
- // linkIps.push(nodeId.replace("ip_", ""));
118
- // }
119
- // });
120
-
121
115
  _rlog["default"].debug("saveTopo-groupInfo", groupInfo);
122
116
 
123
- _context.next = 16;
117
+ _context.next = 15;
124
118
  return topoService.bindResourceToTopo(topoId, {
125
119
  groups: groupInfo,
126
- linkIps: linkIps,
127
120
  relateTopoIdList: relateTopoIdList
128
121
  });
129
122
 
130
- case 16:
123
+ case 15:
131
124
  if (!serialize) {
132
- _context.next = 19;
125
+ _context.next = 18;
133
126
  break;
134
127
  }
135
128
 
136
- _context.next = 19;
129
+ _context.next = 18;
137
130
  return topoService.saveSerializeData(topoId, serialize);
138
131
 
139
- case 19:
132
+ case 18:
140
133
  case "end":
141
134
  return _context.stop();
142
135
  }
@@ -340,10 +340,11 @@ function _default(topoApp) {
340
340
 
341
341
  case 11:
342
342
  data = _context4.sent;
343
- _context4.next = 14;
343
+ rlog.debug("getTopoByConditions--------", data, groupInfo);
344
+ _context4.next = 15;
344
345
  return Promise.all([(0, _getTopoData.addLinkData)(data), topoApp.ciTyeCache.load((0, _topoData.getCiTypes)(data)), dispatch.customIcon.loadCustomIcons()]);
345
346
 
346
- case 14:
347
+ case 15:
347
348
  _yield$Promise$all = _context4.sent;
348
349
  dataWithLinkDetail = _yield$Promise$all[0];
349
350
  _combTopoData = (0, _topoData.combTopoData)({
@@ -370,7 +371,7 @@ function _default(topoApp) {
370
371
  topoDataTrans: topoDataTrans
371
372
  });
372
373
 
373
- case 22:
374
+ case 23:
374
375
  case "end":
375
376
  return _context4.stop();
376
377
  }
@@ -251,9 +251,10 @@ function updateLinkTarget(links, nodes) {
251
251
 
252
252
 
253
253
  function processByConditionResult(topoData, groupConfigs) {
254
- var nodes = topoData.nodes,
254
+ var groups = topoData.groups,
255
+ nodes = topoData.nodes,
255
256
  links = topoData.links;
256
- var ipNodes = getIpNodes(groupConfigs, nodes); // 出口链路目的端设置为IP节点或者ping资源节点id
257
+ var ipNodes = getIpNodes(groupConfigs, topoData); // 出口链路目的端设置为IP节点或者ping资源节点id
257
258
 
258
259
  var newLinks = updateLinkTarget(links, nodes);
259
260
  return (0, _extends2["default"])({}, topoData, {
@@ -261,15 +262,26 @@ function processByConditionResult(topoData, groupConfigs) {
261
262
  links: newLinks
262
263
  });
263
264
 
264
- function getIpNodes(groupConfigs, nodes) {
265
- var ips = groupConfigs.map(function (g) {
266
- return g.condition.linkIps;
267
- }).reduce(function (result, groupIps) {
268
- return [].concat(result, groupIps);
269
- }, []) // 过滤ping资源对应的ip节点
270
- .filter(function (ip) {
271
- return !findPingNode(nodes, ip);
265
+ function getIpNodes(groupConfigs, _ref) {
266
+ var groups = _ref.groups,
267
+ nodes = _ref.nodes;
268
+ var ipNodes = [];
269
+ groupConfigs.forEach(function (g) {
270
+ g.condition.linkIps // 过滤ping资源对应的ip节点
271
+ .filter(function (ip) {
272
+ return !findPingNode(nodes, ip);
273
+ }).map(function (ip) {
274
+ var topoGroup = g.topoGroup;
275
+ var group = groups.find(function (item) {
276
+ return item.id === topoGroup.id || item.tag === topoGroup.tag;
277
+ });
278
+ ipNodes.push((0, _extends2["default"])({}, buildIpNode(ip), {
279
+ // 解决区域里有ip添加资源ip消失的问题
280
+ 'groupId': group === null || group === void 0 ? void 0 : group.id,
281
+ 'groupTag': group === null || group === void 0 ? void 0 : group.tag
282
+ }));
283
+ });
272
284
  });
273
- return ips.map(buildIpNode);
285
+ return ipNodes;
274
286
  }
275
287
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@riil-frontend/component-topology",
3
- "version": "12.1.0-dev.12",
3
+ "version": "12.1.0-dev.14",
4
4
  "description": "拓扑",
5
5
  "scripts": {
6
6
  "start": "build-scripts start",
@@ -123,6 +123,6 @@
123
123
  "access": "public"
124
124
  },
125
125
  "license": "MIT",
126
- "homepage": "https://unpkg.com/@riil-frontend/component-topology@12.1.0-dev.12/build/index.html",
126
+ "homepage": "https://unpkg.com/@riil-frontend/component-topology@12.1.0-dev.14/build/index.html",
127
127
  "gitHead": "2da19ffccbb7ca60a8acf396e39f542c68bb33f5"
128
128
  }