@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.
- package/build/index.js +10 -10
- package/es/core/editor/components/Toolbar/widgets/Layout/index.js +2 -2
- package/es/core/editor/utils/edgeTypeStyleUtil.js +0 -23
- package/es/core/hooks/useAlarm.js +14 -1
- package/es/core/hooks/useCmpLinkAlarm.js +142 -16
- package/es/core/hooks/useGraphAlarmDisplay.js +15 -21
- package/es/core/hooks/useTopoEdit.js +0 -4
- package/es/core/models/TopoApp.js +1 -1
- package/es/core/models/utils/linkUtils.js +20 -13
- package/es/core/utils/metricUtil.js +8 -4
- package/es/core/viewer/components/plugins/ResourceDetail/components/ResourceOverview/ResourceOverview.js +11 -5
- package/es/networkTopo/store/topoCenter.js +260 -223
- package/es/style.js +1 -1
- package/lib/core/editor/components/Toolbar/widgets/Layout/index.js +1 -1
- package/lib/core/editor/utils/edgeTypeStyleUtil.js +0 -25
- package/lib/core/hooks/useAlarm.js +14 -1
- package/lib/core/hooks/useCmpLinkAlarm.js +149 -16
- package/lib/core/hooks/useGraphAlarmDisplay.js +15 -21
- package/lib/core/hooks/useTopoEdit.js +0 -4
- package/lib/core/models/TopoApp.js +1 -1
- package/lib/core/models/utils/linkUtils.js +21 -13
- package/lib/core/utils/metricUtil.js +8 -4
- package/lib/core/viewer/components/plugins/ResourceDetail/components/ResourceOverview/ResourceOverview.js +13 -5
- package/lib/networkTopo/store/topoCenter.js +262 -225
- package/lib/style.js +1 -1
- package/package.json +2 -2
@@ -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
|
15
|
-
|
56
|
+
var _useState = (0, _react.useState)(getCmpLinIds(resources)),
|
57
|
+
cmpLinkIds = _useState[0],
|
58
|
+
setCmpLinkIds = _useState[1];
|
16
59
|
|
17
|
-
var
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
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
|
-
|
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
|
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:
|
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(
|
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,
|
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.
|
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
|
-
|
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 (
|
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("
|
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
|
210
|
-
edge.s("
|
217
|
+
if (isAggLink(d)) {
|
218
|
+
edge.s("x.visible", showAgg);
|
211
219
|
} else {
|
212
220
|
// console.log("edge", edge, d, showAgg);
|
213
|
-
edge.s("
|
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
|
-
|
28
|
-
|
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:
|
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:
|
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(
|
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
|
}, {
|