@riil-frontend/component-topology 13.0.0-dev.15 → 13.0.0-dev.17

Sign up to get free protection for your applications and to get access to all the features.
@@ -18,6 +18,7 @@ function AlarmListPanel(props, ref) {
18
18
  var alarmListProps = useAlarmList({
19
19
  alarmData: alarmData
20
20
  });
21
+ var alarmLink = topo.isCMPTopo ? '/default/cmp/gradAlarm' : '/default/alarmCenter/alarmList';
21
22
  return /*#__PURE__*/React.createElement("div", {
22
23
  className: styles.AlarmListPanel,
23
24
  id: "AlarmListPanel"
@@ -35,7 +36,7 @@ function AlarmListPanel(props, ref) {
35
36
  onClick: onClose
36
37
  }, /*#__PURE__*/React.createElement(Link, {
37
38
  className: styles.listTitleLink,
38
- to: "/default/alarmCenter/alarmList"
39
+ to: alarmLink
39
40
  }, "\u67E5\u770B\u6240\u6709\u544A\u8B66"))),
40
41
  extra:
41
42
  /*#__PURE__*/
@@ -3,11 +3,12 @@ import rlog from "@riil-frontend/component-topology-utils/es/rlog";
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";
6
7
  /**
7
8
  * 获取ci的最高告警级别
8
- * @param {Array} alarmList
9
- * @param {*} risks
10
- * @returns
9
+ * @param {Array} alarmList
10
+ * @param {*} risks
11
+ * @returns
11
12
  */
12
13
 
13
14
  function getCiAlarmLevelMap(alarmList) {
@@ -40,9 +41,9 @@ function getGraphCiElementAlarmLevels(resources, alarmList) {
40
41
  }
41
42
  /**
42
43
  * 获得关联拓扑节点告警级别
43
- * @param {*} topo
44
- * @param {*} relateTopoAlarm
45
- * @returns
44
+ * @param {*} topo
45
+ * @param {*} relateTopoAlarm
46
+ * @returns
46
47
  */
47
48
 
48
49
 
@@ -50,7 +51,7 @@ function getRelateTopoNodeAlarmLevels(topo, relateTopoAlarm) {
50
51
  return Object.keys(relateTopoAlarm).map(function (topoId) {
51
52
  var level = relateTopoAlarm[topoId];
52
53
  var relateTopoNode = topo.getDataModel().getDatas().toArray().find(function (node) {
53
- return "" + node.a('bindTopo') === "" + topoId;
54
+ return "" + node.a("bindTopo") === "" + topoId;
54
55
  });
55
56
 
56
57
  if (!level || !relateTopoNode) {
@@ -70,18 +71,18 @@ function getRelateTopoNodeAlarmLevels(topo, relateTopoAlarm) {
70
71
  function getGraphElementAlarmLevels(resources) {}
71
72
  /**
72
73
  * 告警显示到ht拓扑
73
- *
74
- * @param {*} options
74
+ *
75
+ * @param {*} options
75
76
  */
76
77
 
77
78
 
78
79
  export default function useGraphAlarmDisplay(options) {
79
80
  var topo = options.topo,
80
81
  alarmSwitch = options.alarmSwitch;
81
- var topoState = topo.store.useModelState('topoMod');
82
+ var topoState = topo.store.useModelState("topoMod");
82
83
  var graphLoaded = topoState.graphLoaded,
83
84
  viewState = topoState.viewState;
84
- var isEditMode = viewState === 'edit';
85
+ var isEditMode = viewState === "edit";
85
86
 
86
87
  var _topo$alarm$useState = topo.alarm.useState(),
87
88
  alarmList = _topo$alarm$useState.alarmList,
@@ -99,12 +100,28 @@ export default function useGraphAlarmDisplay(options) {
99
100
  cmpLinkRunStatus = _useCmpLinkAlarm.cmpLinkRunStatus,
100
101
  addCmpLinkOfflineStatusForDisplayLineColor = _useCmpLinkAlarm.addCmpLinkOfflineStatusForDisplayLineColor;
101
102
 
102
- var resources = useMemo(function () {
103
+ var cmpRes = useMemo(function () {
103
104
  return addCmpLinkOfflineStatusForDisplayLineColor(oldResources, cmpLinkRunStatus);
104
- }, [oldResources, cmpLinkRunStatus]); // ci告警级别
105
+ }, [oldResources, cmpLinkRunStatus]); // 拓扑链路特殊处理
106
+
107
+ var _useLinkAlarmDisplay = useLinkAlarmDisplay({
108
+ topo: topo,
109
+ resources: cmpRes,
110
+ graphLoaded: graphLoaded,
111
+ alarmList: alarmList
112
+ }),
113
+ linkRunStatus = _useLinkAlarmDisplay.linkRunStatus,
114
+ getlinkAlarmLevels = _useLinkAlarmDisplay.getlinkAlarmLevels; // const resources = useMemo(() => addLinkOfflineStatusForDisplayLineColor(cmpRes, linkRunStatus), [cmpRes, linkRunStatus])
115
+
116
+
117
+ var linkAlarmLevels = getlinkAlarmLevels(alarmList, cmpRes); // 排除掉处于断开状态的链路
118
+
119
+ var resources = cmpRes.filter(function (item) {
120
+ return !item.breakState;
121
+ }); // ci告警级别
105
122
 
106
123
  var cisEventLevel = useMemo(function () {
107
- var levels = [].concat(alarmList || [], cmpLinkAlarmLevels, risks.map(function (item) {
124
+ var levels = [].concat(alarmList || [], cmpLinkAlarmLevels, linkAlarmLevels, risks.map(function (item) {
108
125
  var _item$resourceId;
109
126
 
110
127
  return {
@@ -124,6 +141,16 @@ export default function useGraphAlarmDisplay(options) {
124
141
  alarmSwitch: alarmSwitch,
125
142
  cisEventLevel: cisEventLevel
126
143
  });
144
+ setOffLinkColor();
145
+
146
+ function setOffLinkColor() {
147
+ oldResources.forEach(function (item) {
148
+ if (item.breakState) {
149
+ var element = topo.getDataModel().getDataByTag(item.id);
150
+ element === null || element === void 0 ? void 0 : element.s("edge.color", "#C9CED2");
151
+ }
152
+ });
153
+ }
127
154
 
128
155
  function showAlarm() {
129
156
  var _topo$historyManager, _topo$historyManager2;
@@ -150,17 +177,17 @@ export default function useGraphAlarmDisplay(options) {
150
177
  var alarmLevel = (_elementsAlarmLevels$ = elementsAlarmLevels.find(function (item) {
151
178
  return item.id === element.getTag() || item.elementId === element.getId();
152
179
  })) === null || _elementsAlarmLevels$ === void 0 ? void 0 : _elementsAlarmLevels$.level;
153
- element.a('alarmLevel', alarmLevel);
180
+ element.a("alarmLevel", alarmLevel);
154
181
  });
155
- rlog.debug('推送告警 => ht', {
182
+ rlog.debug("推送告警 => ht", {
156
183
  alarms: elementsAlarmLevels,
157
184
  relateTopoAlarmMap: relateTopoAlarm,
158
185
  relateTopoAlarms: relateTopoAlarms
159
186
  }); // 更新到ht拓扑
160
187
 
161
- (_topo$historyManager = topo.historyManager) === null || _topo$historyManager === void 0 ? void 0 : _topo$historyManager.setDisabled(true, '推送告警');
188
+ (_topo$historyManager = topo.historyManager) === null || _topo$historyManager === void 0 ? void 0 : _topo$historyManager.setDisabled(true, "推送告警");
162
189
  topo.view.loadAlarm(elementsAlarmLevels);
163
- (_topo$historyManager2 = topo.historyManager) === null || _topo$historyManager2 === void 0 ? void 0 : _topo$historyManager2.setDisabled(false, '推送告警');
190
+ (_topo$historyManager2 = topo.historyManager) === null || _topo$historyManager2 === void 0 ? void 0 : _topo$historyManager2.setDisabled(false, "推送告警");
164
191
  }
165
192
 
166
193
  return function () {
@@ -0,0 +1,163 @@
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;
26
+
27
+ console.log("linkAlarmLevels-----------1", linkDevDoc, alarmList);
28
+
29
+ if (!alarmList) {
30
+ return [];
31
+ }
32
+
33
+ var alarms = alarmList.filter(function (alarm) {
34
+ return alarm.obj.alertTypeCode === "availAlert";
35
+ }).map(function (item) {
36
+ return item.id;
37
+ });
38
+ return Object.keys(linkDevDoc).filter(function (item) {
39
+ return _.intersection(linkDevDoc[item], alarms).length > 0;
40
+ }).map(function (item) {
41
+ return {
42
+ id: item,
43
+ level: 1
44
+ };
45
+ });
46
+ ;
47
+ }
48
+ /**
49
+ * 处理链路显示
50
+ * @param {*} props
51
+ * @returns
52
+ */
53
+
54
+
55
+ export default function useLinkAlarmDisplay(props) {
56
+ var topo = props.topo,
57
+ resources = props.resources,
58
+ graphLoaded = props.graphLoaded,
59
+ alarmList = props.alarmList;
60
+
61
+ var _useState = useState(getLinkDev(resources).linkIds),
62
+ linkIds = _useState[0],
63
+ setLinkIds = _useState[1];
64
+
65
+ var _useState2 = useState([]),
66
+ linkRunStatus = _useState2[0],
67
+ setLinkRunStatus = _useState2[1];
68
+
69
+ var _useState3 = useState(getLinkDev(resources).linkDevDoc),
70
+ linkDev = _useState3[0],
71
+ setLinkDev = _useState3[1];
72
+
73
+ console.log("alarmList----------sssss", alarmList);
74
+ useEffect(function () {
75
+ var ids = getLinkDev(resources).linkIds;
76
+
77
+ if (linkIds.join(",") !== ids.join(",")) {
78
+ setLinkIds(ids);
79
+ }
80
+ }, [resources]);
81
+
82
+ function getLinkRunStatus(_x) {
83
+ return _getLinkRunStatus.apply(this, arguments);
84
+ } // 轮询hooks
85
+
86
+
87
+ function _getLinkRunStatus() {
88
+ _getLinkRunStatus = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee(ids) {
89
+ var _yield$Promise$all, ciMetricsResult;
90
+
91
+ return _regeneratorRuntime.wrap(function _callee$(_context) {
92
+ while (1) switch (_context.prev = _context.next) {
93
+ case 0:
94
+ if (ids.length) {
95
+ _context.next = 2;
96
+ break;
97
+ }
98
+
99
+ return _context.abrupt("return", []);
100
+
101
+ case 2:
102
+ _context.t0 = Promise;
103
+ _context.t1 = // 查询指标值
104
+ topo.serverApi.ciInfo.batchQueryCiInfo({
105
+ ciId: [],
106
+ codes: ["run_status", "remote_ping_status"],
107
+ relationId: ids.map(function (id) {
108
+ return {
109
+ ciId: id,
110
+ operation: "delete"
111
+ };
112
+ })
113
+ });
114
+ _context.next = 6;
115
+ return DictCache.init();
116
+
117
+ case 6:
118
+ _context.t2 = _context.sent;
119
+ _context.t3 = [_context.t1, _context.t2];
120
+ _context.next = 10;
121
+ return _context.t0.all.call(_context.t0, _context.t3);
122
+
123
+ case 10:
124
+ _yield$Promise$all = _context.sent;
125
+ ciMetricsResult = _yield$Promise$all[0];
126
+ console.log("getLinkRunStatus", ciMetricsResult);
127
+ return _context.abrupt("return", ciMetricsResult);
128
+
129
+ case 14:
130
+ case "end":
131
+ return _context.stop();
132
+ }
133
+ }, _callee);
134
+ }));
135
+ return _getLinkRunStatus.apply(this, arguments);
136
+ }
137
+
138
+ var _useRequest = useRequest(getLinkRunStatus, {
139
+ pollingInterval: 60 * 1000,
140
+ pollingWhenHidden: false,
141
+ // debounceInterval: 200,
142
+ manual: true,
143
+ onSuccess: function onSuccess(result) {
144
+ setLinkRunStatus(result.map(function (item) {
145
+ return {
146
+ id: item.id,
147
+ runStatus: item.metrics.run_status
148
+ };
149
+ }));
150
+ }
151
+ }),
152
+ run = _useRequest.run;
153
+
154
+ useEffect(function () {
155
+ if (graphLoaded) {
156
+ run(linkIds);
157
+ }
158
+ }, [graphLoaded, linkIds]);
159
+ return {
160
+ linkRunStatus: linkRunStatus,
161
+ getlinkAlarmLevels: getlinkAlarmLevels
162
+ };
163
+ }
@@ -2,6 +2,7 @@ import { rlog } from '@riil-frontend/component-topology-utils';
2
2
  import { useEffect } from 'react';
3
3
  import useTopoEventListener from "./useTopoEventListener";
4
4
  ht.Default.setImage('resource.subIcon.unMoniter', '/img/topo/alarmStatusIcon/未监控.svg');
5
+ ht.Default.setImage('resource.link.linkbreak', '/img/topo/link-break.svg');
5
6
  /**
6
7
  * 监听监控状态推送
7
8
  * 节点、连线监控状态置灰
@@ -1,15 +1,15 @@
1
1
  import _extends from "@babel/runtime/helpers/extends";
2
2
  import _asyncToGenerator from "@babel/runtime/helpers/asyncToGenerator";
3
3
  import _regeneratorRuntime from "@babel/runtime/regenerator";
4
- import { useEffect } from 'react';
5
- import { useRequest } from 'ahooks';
6
- import _ from 'lodash';
7
- import Logger from 'loglevel';
8
- import { useCbbEventListener } from '@riil-frontend/component-riil-event-emitter';
4
+ import { useEffect } from "react";
5
+ import { useRequest } from "ahooks";
6
+ import _ from "lodash";
7
+ import Logger from "loglevel";
8
+ import { useCbbEventListener } from "@riil-frontend/component-riil-event-emitter";
9
9
  import DictCache from "../models/cache/DictCache";
10
10
  import useCiAttributeChange from "./useCiAttributeChange";
11
11
  import useHtDataPropertyChangeListener from "./ht/useHtDataPropertyChangeListener";
12
- var rlog = Logger.getLogger('topo');
12
+ var rlog = Logger.getLogger("topo");
13
13
  /**
14
14
  * 轮询获取指标hooks
15
15
  * @param {*} props
@@ -21,15 +21,15 @@ var usePolling = function usePolling(props) {
21
21
  useCiAttributeChange({
22
22
  topo: topo
23
23
  });
24
- var bizState = store.useModelState('topoBizMod');
24
+ var bizState = store.useModelState("topoBizMod");
25
25
  var resAndMetrics = bizState.resAndMetrics,
26
26
  pollingSwitch = bizState.pollingSwitch;
27
- var displayConfig = topo.store.useModelState('displayConfig');
28
- var resourceOverviewState = topo.store.useModelState('topoBaseInfoOverview');
27
+ var displayConfig = topo.store.useModelState("displayConfig");
28
+ var resourceOverviewState = topo.store.useModelState("topoBaseInfoOverview");
29
29
  var resIdsList = resAndMetrics === null || resAndMetrics === void 0 ? void 0 : resAndMetrics.resIdsList;
30
30
  /**
31
31
  * 查询拓扑图资源的属性指标
32
- *
32
+ *
33
33
  * @returns {array}
34
34
  */
35
35
 
@@ -37,7 +37,7 @@ var usePolling = function usePolling(props) {
37
37
  return _fetchData.apply(this, arguments);
38
38
  }
39
39
  /**
40
- *
40
+ *
41
41
  * @returns {{id, attributes: object[], metrics: object[]}[]} 属性和指标
42
42
  */
43
43
 
@@ -53,7 +53,7 @@ var usePolling = function usePolling(props) {
53
53
  var ipv6 = data.attributeMap.ipv6_address;
54
54
 
55
55
  if (!ipv6 && data.attributeMap.ipv6_address_list) {
56
- ipv6 = (data.attributeMap.ipv6_address_list || '').split(',')[0];
56
+ ipv6 = (data.attributeMap.ipv6_address_list || "").split(",")[0];
57
57
  }
58
58
 
59
59
  return _extends({}, data, {
@@ -85,9 +85,62 @@ var usePolling = function usePolling(props) {
85
85
  // 合并属性、指标
86
86
  var _topo$dataModel$getDa = topo.dataModel.getData(),
87
87
  nodes = _topo$dataModel$getDa.nodes,
88
- links = _topo$dataModel$getDa.links;
89
-
90
- return [].concat(nodes, links).filter(function (item) {
88
+ links = _topo$dataModel$getDa.links; // console.log('fetchData-mergeData',ciMetricsResult, nodes, links)
89
+ // 判断通断状态
90
+
91
+
92
+ var breakLinks = links.filter(function (item) {
93
+ return item.ciType === "network_link";
94
+ }).map(function (link) {
95
+ console.log("fetchData-mergeData", link);
96
+ var breakFlag = false;
97
+ ciMetricsResult.forEach(function (item) {
98
+ if (item.id === link.id) {
99
+ if (item.metrics.hasOwnProperty("run_status")) {
100
+ if (item.metrics.run_status !== "1") {
101
+ breakFlag = true;
102
+ }
103
+ }
104
+
105
+ if (link.attributes["network_link.is_crucial"] && item.metrics.hasOwnProperty("remote_ping_status")) {
106
+ if (item.metrics.remote_ping_status !== "1") {
107
+ breakFlag = true;
108
+ }
109
+ }
110
+ }
111
+ });
112
+ var element = topo.getDataModel().getDataByTag(link.id);
113
+
114
+ if (!element) {
115
+ return;
116
+ }
117
+
118
+ if (breakFlag) {
119
+ console.log("link.setNodeStyleIcon-breakFlag", element);
120
+ topo.getHtTopo().setNodeStyleIcon(element, {
121
+ styleIcon: "linkbreak",
122
+ position: 17,
123
+ icon: "resource.link.linkbreak"
124
+ });
125
+ topo.dataModel.updateData([_extends({}, link, {
126
+ breakState: true
127
+ })]);
128
+ element === null || element === void 0 ? void 0 : element.s("edge.color", "#C9CED2");
129
+ return link.id; //element.a('linkbreak',true);
130
+ } else {
131
+ // 恢复状态
132
+ element.removeStyleIcon("linkbreak");
133
+ topo.dataModel.updateData([_extends({}, link, {
134
+ breakState: false
135
+ })]);
136
+ element === null || element === void 0 ? void 0 : element.a('linkbreak', false);
137
+ return undefined; // topo.getHtTopo().setNodeStyleIcon(element, { styleIcon: 'linkbreak',position: 17, icon: 'resource.link.linkbreak' });
138
+ }
139
+ });
140
+ console.log('link-break', breakLinks, links);
141
+ return [].concat(nodes, links.filter(function (link) {
142
+ return !breakLinks.includes(link.id);
143
+ })).filter(function (item) {
91
144
  return !!item.ciType;
92
145
  }).map(function (ciData) {
93
146
  var resultData = _extends({}, ciData, {
@@ -107,7 +160,7 @@ var usePolling = function usePolling(props) {
107
160
  });
108
161
  };
109
162
 
110
- _topo$store$getModelS = topo.store.getModelState('topoBizMod').resAndMetrics, resIdsList = _topo$store$getModelS.resIdsList, nodeIdsList = _topo$store$getModelS.nodeIdsList; // rlog.debug('根据ci的id获取属性的值-getCiArrByIds', resIdsList, metrics);
163
+ _topo$store$getModelS = topo.store.getModelState("topoBizMod").resAndMetrics, resIdsList = _topo$store$getModelS.resIdsList, nodeIdsList = _topo$store$getModelS.nodeIdsList; // rlog.debug('根据ci的id获取属性的值-getCiArrByIds', resIdsList, metrics);
111
164
  // 无资源,不查询
112
165
 
113
166
  if (resIdsList.length) {
@@ -122,7 +175,8 @@ var usePolling = function usePolling(props) {
122
175
  codes = topo.attributeMetricDisplay.getResourceMetricCodes();
123
176
  param = {
124
177
  ciId: nodeIdsList,
125
- codes: codes,
178
+ codes: [].concat(codes, ["run_status", "remote_ping_status"]),
179
+ // 判断链路通断状态
126
180
  // 过滤掉不需要查询的
127
181
  relationId: topo.attributeMetricDisplay.getEdges().map(function (edge) {
128
182
  return {
@@ -212,7 +266,7 @@ var usePolling = function usePolling(props) {
212
266
 
213
267
  useEffect(function () {
214
268
  if (topo.options.enableDefaultMetricLoader) {
215
- rlog.debug('usePolling.useEffect: 开始轮询', {
269
+ rlog.debug("usePolling.useEffect: 开始轮询", {
216
270
  pollingSwitch: pollingSwitch,
217
271
  resIdsList: resIdsList,
218
272
  resourceOverviewState: resourceOverviewState,
@@ -223,16 +277,16 @@ var usePolling = function usePolling(props) {
223
277
 
224
278
  return function () {
225
279
  if (loading) {
226
- rlog.debug('usePolling.useEffect: 结束轮询', resAndMetrics);
280
+ rlog.debug("usePolling.useEffect: 结束轮询", resAndMetrics);
227
281
  stopPoll();
228
282
  }
229
283
  };
230
284
  }, [pollingSwitch, resIdsList, displayConfig, resourceOverviewState.id, resourceOverviewState.metricCodes]); // 属性变更监听更新
231
285
 
232
- useCbbEventListener('topo', {
233
- name: 'topo',
286
+ useCbbEventListener("topo", {
287
+ name: "topo",
234
288
  onMessage: function onMessage(message) {
235
- if (message.type === 'attribute') {
289
+ if (message.type === "attribute") {
236
290
  var data = message.data;
237
291
  }
238
292
  }
@@ -243,8 +297,8 @@ var usePolling = function usePolling(props) {
243
297
  onChange: function onChange(e) {
244
298
  var property = e.property,
245
299
  data = e.data;
246
- var isGroupExpandedChanged = data instanceof ht.Group && property === 'expanded';
247
- var isEdgeExpandedChanged = data instanceof ht.Edge && property === 'edge.expanded';
300
+ var isGroupExpandedChanged = data instanceof ht.Group && property === "expanded";
301
+ var isEdgeExpandedChanged = data instanceof ht.Edge && property === "edge.expanded";
248
302
 
249
303
  if (isGroupExpandedChanged || isEdgeExpandedChanged) {
250
304
  topo.attributeMetricDisplay.updateTagsTips();
@@ -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 "13.0.0-dev.15" === 'string' ? "13.0.0-dev.15" : null;
27
+ var version = typeof "13.0.0-dev.17" === 'string' ? "13.0.0-dev.17" : null;
28
28
  console.info("\u62D3\u6251\u7248\u672C: " + version);
29
29
  /**
30
30
  * 拓扑显示和编辑
@@ -57,6 +57,7 @@ export function mergeLinksData(links, linkCis, nodes, ciMap, interfaceDoc) {
57
57
 
58
58
 
59
59
  return _extends({}, link, {
60
+ breakState: false,
60
61
  attributes: _extends({}, attributes, {
61
62
  // 源/目的设备
62
63
  "network_link.source_device_id_object": {
@@ -395,7 +395,8 @@ export default function (topoApp) {
395
395
  globalConfig: extraConfig,
396
396
  type: (_result$config = result.config) === null || _result$config === void 0 ? void 0 : _result$config.showType,
397
397
  topoData: topoData,
398
- resAndMetrics: resAndMetrics
398
+ resAndMetrics: resAndMetrics,
399
+ loading: false
399
400
  });
400
401
 
401
402
  case 47:
@@ -425,11 +426,7 @@ export default function (topoApp) {
425
426
  rlog.info('topoMod.initTopoData 初始化拓扑图数据完成. 耗时: ', endTime.diff(startTime, 'seconds', true));
426
427
  topoApp.options.onLoad();
427
428
 
428
- _this3.update({
429
- loading: false
430
- });
431
-
432
- case 62:
429
+ case 61:
433
430
  case "end":
434
431
  return _context4.stop();
435
432
  }
@@ -41,7 +41,7 @@ export var updateEdgeExpanded = function updateEdgeExpanded(topo) {
41
41
  htTopo.toggleAllEdgeGroups(false);
42
42
  rlog.debug("updateEdgeExpanded 折叠");
43
43
  } else {
44
- htTopo.toggleAllEdgeGroups(true);
44
+ //htTopo.toggleAllEdgeGroups(true);
45
45
  showLinkByConfig({
46
46
  topo: topo,
47
47
  showType: expandAllEdges,
@@ -11,6 +11,7 @@ export function fixLink(topo) {
11
11
  edges.forEach(function (edge) {
12
12
  var source = edge.getSource();
13
13
  var target = edge.getTarget();
14
+ console.log('fixLink', edge, source, target);
14
15
  var linkData = linkDatas.find(function (data) {
15
16
  return data.id === edge.getTag();
16
17
  }); // TODO 判断两端互相切换
@@ -39,6 +39,7 @@ function AlarmListPanel(props, ref) {
39
39
  var alarmListProps = (0, _useAlarmList["default"])({
40
40
  alarmData: alarmData
41
41
  });
42
+ var alarmLink = topo.isCMPTopo ? '/default/cmp/gradAlarm' : '/default/alarmCenter/alarmList';
42
43
  return /*#__PURE__*/_react["default"].createElement("div", {
43
44
  className: _indexModule["default"].AlarmListPanel,
44
45
  id: "AlarmListPanel"
@@ -56,7 +57,7 @@ function AlarmListPanel(props, ref) {
56
57
  onClick: onClose
57
58
  }, /*#__PURE__*/_react["default"].createElement(_Link["default"], {
58
59
  className: _indexModule["default"].listTitleLink,
59
- to: "/default/alarmCenter/alarmList"
60
+ to: alarmLink
60
61
  }, "\u67E5\u770B\u6240\u6709\u544A\u8B66"))),
61
62
  extra:
62
63
  /*#__PURE__*/