@riil-frontend/component-topology 12.0.0-dev.16 → 12.0.0-dev.18

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.
@@ -97,7 +97,7 @@ function SubListItem(props) {
97
97
  var subNode = topo.getData().nodes.find(function (node) {
98
98
  return node.ciId === alarmInfo.mainCiId;
99
99
  });
100
- var plarm = alarmInfo.cmpCode ? "\u3010" + subNode.sourceName + "\u3011" : "【本级平台】";
100
+ var plarm = alarmInfo.cmpCode ? "\u3010" + (subNode === null || subNode === void 0 ? void 0 : subNode.sourceName) + "\u3011" : "【本级平台】";
101
101
  return /*#__PURE__*/React.createElement(_List.Item, {
102
102
  className: styles.AlarmListItem,
103
103
  media: /*#__PURE__*/React.createElement(_Icon, {
@@ -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
- topo.getHtTopo().layoutInContainer(layouType);
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 getCiAlarmLevels(alarmList, risks) {
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 getCiAlarmLevels(alarmList || [], risks).filter(function (alarm) {
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: alarmSwitch === false ? [] : getCisEventLevel()
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(); // 将告警级别放入ht元素,便于测试
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 _finalAlarms$find;
133
+ var _elementsAlarmLevels$;
96
134
 
97
- var alarmLevel = (_finalAlarms$find = finalAlarms.find(function (item) {
98
- return item.id === element.getTag();
99
- })) === null || _finalAlarms$find === void 0 ? void 0 : _finalAlarms$find.level;
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
- var relateTopoAlarms = Object.keys(relateTopoAlarm).map(function (topoId) {
103
- var level = relateTopoAlarm[topoId];
104
- var relateTopoNode = topo.getDataModel().getDatas().toArray().find(function (node) {
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([].concat(finalAlarms, relateTopoAlarms));
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.16" === 'string' ? "12.0.0-dev.16" : null;
27
+ var version = typeof "12.0.0-dev.18" === 'string' ? "12.0.0-dev.18" : 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 = !hasAlarm(id) && isNotMonite && readable;
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>): Promise<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(_x2) {
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:
@@ -115,7 +115,7 @@ function SubListItem(props) {
115
115
  var subNode = topo.getData().nodes.find(function (node) {
116
116
  return node.ciId === alarmInfo.mainCiId;
117
117
  });
118
- var plarm = alarmInfo.cmpCode ? "\u3010" + subNode.sourceName + "\u3011" : "【本级平台】";
118
+ var plarm = alarmInfo.cmpCode ? "\u3010" + (subNode === null || subNode === void 0 ? void 0 : subNode.sourceName) + "\u3011" : "【本级平台】";
119
119
  return /*#__PURE__*/_react["default"].createElement(_list["default"].Item, {
120
120
  className: _indexModule["default"].AlarmListItem,
121
121
  media: /*#__PURE__*/_react["default"].createElement(_icon["default"], {
@@ -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
- topo.getHtTopo().layoutInContainer(layouType);
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
- function getCiAlarmLevels(alarmList, risks) {
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 getCiAlarmLevels(alarmList || [], risks).filter(function (alarm) {
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: alarmSwitch === false ? [] : getCisEventLevel()
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(); // 将告警级别放入ht元素,便于测试
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 _finalAlarms$find;
143
+ var _elementsAlarmLevels$;
106
144
 
107
- var alarmLevel = (_finalAlarms$find = finalAlarms.find(function (item) {
108
- return item.id === element.getTag();
109
- })) === null || _finalAlarms$find === void 0 ? void 0 : _finalAlarms$find.level;
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('关联拓扑告警:推送ht', {
131
- all: relateTopoAlarm,
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([].concat(finalAlarms, relateTopoAlarms));
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.16" === 'string' ? "12.0.0-dev.16" : null;
57
+ var version = typeof "12.0.0-dev.18" === 'string' ? "12.0.0-dev.18" : 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 = !hasAlarm(id) && isNotMonite && readable;
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>): Promise<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 {};