@riil-frontend/component-topology 12.0.0-dev.26 → 12.0.0-dev.27

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.
@@ -1,32 +1,165 @@
1
1
  "use strict";
2
2
 
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+
3
5
  exports.__esModule = true;
4
6
  exports["default"] = useCmpLinkAlarm;
5
7
 
8
+ var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
9
+
10
+ var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
11
+
12
+ var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
13
+
14
+ var _react = require("react");
15
+
16
+ var _ahooks = require("ahooks");
17
+
18
+ var _DictCache = _interopRequireDefault(require("../models/cache/DictCache"));
19
+
20
+ function addCmpLinkOfflineStatusForDisplayLineColor(cis, cmpLinkRunStatusList) {
21
+ return cis.map(function (ci) {
22
+ var cmpLinkRunStatusData = cmpLinkRunStatusList.find(function (item) {
23
+ return item.id === ci.id;
24
+ });
25
+
26
+ if (cmpLinkRunStatusData) {
27
+ return (0, _extends2["default"])({}, ci, {
28
+ manageStatus: cmpLinkRunStatusData.runStatus === '2' ? 0 : 3
29
+ });
30
+ }
31
+
32
+ return ci;
33
+ });
34
+ }
35
+
36
+ function getCmpLinIds(datas) {
37
+ var linkIds = datas.filter(function (item) {
38
+ return item.isSubResource && item.typeCode === 'network_link';
39
+ }).map(function (item) {
40
+ return item.ciId;
41
+ });
42
+ return linkIds;
43
+ }
6
44
  /**
7
- * 分级链路
45
+ * 分级链路下級鏈路
8
46
  * @param {*} props
9
47
  * @returns
10
48
  */
49
+
50
+
11
51
  function useCmpLinkAlarm(props) {
12
- var topo = props.topo;
52
+ var topo = props.topo,
53
+ resources = props.resources,
54
+ graphLoaded = props.graphLoaded;
13
55
 
14
- var _topo$store$useModelS = topo.store.useModelState('topoBizMod'),
15
- attrsAndMetrics = _topo$store$useModelS.attrsAndMetrics;
56
+ var _useState = (0, _react.useState)(getCmpLinIds(resources)),
57
+ cmpLinkIds = _useState[0],
58
+ setCmpLinkIds = _useState[1];
16
59
 
17
- var cmpLinkAlarmLevels = attrsAndMetrics.filter(function (item) {
18
- return item.typeCode === 'network_link';
19
- }) // 3:fault:重要故障; 4:urgently:紧急故障 』为红色
20
- .filter(function (item) {
21
- return ['3', '4'].includes(item.metrics.run_status);
22
- }).map(function (item) {
23
- return {
24
- id: item.id,
25
- level: 1
26
- };
27
- });
60
+ var _useState2 = (0, _react.useState)([]),
61
+ cmpLinkRunStatus = _useState2[0],
62
+ setCmpLinkRunStatus = _useState2[1];
63
+
64
+ var cmpLinkAlarmLevels = (0, _react.useMemo)(function () {
65
+ return cmpLinkRunStatus // 3:fault:重要故障; 4:urgently:紧急故障 』为红色
66
+ .filter(function (item) {
67
+ return ['3', '4'].includes(item.runStatus);
68
+ }).map(function (item) {
69
+ return {
70
+ id: item.id,
71
+ level: 1
72
+ };
73
+ });
74
+ }, [cmpLinkRunStatus]);
75
+ (0, _react.useEffect)(function () {
76
+ var ids = getCmpLinIds(resources);
77
+
78
+ if (cmpLinkIds.join(',') !== ids.join(',')) {
79
+ setCmpLinkIds(ids);
80
+ }
81
+ }, [resources]);
82
+
83
+ function getCmpLinkRunStatus(_x) {
84
+ return _getCmpLinkRunStatus.apply(this, arguments);
85
+ } // 轮询hooks
86
+
87
+
88
+ function _getCmpLinkRunStatus() {
89
+ _getCmpLinkRunStatus = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee(ids) {
90
+ var _yield$Promise$all, ciMetricsResult;
91
+
92
+ return _regenerator["default"].wrap(function _callee$(_context) {
93
+ while (1) switch (_context.prev = _context.next) {
94
+ case 0:
95
+ if (ids.length) {
96
+ _context.next = 2;
97
+ break;
98
+ }
99
+
100
+ return _context.abrupt("return", []);
101
+
102
+ case 2:
103
+ _context.t0 = Promise;
104
+ _context.t1 = // 查询指标值
105
+ topo.serverApi.ciInfo.batchQueryCiInfo({
106
+ ciId: [],
107
+ codes: ['run_status'],
108
+ relationId: ids.map(function (id) {
109
+ return {
110
+ ciId: id,
111
+ operation: "delete"
112
+ };
113
+ })
114
+ });
115
+ _context.next = 6;
116
+ return _DictCache["default"].init();
117
+
118
+ case 6:
119
+ _context.t2 = _context.sent;
120
+ _context.t3 = [_context.t1, _context.t2];
121
+ _context.next = 10;
122
+ return _context.t0.all.call(_context.t0, _context.t3);
123
+
124
+ case 10:
125
+ _yield$Promise$all = _context.sent;
126
+ ciMetricsResult = _yield$Promise$all[0];
127
+ return _context.abrupt("return", ciMetricsResult);
128
+
129
+ case 13:
130
+ case "end":
131
+ return _context.stop();
132
+ }
133
+ }, _callee);
134
+ }));
135
+ return _getCmpLinkRunStatus.apply(this, arguments);
136
+ }
137
+
138
+ var _useRequest = (0, _ahooks.useRequest)(getCmpLinkRunStatus, {
139
+ pollingInterval: 60 * 1000,
140
+ pollingWhenHidden: false,
141
+ // debounceInterval: 200,
142
+ manual: true,
143
+ onSuccess: function onSuccess(result) {
144
+ setCmpLinkRunStatus(result.map(function (item) {
145
+ return {
146
+ id: "sub:" + item.id,
147
+ runStatus: item.metrics.run_status
148
+ };
149
+ }));
150
+ }
151
+ }),
152
+ run = _useRequest.run;
153
+
154
+ (0, _react.useEffect)(function () {
155
+ if (graphLoaded) {
156
+ run(cmpLinkIds);
157
+ }
158
+ }, [graphLoaded, cmpLinkIds]);
28
159
  return {
29
- cmpLinkAlarmLevels: cmpLinkAlarmLevels
160
+ cmpLinkRunStatus: cmpLinkRunStatus,
161
+ cmpLinkAlarmLevels: cmpLinkAlarmLevels,
162
+ addCmpLinkOfflineStatusForDisplayLineColor: addCmpLinkOfflineStatusForDisplayLineColor
30
163
  };
31
164
  }
32
165
 
@@ -99,12 +99,20 @@ function useGraphAlarmDisplay(options) {
99
99
  risks = _topo$alarm$useState.risks,
100
100
  relateTopoAlarm = _topo$alarm$useState.relateTopoAlarm;
101
101
 
102
- var resources = topo.dataModel.useCis();
102
+ var oldResources = topo.dataModel.useCis(); // 分级拓扑下级链路特殊处理
103
103
 
104
104
  var _useCmpLinkAlarm = (0, _useCmpLinkAlarm2["default"])({
105
- topo: topo
105
+ topo: topo,
106
+ resources: oldResources,
107
+ graphLoaded: graphLoaded
106
108
  }),
107
- cmpLinkAlarmLevels = _useCmpLinkAlarm.cmpLinkAlarmLevels;
109
+ cmpLinkAlarmLevels = _useCmpLinkAlarm.cmpLinkAlarmLevels,
110
+ cmpLinkRunStatus = _useCmpLinkAlarm.cmpLinkRunStatus,
111
+ addCmpLinkOfflineStatusForDisplayLineColor = _useCmpLinkAlarm.addCmpLinkOfflineStatusForDisplayLineColor;
112
+
113
+ var resources = (0, _react.useMemo)(function () {
114
+ return addCmpLinkOfflineStatusForDisplayLineColor(oldResources, cmpLinkRunStatus);
115
+ }, [oldResources, cmpLinkRunStatus]); // ci告警级别
108
116
 
109
117
  var cisEventLevel = (0, _react.useMemo)(function () {
110
118
  var levels = [].concat(alarmList || [], cmpLinkAlarmLevels, risks.map(function (item) {
@@ -117,19 +125,6 @@ function useGraphAlarmDisplay(options) {
117
125
  }));
118
126
  return getGraphCiElementAlarmLevels(resources, levels);
119
127
  }, [resources, alarmList, cmpLinkAlarmLevels, risks]);
120
-
121
- function getCisEventLevel() {
122
- var levels = [].concat(alarmList || [], cmpLinkAlarmLevels, risks.map(function (item) {
123
- var _item$resourceId2;
124
-
125
- return {
126
- id: (_item$resourceId2 = item.resourceId) !== null && _item$resourceId2 !== void 0 ? _item$resourceId2 : item.ciId,
127
- level: 5
128
- };
129
- }));
130
- return getGraphCiElementAlarmLevels(resources, levels);
131
- }
132
-
133
128
  (0, _react.useEffect)(function () {
134
129
  showAlarm();
135
130
  (0, _showGraphManageStatusUtil.showManageStatus)({
@@ -138,7 +133,7 @@ function useGraphAlarmDisplay(options) {
138
133
  isEditMode: isEditMode,
139
134
  graphLoaded: graphLoaded,
140
135
  alarmSwitch: alarmSwitch,
141
- cisEventLevel: getCisEventLevel()
136
+ cisEventLevel: cisEventLevel
142
137
  });
143
138
 
144
139
  function showAlarm() {
@@ -150,12 +145,11 @@ function useGraphAlarmDisplay(options) {
150
145
  // 告警静默
151
146
  topo.view.loadAlarm([]);
152
147
  return;
153
- }
148
+ } // 关联拓扑告警
154
149
 
155
- var finalAlarms = getCisEventLevel(); // 关联拓扑告警
156
150
 
157
151
  var relateTopoAlarms = getRelateTopoNodeAlarmLevels(topo, relateTopoAlarm);
158
- var elementsAlarmLevels = [].concat(finalAlarms, relateTopoAlarms); // 将告警级别放入ht元素,便于测试
152
+ var elementsAlarmLevels = [].concat(cisEventLevel, relateTopoAlarms); // 将告警级别放入ht元素,便于测试
159
153
 
160
154
  (0, _htElementUtils.getElements)(topo.getDataModel()).filter(function (item) {
161
155
  return !!item.getTag();
@@ -184,5 +178,5 @@ function useGraphAlarmDisplay(options) {
184
178
  resources: resources
185
179
  });
186
180
  };
187
- }, [graphLoaded, resources, alarmSwitch, alarmList, risks, relateTopoAlarm, cmpLinkAlarmLevels]);
181
+ }, [graphLoaded, resources, alarmSwitch, cisEventLevel, relateTopoAlarm]);
188
182
  }
@@ -127,10 +127,6 @@ var useTopoEdit = function useTopoEdit(params) {
127
127
  return topoDispatchers.setTopoType(_template.TPL_TREE);
128
128
 
129
129
  case 7:
130
- // 更新配置
131
- // resourceConfig.updateConfig(config);
132
- // 更新配置对应的资源、链路
133
- // editDispatchers.fetchDataByConfig();
134
130
  topo.historyManager.endTransaction();
135
131
 
136
132
  case 8:
@@ -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.0.0-dev.26" === 'string' ? "12.0.0-dev.26" : null;
57
+ var version = typeof "12.0.0-dev.27" === 'string' ? "12.0.0-dev.27" : null;
58
58
  console.info("\u62D3\u6251\u7248\u672C: " + version);
59
59
  /**
60
60
  * 拓扑显示和编辑
@@ -6,6 +6,7 @@ exports.__esModule = true;
6
6
  exports.buildTopoLinkData = buildTopoLinkData;
7
7
  exports.compatibleWith = void 0;
8
8
  exports.getLinksDetail = getLinksDetail;
9
+ exports.isAggLink = isAggLink;
9
10
  exports.isCrucialLink = isCrucialLink;
10
11
  exports.isExitLink = isExitLink;
11
12
  exports.mergeExportLinkData = void 0;
@@ -22,8 +23,6 @@ var _keyBy = _interopRequireDefault(require("lodash/keyBy"));
22
23
 
23
24
  var _lodash = _interopRequireDefault(require("lodash"));
24
25
 
25
- var _services = require("../../services");
26
-
27
26
  var _htElementUtils = require("../../../utils/htElementUtils");
28
27
 
29
28
  var _CiTypeCache = _interopRequireDefault(require("../cache/CiTypeCache"));
@@ -56,7 +55,21 @@ function isCrucialLink(link) {
56
55
 
57
56
 
58
57
  function isExitLink(link) {
59
- return (link === null || link === void 0 ? void 0 : link.attributes) && !(link !== null && link !== void 0 && link.attributes["destination_id"]);
58
+ var _link$attributes;
59
+
60
+ return (link === null || link === void 0 ? void 0 : (_link$attributes = link.attributes) === null || _link$attributes === void 0 ? void 0 : _link$attributes.destination_type) === "ip";
61
+ }
62
+ /**
63
+ * 是否聚合链路
64
+ * @param {*} link
65
+ * @returns
66
+ */
67
+
68
+
69
+ function isAggLink(link) {
70
+ var _link$attributes2, _link$attributes3;
71
+
72
+ return (link === null || link === void 0 ? void 0 : (_link$attributes2 = link.attributes) === null || _link$attributes2 === void 0 ? void 0 : _link$attributes2.destination_type) === "network.agg_interface" && (link === null || link === void 0 ? void 0 : (_link$attributes3 = link.attributes) === null || _link$attributes3 === void 0 ? void 0 : _link$attributes3.source_type) === "network.agg_interface";
60
73
  }
61
74
 
62
75
  function mergeLinksData(links, linkCis, nodes, interfaceCiMap, interfaceDoc) {
@@ -107,7 +120,7 @@ function _getLinksDetail() {
107
120
  return _regenerator["default"].wrap(function _callee$(_context) {
108
121
  while (1) switch (_context.prev = _context.next) {
109
122
  case 0:
110
- if (!(!links || !links.length)) {
123
+ if (links !== null && links !== void 0 && links.length) {
111
124
  _context.next = 2;
112
125
  break;
113
126
  }
@@ -115,9 +128,6 @@ function _getLinksDetail() {
115
128
  return _context.abrupt("return", []);
116
129
 
117
130
  case 2:
118
- // const linkCis = await topoService.relation.batchQueryRelation(
119
- // links.map((link) => link.id)
120
- // );
121
131
  linkCis = links;
122
132
  interfaceIds = [].concat(linkCis.map(function (item) {
123
133
  return item.attributes.source_id;
@@ -200,17 +210,15 @@ var showLinkByConfig = function showLinkByConfig(props) {
200
210
  if (showType === 1 || showType === true) {
201
211
  // 单链路全部显示
202
212
  // console.log("单链路全部显示", edge);
203
- edge.s("2d.visible", true);
213
+ edge.s("x.visible", true);
204
214
  } else {
205
- var _d$attributes, _d$attributes2;
206
-
207
215
  var d = topo.dataModel.getDataById(edge.getTag()); // 判断是否聚合链路
208
216
 
209
- if ((d === null || d === void 0 ? void 0 : (_d$attributes = d.attributes) === null || _d$attributes === void 0 ? void 0 : _d$attributes.destination_type) === "network.agg_interface" && (d === null || d === void 0 ? void 0 : (_d$attributes2 = d.attributes) === null || _d$attributes2 === void 0 ? void 0 : _d$attributes2.source_type) === "network.agg_interface") {
210
- edge.s("2d.visible", showAgg);
217
+ if (isAggLink(d)) {
218
+ edge.s("x.visible", showAgg);
211
219
  } else {
212
220
  // console.log("edge", edge, d, showAgg);
213
- edge.s("2d.visible", showPhy);
221
+ edge.s("x.visible", showPhy);
214
222
  }
215
223
  }
216
224
  });
@@ -5,6 +5,8 @@ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefau
5
5
  exports.__esModule = true;
6
6
  exports.formatMetric = formatMetric;
7
7
 
8
+ var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
9
+
8
10
  var _utils = require("@riil-frontend/utils");
9
11
 
10
12
  var _DictCache = _interopRequireDefault(require("../models/cache/DictCache"));
@@ -23,16 +25,18 @@ function formatMetric(val, metricModel) {
23
25
  if (metricModel) {
24
26
  var _result$value;
25
27
 
26
- // 分级字典特殊处理
27
- if (metricModel.dict && !_DictCache["default"].getDictObject()[metricModel.code]) {
28
- val = metricModel.dict[val];
28
+ var dictObject = (0, _extends2["default"])({}, _DictCache["default"].getDictObject()); // 分级字典特殊处理
29
+
30
+ if (metricModel.dict) {
31
+ // val = metricModel.dict[val]
32
+ dictObject[metricModel.code] = metricModel.dict;
29
33
  }
30
34
 
31
35
  var result = (0, _utils.metricValueFormat)({
32
36
  value: val,
33
37
  dataType: metricModel.dataType,
34
38
  changeValue: metricModel.changeValue,
35
- dict: _DictCache["default"].getDictObject(),
39
+ dict: dictObject,
36
40
  unit: metricModel.unit,
37
41
  code: metricModel.code
38
42
  });
@@ -25,6 +25,8 @@ var _rlog = require("@riil-frontend/component-topology-utils/lib/rlog");
25
25
 
26
26
  var _Link = _interopRequireDefault(require("../../../../../../../components/Link"));
27
27
 
28
+ var _componentTopologyUtils = require("@riil-frontend/component-topology-utils");
29
+
28
30
  var _services = require("../../../../../../services");
29
31
 
30
32
  var _overview = _interopRequireDefault(require("../../../../../../services/overview"));
@@ -187,7 +189,14 @@ function ResourceOverview(props) {
187
189
  window.topo_overview_metric_timer = null;
188
190
  }
189
191
  };
190
- }, []); // 跳转前调用关闭操作
192
+ }, []);
193
+
194
+ var jumpTo = function jumpTo(url) {
195
+ _componentTopologyUtils.getHistory.push(url);
196
+
197
+ onClose();
198
+ }; // 跳转前调用关闭操作
199
+
191
200
 
192
201
  function onClose() {
193
202
  isAppTopo && resourceOverviewProps.onClose && resourceOverviewProps.onClose();
@@ -366,14 +375,13 @@ function ResourceOverview(props) {
366
375
  return /*#__PURE__*/_react["default"].createElement("div", {
367
376
  className: _indexModule["default"]['alarm-title'],
368
377
  title: value,
369
- onClick: onClose
378
+ onClick: jumpTo(record.link)
370
379
  }, /*#__PURE__*/_react["default"].createElement(_icon["default"], {
371
380
  type: record.icon,
372
381
  size: "xs",
373
382
  className: _indexModule["default"]['alarm-color-icon'] + " " + record.className
374
- }), /*#__PURE__*/_react["default"].createElement(_Link["default"], {
375
- className: _indexModule["default"].link,
376
- to: formatUrl(record.link)
383
+ }), /*#__PURE__*/_react["default"].createElement("span", {
384
+ className: _indexModule["default"].link
377
385
  }, value));
378
386
  }
379
387
  }, {