@riil-frontend/component-topology 12.1.5 → 12.1.8

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.
@@ -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
 
@@ -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 isLiveRisk = function isLiveRisk(data) {
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(isLiveRisk).filter(hasCiPermission).sort(function (a, b) {
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 rlog from "@riil-frontend/component-topology-utils/es/rlog";
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) {
@@ -31,18 +33,13 @@ function getGraphCiElementAlarmLevels(resources, alarmList) {
31
33
  id: id,
32
34
  level: ciIdLevelMap[id]
33
35
  };
34
- }).filter(function (alarm) {
35
- var resource = resources.find(function (item) {
36
- return item.id === alarm.id;
37
- });
38
- return !!resource;
39
36
  });
40
37
  }
41
38
  /**
42
39
  * 获得关联拓扑节点告警级别
43
- * @param {*} topo
44
- * @param {*} relateTopoAlarm
45
- * @returns
40
+ * @param {*} topo
41
+ * @param {*} relateTopoAlarm
42
+ * @returns
46
43
  */
47
44
 
48
45
 
@@ -50,7 +47,7 @@ function getRelateTopoNodeAlarmLevels(topo, relateTopoAlarm) {
50
47
  return Object.keys(relateTopoAlarm).map(function (topoId) {
51
48
  var level = relateTopoAlarm[topoId];
52
49
  var relateTopoNode = topo.getDataModel().getDatas().toArray().find(function (node) {
53
- return "" + node.a('bindTopo') === "" + topoId;
50
+ return "" + node.a("bindTopo") === "" + topoId;
54
51
  });
55
52
 
56
53
  if (!level || !relateTopoNode) {
@@ -70,25 +67,25 @@ function getRelateTopoNodeAlarmLevels(topo, relateTopoAlarm) {
70
67
  function getGraphElementAlarmLevels(resources) {}
71
68
  /**
72
69
  * 告警显示到ht拓扑
73
- *
74
- * @param {*} options
70
+ *
71
+ * @param {*} options
75
72
  */
76
73
 
77
74
 
78
75
  export default function useGraphAlarmDisplay(options) {
79
76
  var topo = options.topo,
80
77
  alarmSwitch = options.alarmSwitch;
81
- var topoState = topo.store.useModelState('topoMod');
78
+ var topoState = topo.store.useModelState("topoMod");
82
79
  var graphLoaded = topoState.graphLoaded,
83
80
  viewState = topoState.viewState;
84
- var isEditMode = viewState === 'edit';
81
+ var isEditMode = viewState === "edit";
85
82
 
86
83
  var _topo$alarm$useState = topo.alarm.useState(),
87
84
  alarmList = _topo$alarm$useState.alarmList,
88
85
  risks = _topo$alarm$useState.risks,
89
86
  relateTopoAlarm = _topo$alarm$useState.relateTopoAlarm;
90
87
 
91
- var oldResources = topo.dataModel.useCis(); // 分级拓扑下级链路特殊处理
88
+ var oldResources = topo.dataModel.useCis(); // 分级拓扑下级链路特殊处理。待迁移到业务模块
92
89
 
93
90
  var _useCmpLinkAlarm = useCmpLinkAlarm({
94
91
  topo: topo,
@@ -101,10 +98,17 @@ export default function useGraphAlarmDisplay(options) {
101
98
 
102
99
  var resources = useMemo(function () {
103
100
  return addCmpLinkOfflineStatusForDisplayLineColor(oldResources, cmpLinkRunStatus);
104
- }, [oldResources, cmpLinkRunStatus]); // ci告警级别
101
+ }, [oldResources, cmpLinkRunStatus]); // 拓扑链路通断告警特殊处理。待迁移到业务模块
102
+
103
+ var _useLinkAlarmDisplay = useLinkAlarmDisplay({
104
+ resources: resources,
105
+ alarmList: alarmList
106
+ }),
107
+ linkBreakAlarmLevels = _useLinkAlarmDisplay.linkBreakAlarmLevels; // ci告警级别
108
+
105
109
 
106
110
  var cisEventLevel = useMemo(function () {
107
- var levels = [].concat(alarmList || [], cmpLinkAlarmLevels, risks.map(function (item) {
111
+ var alarmLevels = [].concat(alarmList || [], cmpLinkAlarmLevels, linkBreakAlarmLevels, risks.map(function (item) {
108
112
  var _item$resourceId;
109
113
 
110
114
  return {
@@ -112,7 +116,19 @@ export default function useGraphAlarmDisplay(options) {
112
116
  level: 5
113
117
  };
114
118
  }));
115
- return getGraphCiElementAlarmLevels(resources, levels);
119
+ return getGraphCiElementAlarmLevels(resources, alarmLevels) // 过滤元素不存在
120
+ .filter(function (alarm) {
121
+ var resource = resources.find(function (item) {
122
+ return item.id === alarm.id;
123
+ });
124
+ return !!resource;
125
+ }) // v1.7 过滤掉断开状态的链路,不显示告警
126
+ .filter(function (alarm) {
127
+ var resource = resources.find(function (item) {
128
+ return item.id === alarm.id;
129
+ });
130
+ return !resource.breakState;
131
+ });
116
132
  }, [resources, alarmList, cmpLinkAlarmLevels, risks]);
117
133
  useEffect(function () {
118
134
  showAlarm();
@@ -136,7 +152,7 @@ export default function useGraphAlarmDisplay(options) {
136
152
  // 告警静默
137
153
  topo.view.loadAlarm([]);
138
154
  return;
139
- } // 关联拓扑告警
155
+ } // 关联拓扑告警。待迁移到业务模块
140
156
 
141
157
 
142
158
  var relateTopoAlarms = getRelateTopoNodeAlarmLevels(topo, relateTopoAlarm);
@@ -150,17 +166,17 @@ export default function useGraphAlarmDisplay(options) {
150
166
  var alarmLevel = (_elementsAlarmLevels$ = elementsAlarmLevels.find(function (item) {
151
167
  return item.id === element.getTag() || item.elementId === element.getId();
152
168
  })) === null || _elementsAlarmLevels$ === void 0 ? void 0 : _elementsAlarmLevels$.level;
153
- element.a('alarmLevel', alarmLevel);
169
+ element.a("alarmLevel", alarmLevel);
154
170
  });
155
- rlog.debug('推送告警 => ht', {
171
+ rlog.debug("推送告警 => ht", {
156
172
  alarms: elementsAlarmLevels,
157
173
  relateTopoAlarmMap: relateTopoAlarm,
158
174
  relateTopoAlarms: relateTopoAlarms
159
175
  }); // 更新到ht拓扑
160
176
 
161
- (_topo$historyManager = topo.historyManager) === null || _topo$historyManager === void 0 ? void 0 : _topo$historyManager.setDisabled(true, '推送告警');
177
+ (_topo$historyManager = topo.historyManager) === null || _topo$historyManager === void 0 ? void 0 : _topo$historyManager.setDisabled(true, "推送告警");
162
178
  topo.view.loadAlarm(elementsAlarmLevels);
163
- (_topo$historyManager2 = topo.historyManager) === null || _topo$historyManager2 === void 0 ? void 0 : _topo$historyManager2.setDisabled(false, '推送告警');
179
+ (_topo$historyManager2 = topo.historyManager) === null || _topo$historyManager2 === void 0 ? void 0 : _topo$historyManager2.setDisabled(false, "推送告警");
164
180
  }
165
181
 
166
182
  return function () {
@@ -0,0 +1,58 @@
1
+ import { useEffect, useState, useMemo } from "react";
2
+ import _ from "lodash";
3
+
4
+ function getLinkDev(datas) {
5
+ var linkDevDoc = {};
6
+ var linkIds = datas //
7
+ .filter(function (item) {
8
+ return item.ciType === "network_link";
9
+ }).map(function (item) {
10
+ linkDevDoc[item.id] = [item.source, item.target];
11
+ return item.id;
12
+ });
13
+ return {
14
+ linkIds: linkIds,
15
+ linkDevDoc: linkDevDoc
16
+ };
17
+ }
18
+
19
+ function getlinkAlarmLevels(alarmList, resources) {
20
+ var _getLinkDev = getLinkDev(resources),
21
+ linkDevDoc = _getLinkDev.linkDevDoc;
22
+
23
+ if (!alarmList) {
24
+ return [];
25
+ }
26
+
27
+ var alarms = alarmList.filter(function (alarm) {
28
+ var _alarm$obj;
29
+
30
+ return ((_alarm$obj = alarm.obj) === null || _alarm$obj === void 0 ? void 0 : _alarm$obj.alertTypeCode) === "availAlert";
31
+ }).map(function (item) {
32
+ return item.id;
33
+ });
34
+ return Object.keys(linkDevDoc).filter(function (item) {
35
+ return _.intersection(linkDevDoc[item], alarms).length > 0;
36
+ }).map(function (item) {
37
+ return {
38
+ id: item,
39
+ level: 1
40
+ };
41
+ });
42
+ ;
43
+ }
44
+ /**
45
+ * 处理链路显示
46
+ * @param {*} props
47
+ * @returns
48
+ */
49
+
50
+
51
+ export default function useLinkAlarmDisplay(props) {
52
+ var resources = props.resources,
53
+ alarmList = props.alarmList;
54
+ var linkBreakAlarmLevels = getlinkAlarmLevels(alarmList, resources);
55
+ return {
56
+ linkBreakAlarmLevels: linkBreakAlarmLevels
57
+ };
58
+ }
@@ -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 topoService from '@riil-frontend/component-topology-common/es/services/topo';
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
- console.log("handleAlarmEvent-接收到推送的原始告警信息", alertData);
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.5" === 'string' ? "12.1.5" : null;
27
+ var version = typeof "12.1.8" === 'string' ? "12.1.8" : 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 rlog from "@riil-frontend/component-topology-utils/es/rlog";
8
+ import loglevel from 'loglevel';
9
9
  import _ from "lodash";
10
- var showAlarmStatus = ["toDeal", "dealing", "change", "woDealing"];
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 (showAlarmStatus.indexOf(item.status) >= 0) {
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 (showAlarmStatus.indexOf(item.status) >= 0) {
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 showAlarmStatus.indexOf(alarmObj.status) >= 0 ? alarmObj : null;
215
+ return aliveAlarmStatus.indexOf(alarmObj.status) >= 0 ? alarmObj : null;
214
216
  } else {
215
217
  return null;
216
218
  }
@@ -0,0 +1,11 @@
1
+ // 告警在活状态
2
+ var Alarm_alive_Status = ["toDeal", "dealing", "change", "woDealing"];
3
+ /**
4
+ * 告警是否在活
5
+ * @param {*} alarm
6
+ * @returns
7
+ */
8
+
9
+ export var isAlarmAlive = function isAlarmAlive(alarm) {
10
+ return Alarm_alive_Status.includes(alarm.status);
11
+ };
@@ -14,39 +14,41 @@ export function showManageStatus(options) {
14
14
  }; // 首次加载和监控状态变化后,更新节点和连线置灰状态
15
15
 
16
16
 
17
- if (graphLoaded) {
18
- resources.forEach(function (resource) {
19
- var type = resource.type,
20
- id = resource.id,
21
- manageStatus = resource.manageStatus,
22
- permission = resource.permission;
23
- var isNotMonite = manageStatus === 0;
24
- var readable = !!(permission !== null && permission !== void 0 && permission.readable); // 未监控 && 有查看权限 && (告警静默 || 没有告警),才显示未监控状态
17
+ if (!graphLoaded) {
18
+ return;
19
+ }
25
20
 
26
- var showUnMoniteStatus = isNotMonite && readable && (alarmSwitch === false || !hasAlarm(id));
27
- var element = topo.getDataModel().getDataByTag(id);
28
- if (!element) return; // ht元素设置是否显示监控状态,是否展示,用于缩小色块时显示未监控颜色
21
+ resources.forEach(function (resource) {
22
+ var type = resource.type,
23
+ id = resource.id,
24
+ manageStatus = resource.manageStatus,
25
+ permission = resource.permission;
26
+ var isNotMonite = manageStatus === 0;
27
+ var readable = !!(permission !== null && permission !== void 0 && permission.readable); // 显示未监控状态条件:未监控 && 有查看权限 && (告警静默 || 没有告警)
29
28
 
30
- element.a('ci.isMonitoring', !showUnMoniteStatus);
29
+ var showUnMoniteStatus = isNotMonite && readable && (alarmSwitch === false || !hasAlarm(id));
30
+ var element = topo.getDataModel().getDataByTag(id);
31
+ if (!element) return; // ht元素设置是否显示监控状态,是否展示,用于缩小色块时显示未监控颜色
31
32
 
32
- if (type === 'node') {
33
- try {
34
- if (showUnMoniteStatus) {
35
- topo.getHtTopo().setNodeStyleIcon(element, {
36
- styleIcon: 'unMoniter',
37
- icon: 'resource.subIcon.unMoniter'
38
- });
39
- } else {
40
- element.removeStyleIcon('unMoniter');
41
- }
42
- } catch (error) {
43
- rlog.error('设置监控图标异常', element, error);
33
+ element.a('ci.isMonitoring', !showUnMoniteStatus);
34
+
35
+ if (type === 'node') {
36
+ try {
37
+ if (showUnMoniteStatus) {
38
+ topo.getHtTopo().setNodeStyleIcon(element, {
39
+ styleIcon: 'unMoniter',
40
+ icon: 'resource.subIcon.unMoniter'
41
+ });
42
+ } else {
43
+ element.removeStyleIcon('unMoniter');
44
44
  }
45
- } else {
46
- setElementRuntimeStyle(element, 'color', showUnMoniteStatus ? '#C9CED2' : undefined);
45
+ } catch (error) {
46
+ rlog.error('设置监控图标异常', element, error);
47
47
  }
48
- });
49
- }
48
+ } else {
49
+ setElementRuntimeStyle(element, 'color', showUnMoniteStatus ? '#C9CED2' : undefined);
50
+ }
51
+ });
50
52
  }
51
53
  export function removeManageStatus(options) {
52
54
  var topo = options.topo,
@@ -5,6 +5,7 @@ import _Icon from "@alifd/next/es/icon";
5
5
  import _regeneratorRuntime from "@babel/runtime/regenerator";
6
6
  import React from 'react';
7
7
  import moment from 'moment';
8
+ import { history as iceHistory } from 'create-app-shared';
8
9
  import BlockBox from "./BlockBox";
9
10
  import Link from "../../../../../../../components/Link";
10
11
  import service from "../../../../../../services/overview";
@@ -37,7 +38,7 @@ function EventsCard(props) {
37
38
  log.debug('formatUrl(url)', url);
38
39
  topo.viewProps.jumpto(url);
39
40
  } else {
40
- getHistory().push(formatUrl(url));
41
+ (getHistory() || iceHistory).push(formatUrl(url));
41
42
  }
42
43
  }; // 告警table列配置
43
44
 
@@ -47,34 +48,19 @@ function EventsCard(props) {
47
48
  dataIndex: "title",
48
49
  key: "title",
49
50
  cell: function cell(value, index, record) {
50
- return (
51
- /*#__PURE__*/
52
- // <div
53
- // className={styles["alarm-title"]}
54
- // title={value}
55
- // onClick={closeDetailDrawer}
56
- // >
57
- // <Icon
58
- // type={record.icon}
59
- // size="xs"
60
- // className={`${styles["alarm-color-icon"]} ${record.className}`}
61
- // />
62
- // <Link to={formatUrl(record.link)}>{value}</Link>
63
- // </div>
64
- React.createElement("div", {
65
- className: styles['alarm-title'],
66
- title: value,
67
- onClick: function onClick() {
68
- jumpTo(record.link);
69
- }
70
- }, /*#__PURE__*/React.createElement(_Icon, {
71
- type: record.icon,
72
- size: "xs",
73
- className: styles['alarm-color-icon'] + " " + record.className
74
- }), /*#__PURE__*/React.createElement("span", {
75
- className: styles.link
76
- }, value))
77
- );
51
+ return /*#__PURE__*/React.createElement("div", {
52
+ className: styles['alarm-title'],
53
+ title: value,
54
+ onClick: function onClick() {
55
+ jumpTo(record.link);
56
+ }
57
+ }, /*#__PURE__*/React.createElement(_Icon, {
58
+ type: record.icon,
59
+ size: "xs",
60
+ className: styles['alarm-color-icon'] + " " + record.className
61
+ }), /*#__PURE__*/React.createElement("span", {
62
+ className: styles.link
63
+ }, value));
78
64
  }
79
65
  }, {
80
66
  title: "时间",