@riil-frontend/component-topology 12.0.0-dev.16 → 12.0.0-dev.17
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 +3 -3
- package/es/core/editor/components/Toolbar/widgets/Layout/index.js +16 -2
- package/es/core/hooks/useGraphAlarmDisplay.js +62 -40
- package/es/core/models/TopoApp.js +1 -1
- package/es/core/models/cache/CiCache.d.ts +1 -1
- package/es/core/models/cache/CiCache.js +3 -3
- package/es/core/utils/showGraphManageStatusUtil.js +3 -2
- package/es/utils/ciRefAttributeTranslateUtil.d.ts +6 -2
- package/es/utils/ciRefAttributeTranslateUtil.js +7 -8
- package/lib/core/editor/components/Toolbar/widgets/Layout/index.js +16 -2
- package/lib/core/hooks/useGraphAlarmDisplay.js +62 -40
- package/lib/core/models/TopoApp.js +1 -1
- package/lib/core/models/cache/CiCache.d.ts +1 -1
- package/lib/core/models/cache/CiCache.js +3 -3
- package/lib/core/utils/showGraphManageStatusUtil.js +3 -2
- package/lib/utils/ciRefAttributeTranslateUtil.d.ts +6 -2
- package/lib/utils/ciRefAttributeTranslateUtil.js +7 -8
- package/package.json +2 -2
@@ -24,6 +24,11 @@ function Layout(props) {
|
|
24
24
|
selection = _topo$store$useModelS.selection;
|
25
25
|
|
26
26
|
var setDisabled = function setDisabled(data) {
|
27
|
+
if (topoShowType !== 'layers' && selection.length === 1) {
|
28
|
+
//中心节点布局,选中一个节点非分层情况下,需要星型和树形布局亮起来
|
29
|
+
return data == 'rectangle' || data == 'hierarchical';
|
30
|
+
}
|
31
|
+
|
27
32
|
if (topoShowType == 'layers' && selection.length == 1 && !isGroup(selection[0])) {
|
28
33
|
return data != 'rectangle';
|
29
34
|
} else {
|
@@ -41,7 +46,11 @@ function Layout(props) {
|
|
41
46
|
|
42
47
|
|
43
48
|
if (topoShowType != 'layers' && selection.length == 1) {
|
44
|
-
|
49
|
+
if (layouType == 'hierarchical') {
|
50
|
+
topo.getHtTopo().layoutInContainer(layouType);
|
51
|
+
} else {
|
52
|
+
topo.getHtTopo().layoutTopoBySelectNode(layouType, selectionElements[0]);
|
53
|
+
}
|
45
54
|
} // eslint-disable-next-line eqeqeq
|
46
55
|
|
47
56
|
|
@@ -56,7 +65,7 @@ function Layout(props) {
|
|
56
65
|
topo.historyManager.beginTransaction();
|
57
66
|
setLayout(v); // eslint-disable-next-line eqeqeq
|
58
67
|
|
59
|
-
if (topoShowType != 'layers' && ((_selection$ = selection[0]) === null || _selection$ === void 0 ? void 0 : _selection$.className) != 'ht.Node' || topoShowType == 'partition' && selection.length == 1 || topoShowType == 'layers' && selection.length == 1) {
|
68
|
+
if (topoShowType != 'layers' && ((_selection$ = selection[0]) === null || _selection$ === void 0 ? void 0 : _selection$.className) != 'ht.Node' || topoShowType == 'partition' && selection.length == 1 || topoShowType == 'layers' && selection.length == 1 || topoShowType !== 'layers' && selection.length === 1) {
|
60
69
|
globalLayout(v);
|
61
70
|
}
|
62
71
|
|
@@ -135,6 +144,11 @@ function isLayoutEnabled(props) {
|
|
135
144
|
|
136
145
|
if (topoShowType !== 'layers' && !selection.length) {
|
137
146
|
return true;
|
147
|
+
} //中心节点布局,选中一个节点不是分层的情况下,按钮亮起
|
148
|
+
|
149
|
+
|
150
|
+
if (topoShowType !== 'layers' && selection.length === 1) {
|
151
|
+
return true;
|
138
152
|
}
|
139
153
|
|
140
154
|
return false;
|
@@ -2,8 +2,14 @@ import { useEffect } from "react";
|
|
2
2
|
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
|
+
/**
|
6
|
+
* 获取ci的最高告警级别
|
7
|
+
* @param {Array} alarmList
|
8
|
+
* @param {*} risks
|
9
|
+
* @returns
|
10
|
+
*/
|
5
11
|
|
6
|
-
function
|
12
|
+
function getCiAlarmLevelMap(alarmList, risks) {
|
7
13
|
var ciIdLevelMap = {};
|
8
14
|
[].concat(alarmList, risks.map(function (item) {
|
9
15
|
var _item$resourceId;
|
@@ -21,13 +27,53 @@ function getCiAlarmLevels(alarmList, risks) {
|
|
21
27
|
|
22
28
|
ciIdLevelMap[item.id] = level;
|
23
29
|
});
|
30
|
+
return ciIdLevelMap;
|
31
|
+
}
|
32
|
+
|
33
|
+
function getGraphCiElementAlarmLevels(resources, alarmList, risks) {
|
34
|
+
var ciIdLevelMap = getCiAlarmLevelMap(alarmList, risks);
|
24
35
|
return Object.keys(ciIdLevelMap).map(function (id) {
|
25
36
|
return {
|
26
37
|
id: id,
|
27
38
|
level: ciIdLevelMap[id]
|
28
39
|
};
|
40
|
+
}).filter(function (alarm) {
|
41
|
+
var resource = resources.find(function (item) {
|
42
|
+
return item.id === alarm.id;
|
43
|
+
});
|
44
|
+
return !!resource;
|
29
45
|
});
|
30
46
|
}
|
47
|
+
/**
|
48
|
+
* 获得关联拓扑节点告警级别
|
49
|
+
* @param {*} topo
|
50
|
+
* @param {*} relateTopoAlarm
|
51
|
+
* @returns
|
52
|
+
*/
|
53
|
+
|
54
|
+
|
55
|
+
function getRelateTopoNodeAlarmLevels(topo, relateTopoAlarm) {
|
56
|
+
return Object.keys(relateTopoAlarm).map(function (topoId) {
|
57
|
+
var level = relateTopoAlarm[topoId];
|
58
|
+
var relateTopoNode = topo.getDataModel().getDatas().toArray().find(function (node) {
|
59
|
+
return "" + node.a('bindTopo') === "" + topoId;
|
60
|
+
});
|
61
|
+
|
62
|
+
if (!level || !relateTopoNode) {
|
63
|
+
return null;
|
64
|
+
}
|
65
|
+
|
66
|
+
return {
|
67
|
+
elementId: relateTopoNode.getId(),
|
68
|
+
level: level
|
69
|
+
};
|
70
|
+
}).filter(function (item) {
|
71
|
+
return !!item;
|
72
|
+
});
|
73
|
+
} // 获取拓扑图元素最高告警级别。包含资源、链路、关联拓扑节点
|
74
|
+
|
75
|
+
|
76
|
+
function getGraphElementAlarmLevels(resources) {}
|
31
77
|
/**
|
32
78
|
* 告警显示到ht拓扑
|
33
79
|
*
|
@@ -38,7 +84,6 @@ function getCiAlarmLevels(alarmList, risks) {
|
|
38
84
|
export default function useGraphAlarmDisplay(options) {
|
39
85
|
var topo = options.topo,
|
40
86
|
alarmSwitch = options.alarmSwitch;
|
41
|
-
var store = topo.store;
|
42
87
|
var topoState = topo.store.useModelState('topoMod');
|
43
88
|
var graphLoaded = topoState.graphLoaded,
|
44
89
|
viewState = topoState.viewState;
|
@@ -52,17 +97,7 @@ export default function useGraphAlarmDisplay(options) {
|
|
52
97
|
var resources = topo.dataModel.useCis();
|
53
98
|
|
54
99
|
function getCisEventLevel() {
|
55
|
-
return
|
56
|
-
var resource = resources.find(function (item) {
|
57
|
-
return item.id === alarm.id;
|
58
|
-
});
|
59
|
-
|
60
|
-
if (!resource) {
|
61
|
-
return false;
|
62
|
-
}
|
63
|
-
|
64
|
-
return true;
|
65
|
-
});
|
100
|
+
return getGraphCiElementAlarmLevels(resources, alarmList || [], risks);
|
66
101
|
}
|
67
102
|
|
68
103
|
useEffect(function () {
|
@@ -72,8 +107,8 @@ export default function useGraphAlarmDisplay(options) {
|
|
72
107
|
resources: resources,
|
73
108
|
isEditMode: isEditMode,
|
74
109
|
graphLoaded: graphLoaded,
|
75
|
-
|
76
|
-
cisEventLevel:
|
110
|
+
alarmSwitch: alarmSwitch,
|
111
|
+
cisEventLevel: getCisEventLevel()
|
77
112
|
});
|
78
113
|
|
79
114
|
function showAlarm() {
|
@@ -87,41 +122,28 @@ export default function useGraphAlarmDisplay(options) {
|
|
87
122
|
return;
|
88
123
|
}
|
89
124
|
|
90
|
-
var finalAlarms = getCisEventLevel(); //
|
125
|
+
var finalAlarms = getCisEventLevel(); // 关联拓扑告警
|
126
|
+
|
127
|
+
var relateTopoAlarms = getRelateTopoNodeAlarmLevels(topo, relateTopoAlarm);
|
128
|
+
var elementsAlarmLevels = [].concat(finalAlarms, relateTopoAlarms); // 将告警级别放入ht元素,便于测试
|
91
129
|
|
92
130
|
getElements(topo.getDataModel()).filter(function (item) {
|
93
131
|
return !!item.getTag();
|
94
132
|
}).forEach(function (element) {
|
95
|
-
var
|
133
|
+
var _elementsAlarmLevels$;
|
96
134
|
|
97
|
-
var alarmLevel = (
|
98
|
-
return item.id === element.getTag();
|
99
|
-
})) === null ||
|
135
|
+
var alarmLevel = (_elementsAlarmLevels$ = elementsAlarmLevels.find(function (item) {
|
136
|
+
return item.id === element.getTag() || item.elementId === element.getId();
|
137
|
+
})) === null || _elementsAlarmLevels$ === void 0 ? void 0 : _elementsAlarmLevels$.level;
|
100
138
|
element.a('alarmLevel', alarmLevel);
|
101
139
|
});
|
102
|
-
|
103
|
-
|
104
|
-
|
105
|
-
return "" + node.a('bindTopo') === "" + topoId;
|
106
|
-
});
|
107
|
-
|
108
|
-
if (!level || !relateTopoNode) {
|
109
|
-
return null;
|
110
|
-
}
|
111
|
-
|
112
|
-
return {
|
113
|
-
elementId: relateTopoNode.getId(),
|
114
|
-
level: level
|
115
|
-
};
|
116
|
-
}).filter(function (item) {
|
117
|
-
return !!item;
|
118
|
-
});
|
119
|
-
rlog.debug('关联拓扑告警:推送ht', {
|
120
|
-
all: relateTopoAlarm,
|
140
|
+
rlog.debug('推送告警 => ht', {
|
141
|
+
alarms: elementsAlarmLevels,
|
142
|
+
relateTopoAlarmMap: relateTopoAlarm,
|
121
143
|
relateTopoAlarms: relateTopoAlarms
|
122
144
|
}); // 更新到ht拓扑
|
123
145
|
|
124
|
-
topo.view.loadAlarm(
|
146
|
+
topo.view.loadAlarm(elementsAlarmLevels);
|
125
147
|
}
|
126
148
|
|
127
149
|
return function () {
|
@@ -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.0.0-dev.
|
27
|
+
var version = typeof "12.0.0-dev.17" === 'string' ? "12.0.0-dev.17" : null;
|
28
28
|
console.info("\u62D3\u6251\u7248\u672C: " + version);
|
29
29
|
/**
|
30
30
|
* 拓扑显示和编辑
|
@@ -11,7 +11,7 @@ declare class CiCache {
|
|
11
11
|
* @param ids {string[]}
|
12
12
|
* @returns {Promise<Object>}
|
13
13
|
*/
|
14
|
-
load(ids: string[]): Promise<Object>;
|
14
|
+
load(ids: string[], refreshCiCache?: boolean): Promise<Object>;
|
15
15
|
getCi(id: string): Object;
|
16
16
|
}
|
17
17
|
declare const _default: CiCache;
|
@@ -23,14 +23,14 @@ var CiCache = /*#__PURE__*/function () {
|
|
23
23
|
_proto.load =
|
24
24
|
/*#__PURE__*/
|
25
25
|
function () {
|
26
|
-
var _load = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee(ids) {
|
26
|
+
var _load = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee(ids, refreshCiCache) {
|
27
27
|
var _this = this;
|
28
28
|
|
29
29
|
var unloadCiIds, cis, map;
|
30
30
|
return _regeneratorRuntime.wrap(function _callee$(_context) {
|
31
31
|
while (1) switch (_context.prev = _context.next) {
|
32
32
|
case 0:
|
33
|
-
unloadCiIds = ids.filter(function (id) {
|
33
|
+
unloadCiIds = refreshCiCache === true ? ids : ids.filter(function (id) {
|
34
34
|
return !_this.ciMap[id];
|
35
35
|
});
|
36
36
|
|
@@ -62,7 +62,7 @@ var CiCache = /*#__PURE__*/function () {
|
|
62
62
|
}, _callee, this);
|
63
63
|
}));
|
64
64
|
|
65
|
-
function load(_x) {
|
65
|
+
function load(_x, _x2) {
|
66
66
|
return _load.apply(this, arguments);
|
67
67
|
}
|
68
68
|
|
@@ -4,6 +4,7 @@ export function showManageStatus(options) {
|
|
4
4
|
var topo = options.topo,
|
5
5
|
resources = options.resources,
|
6
6
|
graphLoaded = options.graphLoaded,
|
7
|
+
alarmSwitch = options.alarmSwitch,
|
7
8
|
cisEventLevel = options.cisEventLevel;
|
8
9
|
|
9
10
|
var hasAlarm = function hasAlarm(id) {
|
@@ -20,9 +21,9 @@ export function showManageStatus(options) {
|
|
20
21
|
manageStatus = resource.manageStatus,
|
21
22
|
permission = resource.permission;
|
22
23
|
var isNotMonite = manageStatus === 0;
|
23
|
-
var readable = !!(permission !== null && permission !== void 0 && permission.readable); //
|
24
|
+
var readable = !!(permission !== null && permission !== void 0 && permission.readable); // 未监控 && 有查看权限 && (告警静默 || 没有告警),才显示未监控状态
|
24
25
|
|
25
|
-
var showUnMoniteStatus =
|
26
|
+
var showUnMoniteStatus = isNotMonite && readable && (alarmSwitch === false || !hasAlarm(id));
|
26
27
|
var element = topo.getDataModel().getDataByTag(id);
|
27
28
|
if (!element) return; // ht元素设置是否显示监控状态,是否展示,用于缩小色块时显示未监控颜色
|
28
29
|
|
@@ -1,12 +1,16 @@
|
|
1
|
+
interface Options {
|
2
|
+
refreshCiCache: boolean;
|
3
|
+
}
|
1
4
|
/**
|
2
5
|
* 翻译ci列表引用属性名称
|
3
6
|
* @param ciDatas
|
4
7
|
* @returns
|
5
8
|
*/
|
6
|
-
export declare function translateCisRefAttributeName(ciDatas: Array<any
|
9
|
+
export declare function translateCisRefAttributeName(ciDatas: Array<any>, options?: Options): Promise<Array<any>>;
|
7
10
|
/**
|
8
11
|
* 翻译ci引用属性名称
|
9
12
|
* @param ciData
|
10
13
|
* @returns
|
11
14
|
*/
|
12
|
-
export declare function translateCiRefAttributeName(ciData: any): Promise<any>;
|
15
|
+
export declare function translateCiRefAttributeName(ciData: any, options?: Options): Promise<any>;
|
16
|
+
export {};
|
@@ -77,14 +77,13 @@ function addRefCiNameToCiDatas(ciDatas, ciRefAttributesMap, refCiMap) {
|
|
77
77
|
});
|
78
78
|
});
|
79
79
|
}
|
80
|
+
|
80
81
|
/**
|
81
82
|
* 翻译ci列表引用属性名称
|
82
83
|
* @param ciDatas
|
83
84
|
* @returns
|
84
85
|
*/
|
85
|
-
|
86
|
-
|
87
|
-
export function translateCisRefAttributeName(_x) {
|
86
|
+
export function translateCisRefAttributeName(_x, _x2) {
|
88
87
|
return _translateCisRefAttributeName.apply(this, arguments);
|
89
88
|
}
|
90
89
|
/**
|
@@ -94,7 +93,7 @@ export function translateCisRefAttributeName(_x) {
|
|
94
93
|
*/
|
95
94
|
|
96
95
|
function _translateCisRefAttributeName() {
|
97
|
-
_translateCisRefAttributeName = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee(ciDatas) {
|
96
|
+
_translateCisRefAttributeName = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee(ciDatas, options) {
|
98
97
|
var ciTypeMap, ciRefAttributesMap, refIds, refCiMap;
|
99
98
|
return _regeneratorRuntime.wrap(function _callee$(_context) {
|
100
99
|
while (1) switch (_context.prev = _context.next) {
|
@@ -118,7 +117,7 @@ function _translateCisRefAttributeName() {
|
|
118
117
|
|
119
118
|
case 7:
|
120
119
|
_context.next = 9;
|
121
|
-
return ciCache.load(refIds);
|
120
|
+
return ciCache.load(refIds, options === null || options === void 0 ? void 0 : options.refreshCiCache);
|
122
121
|
|
123
122
|
case 9:
|
124
123
|
refCiMap = _context.sent;
|
@@ -133,17 +132,17 @@ function _translateCisRefAttributeName() {
|
|
133
132
|
return _translateCisRefAttributeName.apply(this, arguments);
|
134
133
|
}
|
135
134
|
|
136
|
-
export function translateCiRefAttributeName(
|
135
|
+
export function translateCiRefAttributeName(_x3, _x4) {
|
137
136
|
return _translateCiRefAttributeName.apply(this, arguments);
|
138
137
|
}
|
139
138
|
|
140
139
|
function _translateCiRefAttributeName() {
|
141
|
-
_translateCiRefAttributeName = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee2(ciData) {
|
140
|
+
_translateCiRefAttributeName = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee2(ciData, options) {
|
142
141
|
var result;
|
143
142
|
return _regeneratorRuntime.wrap(function _callee2$(_context2) {
|
144
143
|
while (1) switch (_context2.prev = _context2.next) {
|
145
144
|
case 0:
|
146
|
-
result = translateCisRefAttributeName([]);
|
145
|
+
result = translateCisRefAttributeName([ciData], options);
|
147
146
|
return _context2.abrupt("return", result[0]);
|
148
147
|
|
149
148
|
case 2:
|
@@ -40,6 +40,11 @@ function Layout(props) {
|
|
40
40
|
selection = _topo$store$useModelS.selection;
|
41
41
|
|
42
42
|
var setDisabled = function setDisabled(data) {
|
43
|
+
if (topoShowType !== 'layers' && selection.length === 1) {
|
44
|
+
//中心节点布局,选中一个节点非分层情况下,需要星型和树形布局亮起来
|
45
|
+
return data == 'rectangle' || data == 'hierarchical';
|
46
|
+
}
|
47
|
+
|
43
48
|
if (topoShowType == 'layers' && selection.length == 1 && !(0, _htElementDataUtil.isGroup)(selection[0])) {
|
44
49
|
return data != 'rectangle';
|
45
50
|
} else {
|
@@ -57,7 +62,11 @@ function Layout(props) {
|
|
57
62
|
|
58
63
|
|
59
64
|
if (topoShowType != 'layers' && selection.length == 1) {
|
60
|
-
|
65
|
+
if (layouType == 'hierarchical') {
|
66
|
+
topo.getHtTopo().layoutInContainer(layouType);
|
67
|
+
} else {
|
68
|
+
topo.getHtTopo().layoutTopoBySelectNode(layouType, selectionElements[0]);
|
69
|
+
}
|
61
70
|
} // eslint-disable-next-line eqeqeq
|
62
71
|
|
63
72
|
|
@@ -72,7 +81,7 @@ function Layout(props) {
|
|
72
81
|
topo.historyManager.beginTransaction();
|
73
82
|
setLayout(v); // eslint-disable-next-line eqeqeq
|
74
83
|
|
75
|
-
if (topoShowType != 'layers' && ((_selection$ = selection[0]) === null || _selection$ === void 0 ? void 0 : _selection$.className) != 'ht.Node' || topoShowType == 'partition' && selection.length == 1 || topoShowType == 'layers' && selection.length == 1) {
|
84
|
+
if (topoShowType != 'layers' && ((_selection$ = selection[0]) === null || _selection$ === void 0 ? void 0 : _selection$.className) != 'ht.Node' || topoShowType == 'partition' && selection.length == 1 || topoShowType == 'layers' && selection.length == 1 || topoShowType !== 'layers' && selection.length === 1) {
|
76
85
|
globalLayout(v);
|
77
86
|
}
|
78
87
|
|
@@ -150,6 +159,11 @@ function isLayoutEnabled(props) {
|
|
150
159
|
|
151
160
|
if (topoShowType !== 'layers' && !selection.length) {
|
152
161
|
return true;
|
162
|
+
} //中心节点布局,选中一个节点不是分层的情况下,按钮亮起
|
163
|
+
|
164
|
+
|
165
|
+
if (topoShowType !== 'layers' && selection.length === 1) {
|
166
|
+
return true;
|
153
167
|
}
|
154
168
|
|
155
169
|
return false;
|
@@ -13,7 +13,13 @@ var _htElementUtils = require("../../utils/htElementUtils");
|
|
13
13
|
|
14
14
|
var _showGraphManageStatusUtil = require("../utils/showGraphManageStatusUtil");
|
15
15
|
|
16
|
-
|
16
|
+
/**
|
17
|
+
* 获取ci的最高告警级别
|
18
|
+
* @param {Array} alarmList
|
19
|
+
* @param {*} risks
|
20
|
+
* @returns
|
21
|
+
*/
|
22
|
+
function getCiAlarmLevelMap(alarmList, risks) {
|
17
23
|
var ciIdLevelMap = {};
|
18
24
|
[].concat(alarmList, risks.map(function (item) {
|
19
25
|
var _item$resourceId;
|
@@ -31,13 +37,53 @@ function getCiAlarmLevels(alarmList, risks) {
|
|
31
37
|
|
32
38
|
ciIdLevelMap[item.id] = level;
|
33
39
|
});
|
40
|
+
return ciIdLevelMap;
|
41
|
+
}
|
42
|
+
|
43
|
+
function getGraphCiElementAlarmLevels(resources, alarmList, risks) {
|
44
|
+
var ciIdLevelMap = getCiAlarmLevelMap(alarmList, risks);
|
34
45
|
return Object.keys(ciIdLevelMap).map(function (id) {
|
35
46
|
return {
|
36
47
|
id: id,
|
37
48
|
level: ciIdLevelMap[id]
|
38
49
|
};
|
50
|
+
}).filter(function (alarm) {
|
51
|
+
var resource = resources.find(function (item) {
|
52
|
+
return item.id === alarm.id;
|
53
|
+
});
|
54
|
+
return !!resource;
|
39
55
|
});
|
40
56
|
}
|
57
|
+
/**
|
58
|
+
* 获得关联拓扑节点告警级别
|
59
|
+
* @param {*} topo
|
60
|
+
* @param {*} relateTopoAlarm
|
61
|
+
* @returns
|
62
|
+
*/
|
63
|
+
|
64
|
+
|
65
|
+
function getRelateTopoNodeAlarmLevels(topo, relateTopoAlarm) {
|
66
|
+
return Object.keys(relateTopoAlarm).map(function (topoId) {
|
67
|
+
var level = relateTopoAlarm[topoId];
|
68
|
+
var relateTopoNode = topo.getDataModel().getDatas().toArray().find(function (node) {
|
69
|
+
return "" + node.a('bindTopo') === "" + topoId;
|
70
|
+
});
|
71
|
+
|
72
|
+
if (!level || !relateTopoNode) {
|
73
|
+
return null;
|
74
|
+
}
|
75
|
+
|
76
|
+
return {
|
77
|
+
elementId: relateTopoNode.getId(),
|
78
|
+
level: level
|
79
|
+
};
|
80
|
+
}).filter(function (item) {
|
81
|
+
return !!item;
|
82
|
+
});
|
83
|
+
} // 获取拓扑图元素最高告警级别。包含资源、链路、关联拓扑节点
|
84
|
+
|
85
|
+
|
86
|
+
function getGraphElementAlarmLevels(resources) {}
|
41
87
|
/**
|
42
88
|
* 告警显示到ht拓扑
|
43
89
|
*
|
@@ -48,7 +94,6 @@ function getCiAlarmLevels(alarmList, risks) {
|
|
48
94
|
function useGraphAlarmDisplay(options) {
|
49
95
|
var topo = options.topo,
|
50
96
|
alarmSwitch = options.alarmSwitch;
|
51
|
-
var store = topo.store;
|
52
97
|
var topoState = topo.store.useModelState('topoMod');
|
53
98
|
var graphLoaded = topoState.graphLoaded,
|
54
99
|
viewState = topoState.viewState;
|
@@ -62,17 +107,7 @@ function useGraphAlarmDisplay(options) {
|
|
62
107
|
var resources = topo.dataModel.useCis();
|
63
108
|
|
64
109
|
function getCisEventLevel() {
|
65
|
-
return
|
66
|
-
var resource = resources.find(function (item) {
|
67
|
-
return item.id === alarm.id;
|
68
|
-
});
|
69
|
-
|
70
|
-
if (!resource) {
|
71
|
-
return false;
|
72
|
-
}
|
73
|
-
|
74
|
-
return true;
|
75
|
-
});
|
110
|
+
return getGraphCiElementAlarmLevels(resources, alarmList || [], risks);
|
76
111
|
}
|
77
112
|
|
78
113
|
(0, _react.useEffect)(function () {
|
@@ -82,8 +117,8 @@ function useGraphAlarmDisplay(options) {
|
|
82
117
|
resources: resources,
|
83
118
|
isEditMode: isEditMode,
|
84
119
|
graphLoaded: graphLoaded,
|
85
|
-
|
86
|
-
cisEventLevel:
|
120
|
+
alarmSwitch: alarmSwitch,
|
121
|
+
cisEventLevel: getCisEventLevel()
|
87
122
|
});
|
88
123
|
|
89
124
|
function showAlarm() {
|
@@ -97,43 +132,30 @@ function useGraphAlarmDisplay(options) {
|
|
97
132
|
return;
|
98
133
|
}
|
99
134
|
|
100
|
-
var finalAlarms = getCisEventLevel(); //
|
135
|
+
var finalAlarms = getCisEventLevel(); // 关联拓扑告警
|
136
|
+
|
137
|
+
var relateTopoAlarms = getRelateTopoNodeAlarmLevels(topo, relateTopoAlarm);
|
138
|
+
var elementsAlarmLevels = [].concat(finalAlarms, relateTopoAlarms); // 将告警级别放入ht元素,便于测试
|
101
139
|
|
102
140
|
(0, _htElementUtils.getElements)(topo.getDataModel()).filter(function (item) {
|
103
141
|
return !!item.getTag();
|
104
142
|
}).forEach(function (element) {
|
105
|
-
var
|
143
|
+
var _elementsAlarmLevels$;
|
106
144
|
|
107
|
-
var alarmLevel = (
|
108
|
-
return item.id === element.getTag();
|
109
|
-
})) === null ||
|
145
|
+
var alarmLevel = (_elementsAlarmLevels$ = elementsAlarmLevels.find(function (item) {
|
146
|
+
return item.id === element.getTag() || item.elementId === element.getId();
|
147
|
+
})) === null || _elementsAlarmLevels$ === void 0 ? void 0 : _elementsAlarmLevels$.level;
|
110
148
|
element.a('alarmLevel', alarmLevel);
|
111
149
|
});
|
112
|
-
var relateTopoAlarms = Object.keys(relateTopoAlarm).map(function (topoId) {
|
113
|
-
var level = relateTopoAlarm[topoId];
|
114
|
-
var relateTopoNode = topo.getDataModel().getDatas().toArray().find(function (node) {
|
115
|
-
return "" + node.a('bindTopo') === "" + topoId;
|
116
|
-
});
|
117
|
-
|
118
|
-
if (!level || !relateTopoNode) {
|
119
|
-
return null;
|
120
|
-
}
|
121
|
-
|
122
|
-
return {
|
123
|
-
elementId: relateTopoNode.getId(),
|
124
|
-
level: level
|
125
|
-
};
|
126
|
-
}).filter(function (item) {
|
127
|
-
return !!item;
|
128
|
-
});
|
129
150
|
|
130
|
-
_rlog["default"].debug('
|
131
|
-
|
151
|
+
_rlog["default"].debug('推送告警 => ht', {
|
152
|
+
alarms: elementsAlarmLevels,
|
153
|
+
relateTopoAlarmMap: relateTopoAlarm,
|
132
154
|
relateTopoAlarms: relateTopoAlarms
|
133
155
|
}); // 更新到ht拓扑
|
134
156
|
|
135
157
|
|
136
|
-
topo.view.loadAlarm(
|
158
|
+
topo.view.loadAlarm(elementsAlarmLevels);
|
137
159
|
}
|
138
160
|
|
139
161
|
return function () {
|
@@ -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.17" === 'string' ? "12.0.0-dev.17" : null;
|
58
58
|
console.info("\u62D3\u6251\u7248\u672C: " + version);
|
59
59
|
/**
|
60
60
|
* 拓扑显示和编辑
|
@@ -11,7 +11,7 @@ declare class CiCache {
|
|
11
11
|
* @param ids {string[]}
|
12
12
|
* @returns {Promise<Object>}
|
13
13
|
*/
|
14
|
-
load(ids: string[]): Promise<Object>;
|
14
|
+
load(ids: string[], refreshCiCache?: boolean): Promise<Object>;
|
15
15
|
getCi(id: string): Object;
|
16
16
|
}
|
17
17
|
declare const _default: CiCache;
|
@@ -32,14 +32,14 @@ var CiCache = /*#__PURE__*/function () {
|
|
32
32
|
_proto.load =
|
33
33
|
/*#__PURE__*/
|
34
34
|
function () {
|
35
|
-
var _load = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee(ids) {
|
35
|
+
var _load = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee(ids, refreshCiCache) {
|
36
36
|
var _this = this;
|
37
37
|
|
38
38
|
var unloadCiIds, cis, map;
|
39
39
|
return _regenerator["default"].wrap(function _callee$(_context) {
|
40
40
|
while (1) switch (_context.prev = _context.next) {
|
41
41
|
case 0:
|
42
|
-
unloadCiIds = ids.filter(function (id) {
|
42
|
+
unloadCiIds = refreshCiCache === true ? ids : ids.filter(function (id) {
|
43
43
|
return !_this.ciMap[id];
|
44
44
|
});
|
45
45
|
|
@@ -71,7 +71,7 @@ var CiCache = /*#__PURE__*/function () {
|
|
71
71
|
}, _callee, this);
|
72
72
|
}));
|
73
73
|
|
74
|
-
function load(_x) {
|
74
|
+
function load(_x, _x2) {
|
75
75
|
return _load.apply(this, arguments);
|
76
76
|
}
|
77
77
|
|
@@ -14,6 +14,7 @@ function showManageStatus(options) {
|
|
14
14
|
var topo = options.topo,
|
15
15
|
resources = options.resources,
|
16
16
|
graphLoaded = options.graphLoaded,
|
17
|
+
alarmSwitch = options.alarmSwitch,
|
17
18
|
cisEventLevel = options.cisEventLevel;
|
18
19
|
|
19
20
|
var hasAlarm = function hasAlarm(id) {
|
@@ -30,9 +31,9 @@ function showManageStatus(options) {
|
|
30
31
|
manageStatus = resource.manageStatus,
|
31
32
|
permission = resource.permission;
|
32
33
|
var isNotMonite = manageStatus === 0;
|
33
|
-
var readable = !!(permission !== null && permission !== void 0 && permission.readable); //
|
34
|
+
var readable = !!(permission !== null && permission !== void 0 && permission.readable); // 未监控 && 有查看权限 && (告警静默 || 没有告警),才显示未监控状态
|
34
35
|
|
35
|
-
var showUnMoniteStatus =
|
36
|
+
var showUnMoniteStatus = isNotMonite && readable && (alarmSwitch === false || !hasAlarm(id));
|
36
37
|
var element = topo.getDataModel().getDataByTag(id);
|
37
38
|
if (!element) return; // ht元素设置是否显示监控状态,是否展示,用于缩小色块时显示未监控颜色
|
38
39
|
|
@@ -1,12 +1,16 @@
|
|
1
|
+
interface Options {
|
2
|
+
refreshCiCache: boolean;
|
3
|
+
}
|
1
4
|
/**
|
2
5
|
* 翻译ci列表引用属性名称
|
3
6
|
* @param ciDatas
|
4
7
|
* @returns
|
5
8
|
*/
|
6
|
-
export declare function translateCisRefAttributeName(ciDatas: Array<any
|
9
|
+
export declare function translateCisRefAttributeName(ciDatas: Array<any>, options?: Options): Promise<Array<any>>;
|
7
10
|
/**
|
8
11
|
* 翻译ci引用属性名称
|
9
12
|
* @param ciData
|
10
13
|
* @returns
|
11
14
|
*/
|
12
|
-
export declare function translateCiRefAttributeName(ciData: any): Promise<any>;
|
15
|
+
export declare function translateCiRefAttributeName(ciData: any, options?: Options): Promise<any>;
|
16
|
+
export {};
|