@riil-frontend/component-topology 8.0.0-a.1 → 8.0.0-a.11

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 (59) hide show
  1. package/build/index.css +1 -1
  2. package/build/index.js +13 -13
  3. package/es/core/common/icons/basicIcons.js +1 -1
  4. package/es/core/common/icons/icon.js +6 -2
  5. package/es/core/editor/components/Toolbar/widgets/EdgeTypeButton/EdgeType.js +42 -24
  6. package/es/core/editor/components/Toolbar/widgets/EdgeTypeButton/LineType.js +7 -2
  7. package/es/core/editor/components/Toolbar/widgets/EdgeTypeButton/LineType.module.scss +4 -0
  8. package/es/core/editor/components/Toolbar/widgets/EdgeTypeButton/index.js +1 -0
  9. package/es/core/editor/utils/edgeTypeStyleUtil.js +2 -3
  10. package/es/core/hooks/usePolling.js +3 -3
  11. package/es/core/models/TopoApp.js +2 -2
  12. package/es/core/models/tagstips/ElementTagTipConfig.js +1 -1
  13. package/es/core/models/topoData.js +9 -1
  14. package/es/core/models/utils/linkUtils.js +31 -63
  15. package/es/core/services/overview.js +33 -9
  16. package/es/core/services/topo/basic.js +34 -0
  17. package/es/core/services/topo/constants.js +1 -0
  18. package/es/core/services/topo/index.js +4 -0
  19. package/es/core/store/models/topoConfig.js +6 -1
  20. package/es/core/viewer/components/plugins/ResourceDetail/components/ResourceOverview/ResourceOverview.js +124 -251
  21. package/es/core/viewer/components/plugins/ResourceDetail/components/ResourceOverview/ResourceOverviewMetric.js +4 -2
  22. package/es/core/viewer/components/plugins/ResourceDetail/components/ResourceOverview/components/LinkTopo/hooks/useMetricPolling.js +2 -2
  23. package/es/core/viewer/components/plugins/ResourceDetail/components/ResourceOverview/hooks/useAlarmAndRiskData.js +171 -0
  24. package/es/core/viewer/components/plugins/ResourceDetail/components/ResourceOverview/hooks/useMetricModels.js +3 -3
  25. package/es/core/viewer/components/titlebar/widgets/SearchWidget.js +4 -0
  26. package/es/networkTopo/services/topo/basic.js +4 -2
  27. package/es/networkTopo/store/linkManager.js +0 -1
  28. package/es/networkTopo/store/topoCenter.js +0 -1
  29. package/es/networkTopo/store/topoLinkMod.js +0 -1
  30. package/lib/core/common/icons/basicIcons.js +1 -1
  31. package/lib/core/common/icons/icon.js +6 -2
  32. package/lib/core/editor/components/Toolbar/widgets/EdgeTypeButton/EdgeType.js +43 -24
  33. package/lib/core/editor/components/Toolbar/widgets/EdgeTypeButton/LineType.js +8 -2
  34. package/lib/core/editor/components/Toolbar/widgets/EdgeTypeButton/LineType.module.scss +4 -0
  35. package/lib/core/editor/components/Toolbar/widgets/EdgeTypeButton/index.js +1 -0
  36. package/lib/core/editor/utils/edgeTypeStyleUtil.js +2 -3
  37. package/lib/core/hooks/usePolling.js +3 -3
  38. package/lib/core/models/TopoApp.js +3 -3
  39. package/lib/core/models/tagstips/ElementTagTipConfig.js +2 -2
  40. package/lib/core/models/topoData.js +9 -1
  41. package/lib/core/models/utils/linkUtils.js +32 -67
  42. package/lib/core/services/overview.js +32 -8
  43. package/lib/core/services/topo/basic.js +46 -0
  44. package/lib/core/services/topo/constants.js +6 -0
  45. package/lib/core/services/topo/index.js +16 -0
  46. package/lib/core/store/models/topoConfig.js +6 -1
  47. package/lib/core/viewer/components/plugins/ResourceDetail/components/ResourceOverview/ResourceOverview.js +125 -251
  48. package/lib/core/viewer/components/plugins/ResourceDetail/components/ResourceOverview/ResourceOverviewMetric.js +4 -2
  49. package/lib/core/viewer/components/plugins/ResourceDetail/components/ResourceOverview/components/LinkTopo/hooks/useMetricPolling.js +2 -2
  50. package/lib/core/viewer/components/plugins/ResourceDetail/components/ResourceOverview/hooks/useAlarmAndRiskData.js +184 -0
  51. package/lib/core/viewer/components/plugins/ResourceDetail/components/ResourceOverview/hooks/useMetricModels.js +3 -3
  52. package/lib/core/viewer/components/titlebar/widgets/SearchWidget.js +4 -0
  53. package/lib/networkTopo/services/topo/basic.js +4 -2
  54. package/lib/networkTopo/store/linkManager.js +0 -2
  55. package/lib/networkTopo/store/topoCenter.js +0 -2
  56. package/lib/networkTopo/store/topoLinkMod.js +0 -2
  57. package/package.json +2 -2
  58. /package/es/core/services/{topo.js → topo/tagtip.js} +0 -0
  59. /package/lib/core/services/{topo.js → topo/tagtip.js} +0 -0
@@ -4,7 +4,7 @@ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefau
4
4
 
5
5
  exports.__esModule = true;
6
6
  exports.buildTopoLinkData = buildTopoLinkData;
7
- exports.getInterfaceObject = exports.compatibleWith = void 0;
7
+ exports.compatibleWith = void 0;
8
8
  exports.getLinksDetail = getLinksDetail;
9
9
  exports.isCrucialLink = isCrucialLink;
10
10
  exports.isExitLink = isExitLink;
@@ -13,11 +13,9 @@ exports.showLinkByConfig = exports.plurals = void 0;
13
13
 
14
14
  var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
15
15
 
16
- var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
17
-
18
16
  var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
19
17
 
20
- var _topo = _interopRequireDefault(require("@riil-frontend/component-topology-common/es/services/topo"));
18
+ var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
21
19
 
22
20
  var _keyBy = _interopRequireDefault(require("lodash/keyBy"));
23
21
 
@@ -27,6 +25,8 @@ var _services = require("../../services");
27
25
 
28
26
  var _htElementUtils = require("../../../utils/htElementUtils");
29
27
 
28
+ var _CiTypeCache = _interopRequireDefault(require("../cache/CiTypeCache"));
29
+
30
30
  // 查询所有连线
31
31
  // const interfaceTypeMap = {
32
32
  // "network.interface": {
@@ -56,43 +56,6 @@ function isExitLink(link) {
56
56
  return (link === null || link === void 0 ? void 0 : link.attributes) && !(link !== null && link !== void 0 && link.attributes['destination_id']);
57
57
  }
58
58
 
59
- var getInterfaceObject = /*#__PURE__*/function () {
60
- var _ref = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee(codes) {
61
- var query, promises, result, ifDoc;
62
- return _regenerator["default"].wrap(function _callee$(_context) {
63
- while (1) {
64
- switch (_context.prev = _context.next) {
65
- case 0:
66
- query = _lodash["default"].compact(_lodash["default"].uniq(codes));
67
- promises = query.map(_services.queryModelAsset);
68
- _context.next = 4;
69
- return Promise.all(promises);
70
-
71
- case 4:
72
- result = _context.sent;
73
- ifDoc = {};
74
- result.map(function (ifItem) {
75
- ifDoc[ifItem.code] = {
76
- displayName: ifItem.displayName
77
- };
78
- });
79
- return _context.abrupt("return", ifDoc);
80
-
81
- case 8:
82
- case "end":
83
- return _context.stop();
84
- }
85
- }
86
- }, _callee);
87
- }));
88
-
89
- return function getInterfaceObject(_x) {
90
- return _ref.apply(this, arguments);
91
- };
92
- }();
93
-
94
- exports.getInterfaceObject = getInterfaceObject;
95
-
96
59
  function mergeLinksData(links, linkCis, nodes, interfaceCis, interfaceDoc) {
97
60
  var linkCiMap = (0, _keyBy["default"])(links, 'id');
98
61
  return links.map(function (link) {
@@ -135,57 +98,59 @@ function mergeLinksData(links, linkCis, nodes, interfaceCis, interfaceDoc) {
135
98
  });
136
99
  }
137
100
 
138
- function getLinksDetail(_x2, _x3) {
101
+ function getLinksDetail(_x, _x2) {
139
102
  return _getLinksDetail.apply(this, arguments);
140
103
  }
141
104
 
142
105
  function _getLinksDetail() {
143
- _getLinksDetail = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee2(links, nodes) {
106
+ _getLinksDetail = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee(links, nodes) {
144
107
  var linkCis, interfaceIds, interfaceTypes, interfaceCis, interfaceDoc;
145
- return _regenerator["default"].wrap(function _callee2$(_context2) {
108
+ return _regenerator["default"].wrap(function _callee$(_context) {
146
109
  while (1) {
147
- switch (_context2.prev = _context2.next) {
110
+ switch (_context.prev = _context.next) {
148
111
  case 0:
149
112
  if (!(!links || !links.length)) {
150
- _context2.next = 2;
113
+ _context.next = 2;
151
114
  break;
152
115
  }
153
116
 
154
- return _context2.abrupt("return", []);
117
+ return _context.abrupt("return", []);
155
118
 
156
119
  case 2:
157
120
  // const linkCis = await topoService.relation.batchQueryRelation(
158
121
  // links.map((link) => link.id)
159
122
  // );
160
123
  linkCis = links;
161
- interfaceIds = [];
162
- interfaceTypes = [];
163
- linkCis.forEach(function (item) {
164
- interfaceIds.push(item.attributes.source_id);
165
- interfaceIds.push(item.attributes.destination_id);
166
- interfaceTypes.push(item.attributes.source_type);
167
- interfaceTypes.push(item.attributes.destination_type);
124
+ interfaceIds = [].concat(linkCis.map(function (item) {
125
+ return item.attributes.source_id;
126
+ }), linkCis.map(function (item) {
127
+ return item.attributes.destination_id;
128
+ }));
129
+ interfaceTypes = _lodash["default"].compact(_lodash["default"].uniq([].concat(linkCis.map(function (item) {
130
+ return item.attributes.source_type;
131
+ }), linkCis.map(function (item) {
132
+ return item.attributes.destination_type;
133
+ })))).filter(function (item) {
134
+ return item !== 'ip';
168
135
  });
169
- _context2.next = 8;
136
+ _context.next = 7;
170
137
  return (0, _services.queryCisByIds)(interfaceIds);
171
138
 
172
- case 8:
173
- interfaceCis = _context2.sent;
174
- _context2.next = 11;
175
- return getInterfaceObject(interfaceTypes.filter(function (item) {
176
- return item !== 'ip';
177
- }));
139
+ case 7:
140
+ interfaceCis = _context.sent;
141
+ _context.next = 10;
142
+ return _CiTypeCache["default"].getCiTypeMap(interfaceTypes);
178
143
 
179
- case 11:
180
- interfaceDoc = _context2.sent;
181
- return _context2.abrupt("return", mergeLinksData(links, linkCis, nodes, interfaceCis, interfaceDoc));
144
+ case 10:
145
+ interfaceDoc = _context.sent;
146
+ return _context.abrupt("return", mergeLinksData(links, linkCis, nodes, interfaceCis, interfaceDoc));
182
147
 
183
- case 13:
148
+ case 12:
184
149
  case "end":
185
- return _context2.stop();
150
+ return _context.stop();
186
151
  }
187
152
  }
188
- }, _callee2);
153
+ }, _callee);
189
154
  }));
190
155
  return _getLinksDetail.apply(this, arguments);
191
156
  }
@@ -13,6 +13,10 @@ var _componentTopologyUtils = require("@riil-frontend/component-topology-utils")
13
13
 
14
14
  var _cmdb = require("./cmdb");
15
15
 
16
+ // 机房可上架设备类型缓存数据
17
+ var roomDeviceTypeList = null; // 资源子组件缓存
18
+
19
+ var ciComponentsMap = {};
16
20
  var _default = {
17
21
  /**
18
22
  * 根据资源id获取风险
@@ -46,19 +50,31 @@ var _default = {
46
50
  */
47
51
  queryAllComponentsByCiId: function queryAllComponentsByCiId(id) {
48
52
  return (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee2() {
53
+ var components;
49
54
  return _regenerator["default"].wrap(function _callee2$(_context2) {
50
55
  while (1) {
51
56
  switch (_context2.prev = _context2.next) {
52
57
  case 0:
53
- _context2.next = 2;
58
+ components = ciComponentsMap[id];
59
+
60
+ if (components) {
61
+ _context2.next = 6;
62
+ break;
63
+ }
64
+
65
+ _context2.next = 4;
54
66
  return _componentTopologyUtils.request.post('/mdc/v1/api/cmdb/queryAllComponentsByCiId', {
55
67
  id: id
56
68
  });
57
69
 
58
- case 2:
59
- return _context2.abrupt("return", _context2.sent);
70
+ case 4:
71
+ components = _context2.sent;
72
+ ciComponentsMap[id] = components;
60
73
 
61
- case 3:
74
+ case 6:
75
+ return _context2.abrupt("return", components);
76
+
77
+ case 7:
62
78
  case "end":
63
79
  return _context2.stop();
64
80
  }
@@ -197,13 +213,21 @@ var _default = {
197
213
  while (1) {
198
214
  switch (_context8.prev = _context8.next) {
199
215
  case 0:
200
- _context8.next = 2;
201
- return _componentTopologyUtils.request.post("/room/v1/api/device/type/list", {});
216
+ if (roomDeviceTypeList) {
217
+ _context8.next = 4;
218
+ break;
219
+ }
202
220
 
203
- case 2:
204
- return _context8.abrupt("return", _context8.sent);
221
+ _context8.next = 3;
222
+ return _componentTopologyUtils.request.post("/room/v1/api/device/type/list", {});
205
223
 
206
224
  case 3:
225
+ roomDeviceTypeList = _context8.sent;
226
+
227
+ case 4:
228
+ return _context8.abrupt("return", roomDeviceTypeList);
229
+
230
+ case 5:
207
231
  case "end":
208
232
  return _context8.stop();
209
233
  }
@@ -0,0 +1,46 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+
5
+ exports.__esModule = true;
6
+ exports["default"] = void 0;
7
+
8
+ var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
9
+
10
+ var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
11
+
12
+ var _componentTopologyUtils = require("@riil-frontend/component-topology-utils");
13
+
14
+ var _constants = require("./constants");
15
+
16
+ var _default = {
17
+ /**
18
+ * 保存拓扑绘制数据(第三方库内部结构,无需关心含义)
19
+ * @param {Number} id Topo ID
20
+ * @param {String} data ht拓扑序列化数据
21
+ * @returns
22
+ */
23
+ saveSerializeData: function saveSerializeData(id, data) {
24
+ return (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee() {
25
+ return _regenerator["default"].wrap(function _callee$(_context) {
26
+ while (1) {
27
+ switch (_context.prev = _context.next) {
28
+ case 0:
29
+ _context.next = 2;
30
+ return _componentTopologyUtils.request.post(_constants.TOPO_API_ROOT + "/structure/" + id, {
31
+ data: data
32
+ });
33
+
34
+ case 2:
35
+ return _context.abrupt("return", _context.sent);
36
+
37
+ case 3:
38
+ case "end":
39
+ return _context.stop();
40
+ }
41
+ }
42
+ }, _callee);
43
+ }))();
44
+ }
45
+ };
46
+ exports["default"] = _default;
@@ -0,0 +1,6 @@
1
+ "use strict";
2
+
3
+ exports.__esModule = true;
4
+ exports.TOPO_API_ROOT = void 0;
5
+ var TOPO_API_ROOT = '/topo/v1/api';
6
+ exports.TOPO_API_ROOT = TOPO_API_ROOT;
@@ -0,0 +1,16 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+
5
+ exports.__esModule = true;
6
+ exports["default"] = void 0;
7
+
8
+ var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
9
+
10
+ var _topo = _interopRequireDefault(require("@riil-frontend/component-topology-common/es/services/topo"));
11
+
12
+ var _basic = _interopRequireDefault(require("./basic"));
13
+
14
+ var _default = (0, _extends2["default"])({}, _topo["default"], _basic["default"]);
15
+
16
+ exports["default"] = _default;
@@ -407,7 +407,12 @@ function _default(topoApp) {
407
407
  alarmListDefaultOpen: displayConfig.alarmListDefaultOpen,
408
408
  extraConfig: JSON.stringify((0, _extends2["default"])({}, displayConfig, {
409
409
  // 背景图,便于加载拓扑直接显示背景图
410
- background: topoApp.store.getModelState("background").current
410
+ background: topoApp.store.getModelState("background").current,
411
+ // 增加保存日志,便于排查链路重复问题 2023-4-12 19:27:18
412
+ saveHistories: [{
413
+ date: new Date().toLocaleString(),
414
+ version: topoApp.version
415
+ }].concat(displayConfig.saveHistories || [])
411
416
  }))
412
417
  };
413
418