@riil-frontend/component-topology 12.1.4 → 12.1.7
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 +12 -12
- package/es/core/components/TopoView/topoView.js +8 -2
- package/es/core/editor/components/Toolbar/widgets/EdgeTypeButton/LineType.js +6 -5
- package/es/core/hooks/useAlarm.js +4 -14
- package/es/core/hooks/useGraphAlarmDisplay.js +38 -19
- package/es/core/hooks/useLinkAlarmDisplay.js +161 -0
- package/es/core/models/Alarm.js +3 -3
- package/es/core/models/TopoApp.js +1 -1
- package/es/core/store/models/topoAlarm.js +7 -5
- package/es/core/utils/alarmUtil.js +11 -0
- package/lib/core/components/TopoView/topoView.js +8 -2
- package/lib/core/editor/components/Toolbar/widgets/EdgeTypeButton/LineType.js +6 -5
- package/lib/core/hooks/useAlarm.js +4 -14
- package/lib/core/hooks/useGraphAlarmDisplay.js +41 -21
- package/lib/core/hooks/useLinkAlarmDisplay.js +173 -0
- package/lib/core/models/Alarm.js +12 -24
- package/lib/core/models/TopoApp.js +1 -1
- package/lib/core/store/models/topoAlarm.js +13 -12
- package/lib/core/utils/alarmUtil.js +17 -0
- package/package.json +2 -2
@@ -140,7 +140,10 @@ var Topology = function Topology(props) {
|
|
140
140
|
});
|
141
141
|
|
142
142
|
if (onLoad) {
|
143
|
-
onLoad(
|
143
|
+
onLoad({
|
144
|
+
topo: topo,
|
145
|
+
topoData: topoData
|
146
|
+
});
|
144
147
|
}
|
145
148
|
}, [topoData]);
|
146
149
|
var handleGraphLoaded = useCallback(function () {
|
@@ -180,7 +183,10 @@ var Topology = function Topology(props) {
|
|
180
183
|
}
|
181
184
|
|
182
185
|
if (onLoad) {
|
183
|
-
onLoad(
|
186
|
+
onLoad({
|
187
|
+
topo: topo,
|
188
|
+
topoData: topoData
|
189
|
+
});
|
184
190
|
}
|
185
191
|
}, [topoData]);
|
186
192
|
|
@@ -32,11 +32,12 @@ var LINE_TYPE_OPTIONS = [{
|
|
32
32
|
value: 'doublearc',
|
33
33
|
label: '双弧线',
|
34
34
|
icon: 'topo_linear_icon_arcline'
|
35
|
-
}
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
}
|
35
|
+
} // {
|
36
|
+
// value: 'points',
|
37
|
+
// label: '自由线形',
|
38
|
+
// icon: 'topo_linear_icon_pointsline',
|
39
|
+
// },
|
40
|
+
];
|
40
41
|
var LineType = /*#__PURE__*/React.forwardRef(function (props, ref) {
|
41
42
|
var value = props.value,
|
42
43
|
onChange = props.onChange,
|
@@ -2,18 +2,8 @@ import _extends from "@babel/runtime/helpers/extends";
|
|
2
2
|
import { useEffect } from "react";
|
3
3
|
import rlog from "@riil-frontend/component-topology-utils/es/rlog";
|
4
4
|
import useGraphAlarmDisplay from "./useGraphAlarmDisplay";
|
5
|
-
import useTopoEventListener from "./useTopoEventListener";
|
6
|
-
|
7
|
-
var showAlarmStatus = ["toDeal", "dealing", "change", "woDealing"];
|
8
|
-
/**
|
9
|
-
* 告警是否在活
|
10
|
-
* @param {*} alarm
|
11
|
-
* @returns
|
12
|
-
*/
|
13
|
-
|
14
|
-
var isAlarmAlive = function isAlarmAlive(alarm) {
|
15
|
-
return showAlarmStatus.indexOf(alarm.status) >= 0;
|
16
|
-
};
|
5
|
+
import useTopoEventListener from "./useTopoEventListener";
|
6
|
+
import { isAlarmAlive } from "../utils/alarmUtil";
|
17
7
|
|
18
8
|
var handleRiskData = function handleRiskData(topo, receivedData) {
|
19
9
|
var _risks, _topo$viewProps, _topo$viewProps2;
|
@@ -23,7 +13,7 @@ var handleRiskData = function handleRiskData(topo, receivedData) {
|
|
23
13
|
// 已关闭 closed
|
24
14
|
var prevRisks = topo.store.getModelState('topoAlarm').risks;
|
25
15
|
|
26
|
-
var
|
16
|
+
var isRiskAlive = function isRiskAlive(data) {
|
27
17
|
return ['recovered', 'closed'].indexOf(data.status) === -1;
|
28
18
|
};
|
29
19
|
|
@@ -52,7 +42,7 @@ var handleRiskData = function handleRiskData(topo, receivedData) {
|
|
52
42
|
(_risks = risks).push.apply(_risks, addRisks); // 过滤掉无权限、非在活的
|
53
43
|
|
54
44
|
|
55
|
-
risks = risks.filter(
|
45
|
+
risks = risks.filter(isRiskAlive).filter(hasCiPermission).sort(function (a, b) {
|
56
46
|
return a.executeTime - b.executeTime;
|
57
47
|
});
|
58
48
|
rlog.debug('更新风险', {
|
@@ -1,13 +1,15 @@
|
|
1
1
|
import { useEffect, useMemo } from "react";
|
2
|
-
import
|
2
|
+
import loglevel from 'loglevel';
|
3
3
|
import { getElements } from "../../utils/htElementUtils";
|
4
4
|
import { removeManageStatus, showManageStatus } from "../utils/showGraphManageStatusUtil";
|
5
5
|
import useCmpLinkAlarm from "./useCmpLinkAlarm";
|
6
|
+
import useLinkAlarmDisplay from "./useLinkAlarmDisplay";
|
7
|
+
var rlog = loglevel.getLogger('topo');
|
6
8
|
/**
|
7
9
|
* 获取ci的最高告警级别
|
8
|
-
* @param {Array} alarmList
|
9
|
-
* @param {*} risks
|
10
|
-
* @returns
|
10
|
+
* @param {Array} alarmList
|
11
|
+
* @param {*} risks
|
12
|
+
* @returns
|
11
13
|
*/
|
12
14
|
|
13
15
|
function getCiAlarmLevelMap(alarmList) {
|
@@ -40,9 +42,9 @@ function getGraphCiElementAlarmLevels(resources, alarmList) {
|
|
40
42
|
}
|
41
43
|
/**
|
42
44
|
* 获得关联拓扑节点告警级别
|
43
|
-
* @param {*} topo
|
44
|
-
* @param {*} relateTopoAlarm
|
45
|
-
* @returns
|
45
|
+
* @param {*} topo
|
46
|
+
* @param {*} relateTopoAlarm
|
47
|
+
* @returns
|
46
48
|
*/
|
47
49
|
|
48
50
|
|
@@ -50,7 +52,7 @@ function getRelateTopoNodeAlarmLevels(topo, relateTopoAlarm) {
|
|
50
52
|
return Object.keys(relateTopoAlarm).map(function (topoId) {
|
51
53
|
var level = relateTopoAlarm[topoId];
|
52
54
|
var relateTopoNode = topo.getDataModel().getDatas().toArray().find(function (node) {
|
53
|
-
return "" + node.a(
|
55
|
+
return "" + node.a("bindTopo") === "" + topoId;
|
54
56
|
});
|
55
57
|
|
56
58
|
if (!level || !relateTopoNode) {
|
@@ -70,18 +72,18 @@ function getRelateTopoNodeAlarmLevels(topo, relateTopoAlarm) {
|
|
70
72
|
function getGraphElementAlarmLevels(resources) {}
|
71
73
|
/**
|
72
74
|
* 告警显示到ht拓扑
|
73
|
-
*
|
74
|
-
* @param {*} options
|
75
|
+
*
|
76
|
+
* @param {*} options
|
75
77
|
*/
|
76
78
|
|
77
79
|
|
78
80
|
export default function useGraphAlarmDisplay(options) {
|
79
81
|
var topo = options.topo,
|
80
82
|
alarmSwitch = options.alarmSwitch;
|
81
|
-
var topoState = topo.store.useModelState(
|
83
|
+
var topoState = topo.store.useModelState("topoMod");
|
82
84
|
var graphLoaded = topoState.graphLoaded,
|
83
85
|
viewState = topoState.viewState;
|
84
|
-
var isEditMode = viewState ===
|
86
|
+
var isEditMode = viewState === "edit";
|
85
87
|
|
86
88
|
var _topo$alarm$useState = topo.alarm.useState(),
|
87
89
|
alarmList = _topo$alarm$useState.alarmList,
|
@@ -99,12 +101,29 @@ export default function useGraphAlarmDisplay(options) {
|
|
99
101
|
cmpLinkRunStatus = _useCmpLinkAlarm.cmpLinkRunStatus,
|
100
102
|
addCmpLinkOfflineStatusForDisplayLineColor = _useCmpLinkAlarm.addCmpLinkOfflineStatusForDisplayLineColor;
|
101
103
|
|
102
|
-
var
|
104
|
+
var cmpRes = useMemo(function () {
|
103
105
|
return addCmpLinkOfflineStatusForDisplayLineColor(oldResources, cmpLinkRunStatus);
|
104
|
-
}, [oldResources, cmpLinkRunStatus]); //
|
106
|
+
}, [oldResources, cmpLinkRunStatus]); // 拓扑链路特殊处理
|
107
|
+
|
108
|
+
var _useLinkAlarmDisplay = useLinkAlarmDisplay({
|
109
|
+
topo: topo,
|
110
|
+
resources: cmpRes,
|
111
|
+
graphLoaded: graphLoaded,
|
112
|
+
alarmList: alarmList
|
113
|
+
}),
|
114
|
+
linkRunStatus = _useLinkAlarmDisplay.linkRunStatus,
|
115
|
+
getlinkAlarmLevels = _useLinkAlarmDisplay.getlinkAlarmLevels; // const resources = useMemo(() => addLinkOfflineStatusForDisplayLineColor(cmpRes, linkRunStatus), [cmpRes, linkRunStatus])
|
116
|
+
|
117
|
+
|
118
|
+
var linkAlarmLevels = getlinkAlarmLevels(alarmList, cmpRes);
|
119
|
+
var resources = [].concat(cmpRes); //1.7 需求,过滤掉断开状态的链路
|
120
|
+
// const resources = cmpRes.filter((item) => {
|
121
|
+
// return !item.breakState;
|
122
|
+
// });
|
123
|
+
// ci告警级别
|
105
124
|
|
106
125
|
var cisEventLevel = useMemo(function () {
|
107
|
-
var levels = [].concat(alarmList || [], cmpLinkAlarmLevels, risks.map(function (item) {
|
126
|
+
var levels = [].concat(alarmList || [], cmpLinkAlarmLevels, linkAlarmLevels, risks.map(function (item) {
|
108
127
|
var _item$resourceId;
|
109
128
|
|
110
129
|
return {
|
@@ -150,17 +169,17 @@ export default function useGraphAlarmDisplay(options) {
|
|
150
169
|
var alarmLevel = (_elementsAlarmLevels$ = elementsAlarmLevels.find(function (item) {
|
151
170
|
return item.id === element.getTag() || item.elementId === element.getId();
|
152
171
|
})) === null || _elementsAlarmLevels$ === void 0 ? void 0 : _elementsAlarmLevels$.level;
|
153
|
-
element.a(
|
172
|
+
element.a("alarmLevel", alarmLevel);
|
154
173
|
});
|
155
|
-
rlog.debug(
|
174
|
+
rlog.debug("推送告警 => ht", {
|
156
175
|
alarms: elementsAlarmLevels,
|
157
176
|
relateTopoAlarmMap: relateTopoAlarm,
|
158
177
|
relateTopoAlarms: relateTopoAlarms
|
159
178
|
}); // 更新到ht拓扑
|
160
179
|
|
161
|
-
(_topo$historyManager = topo.historyManager) === null || _topo$historyManager === void 0 ? void 0 : _topo$historyManager.setDisabled(true,
|
180
|
+
(_topo$historyManager = topo.historyManager) === null || _topo$historyManager === void 0 ? void 0 : _topo$historyManager.setDisabled(true, "推送告警");
|
162
181
|
topo.view.loadAlarm(elementsAlarmLevels);
|
163
|
-
(_topo$historyManager2 = topo.historyManager) === null || _topo$historyManager2 === void 0 ? void 0 : _topo$historyManager2.setDisabled(false,
|
182
|
+
(_topo$historyManager2 = topo.historyManager) === null || _topo$historyManager2 === void 0 ? void 0 : _topo$historyManager2.setDisabled(false, "推送告警");
|
164
183
|
}
|
165
184
|
|
166
185
|
return function () {
|
@@ -0,0 +1,161 @@
|
|
1
|
+
import _asyncToGenerator from "@babel/runtime/helpers/asyncToGenerator";
|
2
|
+
import _regeneratorRuntime from "@babel/runtime/regenerator";
|
3
|
+
import { useEffect, useState, useMemo } from "react";
|
4
|
+
import { useRequest } from "ahooks";
|
5
|
+
import _ from "lodash";
|
6
|
+
import DictCache from "../models/cache/DictCache";
|
7
|
+
|
8
|
+
function getLinkDev(datas) {
|
9
|
+
// console.log("datas------------------", datas);
|
10
|
+
var linkDevDoc = {};
|
11
|
+
var linkIds = datas.filter(function (item) {
|
12
|
+
return item.ciType === "network_link";
|
13
|
+
}).map(function (item) {
|
14
|
+
linkDevDoc[item.id] = [item.source, item.target];
|
15
|
+
return item.id;
|
16
|
+
});
|
17
|
+
return {
|
18
|
+
linkIds: linkIds,
|
19
|
+
linkDevDoc: linkDevDoc
|
20
|
+
};
|
21
|
+
}
|
22
|
+
|
23
|
+
function getlinkAlarmLevels(alarmList, resources) {
|
24
|
+
var _getLinkDev = getLinkDev(resources),
|
25
|
+
linkDevDoc = _getLinkDev.linkDevDoc; // console.log("linkAlarmLevels-----------1", linkDevDoc, alarmList);
|
26
|
+
|
27
|
+
|
28
|
+
if (!alarmList) {
|
29
|
+
return [];
|
30
|
+
}
|
31
|
+
|
32
|
+
var alarms = alarmList.filter(function (alarm) {
|
33
|
+
return alarm.obj.alertTypeCode === "availAlert";
|
34
|
+
}).map(function (item) {
|
35
|
+
return item.id;
|
36
|
+
});
|
37
|
+
return Object.keys(linkDevDoc).filter(function (item) {
|
38
|
+
return _.intersection(linkDevDoc[item], alarms).length > 0;
|
39
|
+
}).map(function (item) {
|
40
|
+
return {
|
41
|
+
id: item,
|
42
|
+
level: 1
|
43
|
+
};
|
44
|
+
});
|
45
|
+
;
|
46
|
+
}
|
47
|
+
/**
|
48
|
+
* 处理链路显示
|
49
|
+
* @param {*} props
|
50
|
+
* @returns
|
51
|
+
*/
|
52
|
+
|
53
|
+
|
54
|
+
export default function useLinkAlarmDisplay(props) {
|
55
|
+
var topo = props.topo,
|
56
|
+
resources = props.resources,
|
57
|
+
graphLoaded = props.graphLoaded,
|
58
|
+
alarmList = props.alarmList;
|
59
|
+
|
60
|
+
var _useState = useState(getLinkDev(resources).linkIds),
|
61
|
+
linkIds = _useState[0],
|
62
|
+
setLinkIds = _useState[1];
|
63
|
+
|
64
|
+
var _useState2 = useState([]),
|
65
|
+
linkRunStatus = _useState2[0],
|
66
|
+
setLinkRunStatus = _useState2[1];
|
67
|
+
|
68
|
+
var _useState3 = useState(getLinkDev(resources).linkDevDoc),
|
69
|
+
linkDev = _useState3[0],
|
70
|
+
setLinkDev = _useState3[1]; // console.log("alarmList----------sssss", alarmList);
|
71
|
+
|
72
|
+
|
73
|
+
useEffect(function () {
|
74
|
+
var ids = getLinkDev(resources).linkIds;
|
75
|
+
|
76
|
+
if (linkIds.join(",") !== ids.join(",")) {
|
77
|
+
setLinkIds(ids);
|
78
|
+
}
|
79
|
+
}, [resources]);
|
80
|
+
|
81
|
+
function getLinkRunStatus(_x) {
|
82
|
+
return _getLinkRunStatus.apply(this, arguments);
|
83
|
+
} // 轮询hooks
|
84
|
+
|
85
|
+
|
86
|
+
function _getLinkRunStatus() {
|
87
|
+
_getLinkRunStatus = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee(ids) {
|
88
|
+
var _yield$Promise$all, ciMetricsResult;
|
89
|
+
|
90
|
+
return _regeneratorRuntime.wrap(function _callee$(_context) {
|
91
|
+
while (1) switch (_context.prev = _context.next) {
|
92
|
+
case 0:
|
93
|
+
if (ids.length) {
|
94
|
+
_context.next = 2;
|
95
|
+
break;
|
96
|
+
}
|
97
|
+
|
98
|
+
return _context.abrupt("return", []);
|
99
|
+
|
100
|
+
case 2:
|
101
|
+
_context.t0 = Promise;
|
102
|
+
_context.t1 = // 查询指标值
|
103
|
+
topo.serverApi.ciInfo.batchQueryCiInfo({
|
104
|
+
ciId: [],
|
105
|
+
codes: ["run_status", "remote_ping_status"],
|
106
|
+
relationId: ids.map(function (id) {
|
107
|
+
return {
|
108
|
+
ciId: id,
|
109
|
+
operation: "delete"
|
110
|
+
};
|
111
|
+
})
|
112
|
+
});
|
113
|
+
_context.next = 6;
|
114
|
+
return DictCache.init();
|
115
|
+
|
116
|
+
case 6:
|
117
|
+
_context.t2 = _context.sent;
|
118
|
+
_context.t3 = [_context.t1, _context.t2];
|
119
|
+
_context.next = 10;
|
120
|
+
return _context.t0.all.call(_context.t0, _context.t3);
|
121
|
+
|
122
|
+
case 10:
|
123
|
+
_yield$Promise$all = _context.sent;
|
124
|
+
ciMetricsResult = _yield$Promise$all[0];
|
125
|
+
return _context.abrupt("return", ciMetricsResult);
|
126
|
+
|
127
|
+
case 13:
|
128
|
+
case "end":
|
129
|
+
return _context.stop();
|
130
|
+
}
|
131
|
+
}, _callee);
|
132
|
+
}));
|
133
|
+
return _getLinkRunStatus.apply(this, arguments);
|
134
|
+
}
|
135
|
+
|
136
|
+
var _useRequest = useRequest(getLinkRunStatus, {
|
137
|
+
pollingInterval: 60 * 1000,
|
138
|
+
pollingWhenHidden: false,
|
139
|
+
// debounceInterval: 200,
|
140
|
+
manual: true,
|
141
|
+
onSuccess: function onSuccess(result) {
|
142
|
+
setLinkRunStatus(result.map(function (item) {
|
143
|
+
return {
|
144
|
+
id: item.id,
|
145
|
+
runStatus: item.metrics.run_status
|
146
|
+
};
|
147
|
+
}));
|
148
|
+
}
|
149
|
+
}),
|
150
|
+
run = _useRequest.run;
|
151
|
+
|
152
|
+
useEffect(function () {
|
153
|
+
if (graphLoaded) {
|
154
|
+
run(linkIds);
|
155
|
+
}
|
156
|
+
}, [graphLoaded, linkIds]);
|
157
|
+
return {
|
158
|
+
linkRunStatus: linkRunStatus,
|
159
|
+
getlinkAlarmLevels: getlinkAlarmLevels
|
160
|
+
};
|
161
|
+
}
|
package/es/core/models/Alarm.js
CHANGED
@@ -1,9 +1,9 @@
|
|
1
1
|
import _Dialog from "@alifd/next/es/dialog";
|
2
2
|
import _asyncToGenerator from "@babel/runtime/helpers/asyncToGenerator";
|
3
3
|
import _regeneratorRuntime from "@babel/runtime/regenerator";
|
4
|
-
import
|
5
|
-
import { rlog } from '@riil-frontend/component-topology-utils';
|
4
|
+
import loglevel from 'loglevel';
|
6
5
|
import { isAvailableArray } from '@riil-frontend/utils';
|
6
|
+
var rlog = loglevel.getLogger('topo');
|
7
7
|
|
8
8
|
var Alarm = /*#__PURE__*/function () {
|
9
9
|
function Alarm() {
|
@@ -456,7 +456,7 @@ var Alarm = /*#__PURE__*/function () {
|
|
456
456
|
resIdsList = resAndMetrics.resIdsList, nodeIdsList = resAndMetrics.nodeIdsList, linkIdsList = resAndMetrics.linkIdsList;
|
457
457
|
alarmDispatchers = this.topo.store.getModelDispatchers('topoAlarm'); // 添加事件
|
458
458
|
|
459
|
-
|
459
|
+
rlog.debug("handleAlarmEvent-接收到推送的原始告警信息", alertData);
|
460
460
|
|
461
461
|
if (!(isAvailableArray(alertData) && isAvailableArray(resIdsList))) {
|
462
462
|
_context8.next = 25;
|
@@ -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.
|
27
|
+
var version = typeof "12.1.7" === 'string' ? "12.1.7" : null;
|
28
28
|
console.info("\u62D3\u6251\u7248\u672C: " + version);
|
29
29
|
/**
|
30
30
|
* 拓扑显示和编辑
|
@@ -5,9 +5,11 @@ import _regeneratorRuntime from "@babel/runtime/regenerator";
|
|
5
5
|
/**
|
6
6
|
* 告警
|
7
7
|
*/
|
8
|
-
import
|
8
|
+
import loglevel from 'loglevel';
|
9
9
|
import _ from "lodash";
|
10
|
-
var
|
10
|
+
var rlog = loglevel.getLogger('topo'); // 在活告警状态
|
11
|
+
|
12
|
+
var aliveAlarmStatus = ["toDeal", "dealing", "change", "woDealing"];
|
11
13
|
|
12
14
|
var sortList = function sortList(a, b) {
|
13
15
|
if (a.level === b.level) {
|
@@ -111,7 +113,7 @@ export default function (topo) {
|
|
111
113
|
|
112
114
|
if ((resIdsList || []).indexOf(rid) >= 0) {
|
113
115
|
if (record.indexOf(item.alertId) < 0) {
|
114
|
-
if (
|
116
|
+
if (aliveAlarmStatus.indexOf(item.status) >= 0) {
|
115
117
|
// rlog.debug("这是一条新告警", item);
|
116
118
|
record.push(item.alertId);
|
117
119
|
|
@@ -141,7 +143,7 @@ export default function (topo) {
|
|
141
143
|
// item
|
142
144
|
// );
|
143
145
|
|
144
|
-
if (
|
146
|
+
if (aliveAlarmStatus.indexOf(item.status) >= 0) {
|
145
147
|
if (item.status === "change") {
|
146
148
|
old = doc[rid][sliceTag];
|
147
149
|
|
@@ -210,7 +212,7 @@ export default function (topo) {
|
|
210
212
|
// rlog.debug('xxxxxxxxxxxxxxxxxxxx', doc[id][0], alarmObj.status);
|
211
213
|
|
212
214
|
|
213
|
-
return
|
215
|
+
return aliveAlarmStatus.indexOf(alarmObj.status) >= 0 ? alarmObj : null;
|
214
216
|
} else {
|
215
217
|
return null;
|
216
218
|
}
|
@@ -178,7 +178,10 @@ var Topology = function Topology(props) {
|
|
178
178
|
});
|
179
179
|
|
180
180
|
if (onLoad) {
|
181
|
-
onLoad(
|
181
|
+
onLoad({
|
182
|
+
topo: topo,
|
183
|
+
topoData: topoData
|
184
|
+
});
|
182
185
|
}
|
183
186
|
}, [topoData]);
|
184
187
|
var handleGraphLoaded = (0, _react.useCallback)(function () {
|
@@ -218,7 +221,10 @@ var Topology = function Topology(props) {
|
|
218
221
|
}
|
219
222
|
|
220
223
|
if (onLoad) {
|
221
|
-
onLoad(
|
224
|
+
onLoad({
|
225
|
+
topo: topo,
|
226
|
+
topoData: topoData
|
227
|
+
});
|
222
228
|
}
|
223
229
|
}, [topoData]);
|
224
230
|
|
@@ -48,11 +48,12 @@ var LINE_TYPE_OPTIONS = [{
|
|
48
48
|
value: 'doublearc',
|
49
49
|
label: '双弧线',
|
50
50
|
icon: 'topo_linear_icon_arcline'
|
51
|
-
}
|
52
|
-
|
53
|
-
|
54
|
-
|
55
|
-
}
|
51
|
+
} // {
|
52
|
+
// value: 'points',
|
53
|
+
// label: '自由线形',
|
54
|
+
// icon: 'topo_linear_icon_pointsline',
|
55
|
+
// },
|
56
|
+
];
|
56
57
|
|
57
58
|
var LineType = /*#__PURE__*/_react["default"].forwardRef(function (props, ref) {
|
58
59
|
var value = props.value,
|
@@ -15,17 +15,7 @@ var _useGraphAlarmDisplay = _interopRequireDefault(require("./useGraphAlarmDispl
|
|
15
15
|
|
16
16
|
var _useTopoEventListener = _interopRequireDefault(require("./useTopoEventListener"));
|
17
17
|
|
18
|
-
|
19
|
-
var showAlarmStatus = ["toDeal", "dealing", "change", "woDealing"];
|
20
|
-
/**
|
21
|
-
* 告警是否在活
|
22
|
-
* @param {*} alarm
|
23
|
-
* @returns
|
24
|
-
*/
|
25
|
-
|
26
|
-
var isAlarmAlive = function isAlarmAlive(alarm) {
|
27
|
-
return showAlarmStatus.indexOf(alarm.status) >= 0;
|
28
|
-
};
|
18
|
+
var _alarmUtil = require("../utils/alarmUtil");
|
29
19
|
|
30
20
|
var handleRiskData = function handleRiskData(topo, receivedData) {
|
31
21
|
var _risks, _topo$viewProps, _topo$viewProps2;
|
@@ -35,7 +25,7 @@ var handleRiskData = function handleRiskData(topo, receivedData) {
|
|
35
25
|
// 已关闭 closed
|
36
26
|
var prevRisks = topo.store.getModelState('topoAlarm').risks;
|
37
27
|
|
38
|
-
var
|
28
|
+
var isRiskAlive = function isRiskAlive(data) {
|
39
29
|
return ['recovered', 'closed'].indexOf(data.status) === -1;
|
40
30
|
};
|
41
31
|
|
@@ -64,7 +54,7 @@ var handleRiskData = function handleRiskData(topo, receivedData) {
|
|
64
54
|
(_risks = risks).push.apply(_risks, addRisks); // 过滤掉无权限、非在活的
|
65
55
|
|
66
56
|
|
67
|
-
risks = risks.filter(
|
57
|
+
risks = risks.filter(isRiskAlive).filter(hasCiPermission).sort(function (a, b) {
|
68
58
|
return a.executeTime - b.executeTime;
|
69
59
|
});
|
70
60
|
|
@@ -149,7 +139,7 @@ function convertAlarmData(alarms) {
|
|
149
139
|
// 数据id
|
150
140
|
resourceId: resourceId,
|
151
141
|
// 是否在活
|
152
|
-
alive: isAlarmAlive(alarm)
|
142
|
+
alive: (0, _alarmUtil.isAlarmAlive)(alarm)
|
153
143
|
});
|
154
144
|
});
|
155
145
|
}
|
@@ -7,7 +7,7 @@ exports["default"] = useGraphAlarmDisplay;
|
|
7
7
|
|
8
8
|
var _react = require("react");
|
9
9
|
|
10
|
-
var
|
10
|
+
var _loglevel = _interopRequireDefault(require("loglevel"));
|
11
11
|
|
12
12
|
var _htElementUtils = require("../../utils/htElementUtils");
|
13
13
|
|
@@ -15,12 +15,17 @@ var _showGraphManageStatusUtil = require("../utils/showGraphManageStatusUtil");
|
|
15
15
|
|
16
16
|
var _useCmpLinkAlarm2 = _interopRequireDefault(require("./useCmpLinkAlarm"));
|
17
17
|
|
18
|
+
var _useLinkAlarmDisplay2 = _interopRequireDefault(require("./useLinkAlarmDisplay"));
|
19
|
+
|
20
|
+
var rlog = _loglevel["default"].getLogger('topo');
|
18
21
|
/**
|
19
22
|
* 获取ci的最高告警级别
|
20
|
-
* @param {Array} alarmList
|
21
|
-
* @param {*} risks
|
22
|
-
* @returns
|
23
|
+
* @param {Array} alarmList
|
24
|
+
* @param {*} risks
|
25
|
+
* @returns
|
23
26
|
*/
|
27
|
+
|
28
|
+
|
24
29
|
function getCiAlarmLevelMap(alarmList) {
|
25
30
|
var ciIdLevelMap = {};
|
26
31
|
alarmList.forEach(function (item) {
|
@@ -51,9 +56,9 @@ function getGraphCiElementAlarmLevels(resources, alarmList) {
|
|
51
56
|
}
|
52
57
|
/**
|
53
58
|
* 获得关联拓扑节点告警级别
|
54
|
-
* @param {*} topo
|
55
|
-
* @param {*} relateTopoAlarm
|
56
|
-
* @returns
|
59
|
+
* @param {*} topo
|
60
|
+
* @param {*} relateTopoAlarm
|
61
|
+
* @returns
|
57
62
|
*/
|
58
63
|
|
59
64
|
|
@@ -61,7 +66,7 @@ function getRelateTopoNodeAlarmLevels(topo, relateTopoAlarm) {
|
|
61
66
|
return Object.keys(relateTopoAlarm).map(function (topoId) {
|
62
67
|
var level = relateTopoAlarm[topoId];
|
63
68
|
var relateTopoNode = topo.getDataModel().getDatas().toArray().find(function (node) {
|
64
|
-
return "" + node.a(
|
69
|
+
return "" + node.a("bindTopo") === "" + topoId;
|
65
70
|
});
|
66
71
|
|
67
72
|
if (!level || !relateTopoNode) {
|
@@ -81,18 +86,18 @@ function getRelateTopoNodeAlarmLevels(topo, relateTopoAlarm) {
|
|
81
86
|
function getGraphElementAlarmLevels(resources) {}
|
82
87
|
/**
|
83
88
|
* 告警显示到ht拓扑
|
84
|
-
*
|
85
|
-
* @param {*} options
|
89
|
+
*
|
90
|
+
* @param {*} options
|
86
91
|
*/
|
87
92
|
|
88
93
|
|
89
94
|
function useGraphAlarmDisplay(options) {
|
90
95
|
var topo = options.topo,
|
91
96
|
alarmSwitch = options.alarmSwitch;
|
92
|
-
var topoState = topo.store.useModelState(
|
97
|
+
var topoState = topo.store.useModelState("topoMod");
|
93
98
|
var graphLoaded = topoState.graphLoaded,
|
94
99
|
viewState = topoState.viewState;
|
95
|
-
var isEditMode = viewState ===
|
100
|
+
var isEditMode = viewState === "edit";
|
96
101
|
|
97
102
|
var _topo$alarm$useState = topo.alarm.useState(),
|
98
103
|
alarmList = _topo$alarm$useState.alarmList,
|
@@ -110,12 +115,29 @@ function useGraphAlarmDisplay(options) {
|
|
110
115
|
cmpLinkRunStatus = _useCmpLinkAlarm.cmpLinkRunStatus,
|
111
116
|
addCmpLinkOfflineStatusForDisplayLineColor = _useCmpLinkAlarm.addCmpLinkOfflineStatusForDisplayLineColor;
|
112
117
|
|
113
|
-
var
|
118
|
+
var cmpRes = (0, _react.useMemo)(function () {
|
114
119
|
return addCmpLinkOfflineStatusForDisplayLineColor(oldResources, cmpLinkRunStatus);
|
115
|
-
}, [oldResources, cmpLinkRunStatus]); //
|
120
|
+
}, [oldResources, cmpLinkRunStatus]); // 拓扑链路特殊处理
|
121
|
+
|
122
|
+
var _useLinkAlarmDisplay = (0, _useLinkAlarmDisplay2["default"])({
|
123
|
+
topo: topo,
|
124
|
+
resources: cmpRes,
|
125
|
+
graphLoaded: graphLoaded,
|
126
|
+
alarmList: alarmList
|
127
|
+
}),
|
128
|
+
linkRunStatus = _useLinkAlarmDisplay.linkRunStatus,
|
129
|
+
getlinkAlarmLevels = _useLinkAlarmDisplay.getlinkAlarmLevels; // const resources = useMemo(() => addLinkOfflineStatusForDisplayLineColor(cmpRes, linkRunStatus), [cmpRes, linkRunStatus])
|
130
|
+
|
131
|
+
|
132
|
+
var linkAlarmLevels = getlinkAlarmLevels(alarmList, cmpRes);
|
133
|
+
var resources = [].concat(cmpRes); //1.7 需求,过滤掉断开状态的链路
|
134
|
+
// const resources = cmpRes.filter((item) => {
|
135
|
+
// return !item.breakState;
|
136
|
+
// });
|
137
|
+
// ci告警级别
|
116
138
|
|
117
139
|
var cisEventLevel = (0, _react.useMemo)(function () {
|
118
|
-
var levels = [].concat(alarmList || [], cmpLinkAlarmLevels, risks.map(function (item) {
|
140
|
+
var levels = [].concat(alarmList || [], cmpLinkAlarmLevels, linkAlarmLevels, risks.map(function (item) {
|
119
141
|
var _item$resourceId;
|
120
142
|
|
121
143
|
return {
|
@@ -161,19 +183,17 @@ function useGraphAlarmDisplay(options) {
|
|
161
183
|
var alarmLevel = (_elementsAlarmLevels$ = elementsAlarmLevels.find(function (item) {
|
162
184
|
return item.id === element.getTag() || item.elementId === element.getId();
|
163
185
|
})) === null || _elementsAlarmLevels$ === void 0 ? void 0 : _elementsAlarmLevels$.level;
|
164
|
-
element.a(
|
186
|
+
element.a("alarmLevel", alarmLevel);
|
165
187
|
});
|
166
|
-
|
167
|
-
_rlog["default"].debug('推送告警 => ht', {
|
188
|
+
rlog.debug("推送告警 => ht", {
|
168
189
|
alarms: elementsAlarmLevels,
|
169
190
|
relateTopoAlarmMap: relateTopoAlarm,
|
170
191
|
relateTopoAlarms: relateTopoAlarms
|
171
192
|
}); // 更新到ht拓扑
|
172
193
|
|
173
|
-
|
174
|
-
(_topo$historyManager = topo.historyManager) === null || _topo$historyManager === void 0 ? void 0 : _topo$historyManager.setDisabled(true, '推送告警');
|
194
|
+
(_topo$historyManager = topo.historyManager) === null || _topo$historyManager === void 0 ? void 0 : _topo$historyManager.setDisabled(true, "推送告警");
|
175
195
|
topo.view.loadAlarm(elementsAlarmLevels);
|
176
|
-
(_topo$historyManager2 = topo.historyManager) === null || _topo$historyManager2 === void 0 ? void 0 : _topo$historyManager2.setDisabled(false,
|
196
|
+
(_topo$historyManager2 = topo.historyManager) === null || _topo$historyManager2 === void 0 ? void 0 : _topo$historyManager2.setDisabled(false, "推送告警");
|
177
197
|
}
|
178
198
|
|
179
199
|
return function () {
|