@riil-frontend/component-topology 8.0.0-a.8 → 8.0.1

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.
Files changed (24) hide show
  1. package/build/index.js +11 -11
  2. package/es/core/hooks/usePolling.js +3 -3
  3. package/es/core/models/TopoApp.js +1 -1
  4. package/es/core/models/utils/linkUtils.js +31 -63
  5. package/es/core/services/overview.js +33 -9
  6. package/es/core/store/models/topoAlarm.js +9 -1
  7. package/es/core/viewer/components/plugins/ResourceDetail/components/ResourceOverview/ResourceOverview.js +124 -251
  8. package/es/core/viewer/components/plugins/ResourceDetail/components/ResourceOverview/ResourceOverviewMetric.js +4 -2
  9. package/es/core/viewer/components/plugins/ResourceDetail/components/ResourceOverview/components/LinkTopo/hooks/useMetricPolling.js +2 -2
  10. package/es/core/viewer/components/plugins/ResourceDetail/components/ResourceOverview/hooks/useAlarmAndRiskData.js +171 -0
  11. package/es/core/viewer/components/plugins/ResourceDetail/components/ResourceOverview/hooks/useMetricModels.js +3 -3
  12. package/es/networkTopo/services/link.js +11 -12
  13. package/lib/core/hooks/usePolling.js +3 -3
  14. package/lib/core/models/TopoApp.js +1 -1
  15. package/lib/core/models/utils/linkUtils.js +32 -67
  16. package/lib/core/services/overview.js +32 -8
  17. package/lib/core/store/models/topoAlarm.js +10 -4
  18. package/lib/core/viewer/components/plugins/ResourceDetail/components/ResourceOverview/ResourceOverview.js +125 -251
  19. package/lib/core/viewer/components/plugins/ResourceDetail/components/ResourceOverview/ResourceOverviewMetric.js +4 -2
  20. package/lib/core/viewer/components/plugins/ResourceDetail/components/ResourceOverview/components/LinkTopo/hooks/useMetricPolling.js +2 -2
  21. package/lib/core/viewer/components/plugins/ResourceDetail/components/ResourceOverview/hooks/useAlarmAndRiskData.js +184 -0
  22. package/lib/core/viewer/components/plugins/ResourceDetail/components/ResourceOverview/hooks/useMetricModels.js +3 -3
  23. package/lib/networkTopo/services/link.js +11 -12
  24. package/package.json +2 -2
@@ -78,7 +78,8 @@ function ResourceOverviewMetric(props) {
78
78
  var topo = props.topo,
79
79
  type = props.type,
80
80
  data = props.data,
81
- loading = props.loading;
81
+ loading = props.loading,
82
+ formatMetricLatestValue = props.formatMetricLatestValue;
82
83
 
83
84
  function formatValue(itemData) {
84
85
  var _list;
@@ -87,7 +88,8 @@ function ResourceOverviewMetric(props) {
87
88
  metricItem = itemData.metricItem,
88
89
  list = itemData.list;
89
90
  var format = (0, _utils.metricValueFormat)({
90
- value: (_list = list[list.length - 1]) === null || _list === void 0 ? void 0 : _list.metricValue,
91
+ // 支持业务拓扑历史时间点指标值处理
92
+ value: formatMetricLatestValue ? formatMetricLatestValue(list) : (_list = list[list.length - 1]) === null || _list === void 0 ? void 0 : _list.metricValue,
91
93
  dataType: metricItem.dataType,
92
94
  dict: topo.dictCache.getDictObject(),
93
95
  unit: metricItem.unit,
@@ -37,7 +37,7 @@ function useMetricPolling(_ref) {
37
37
 
38
38
 
39
39
  var queryLinkMetricsRequest = (0, _ahooks.useRequest)(_services.queryLinkLatestMetrics, {
40
- pollingInterval: 1000 * 15,
40
+ pollingInterval: 60 * 1000,
41
41
  pollingWhenHidden: false,
42
42
  debounceInterval: 200,
43
43
  manual: true,
@@ -48,7 +48,7 @@ function useMetricPolling(_ref) {
48
48
  }
49
49
  });
50
50
  var queryInterfaceMetricsRequest = (0, _ahooks.useRequest)(_services.queryLinkInterfacesLatestMetrics, {
51
- pollingInterval: 1000 * 15,
51
+ pollingInterval: 60 * 1000,
52
52
  pollingWhenHidden: false,
53
53
  debounceInterval: 200,
54
54
  manual: true,
@@ -0,0 +1,184 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+
5
+ exports.__esModule = true;
6
+ exports["default"] = void 0;
7
+
8
+ var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
9
+
10
+ var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
11
+
12
+ var _ahooks = require("ahooks");
13
+
14
+ var _react = require("react");
15
+
16
+ var _alarm = _interopRequireDefault(require("../../../../../../../services/alarm"));
17
+
18
+ var _overview = _interopRequireDefault(require("../../../../../../../services/overview"));
19
+
20
+ /**
21
+ * 概览指标定义
22
+ * @param {*} props
23
+ */
24
+ var useAlarmAndRiskData = function useAlarmAndRiskData(props) {
25
+ var id = props.id,
26
+ isAppTopo = props.isAppTopo,
27
+ resourceOverviewProps = props.resourceOverviewProps,
28
+ childrenIds = props.childrenIds,
29
+ userId = props.userId;
30
+
31
+ var _useState = (0, _react.useState)([]),
32
+ alarmRiskList = _useState[0],
33
+ setAlarmRiskList = _useState[1]; // 获取告警/风险信息
34
+
35
+
36
+ function getAlarmRiskData(_x) {
37
+ return _getAlarmRiskData.apply(this, arguments);
38
+ } // 轮询hooks
39
+
40
+
41
+ function _getAlarmRiskData() {
42
+ _getAlarmRiskData = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee(id) {
43
+ var _alarmList, _yield$resourceOvervi, alarmList, _yield$alarmService$g, _alarmList2, AllComponentsByCiId, _yield$service$getRis, riskList;
44
+
45
+ return _regenerator["default"].wrap(function _callee$(_context) {
46
+ while (1) {
47
+ switch (_context.prev = _context.next) {
48
+ case 0:
49
+ if (!isAppTopo) {
50
+ _context.next = 9;
51
+ break;
52
+ }
53
+
54
+ _context.next = 3;
55
+ return resourceOverviewProps === null || resourceOverviewProps === void 0 ? void 0 : resourceOverviewProps.getData({
56
+ id: id // metrics: topModelMetrics,
57
+
58
+ });
59
+
60
+ case 3:
61
+ _yield$resourceOvervi = _context.sent;
62
+ alarmList = _yield$resourceOvervi.alarms;
63
+ alarmList = ((_alarmList = alarmList) === null || _alarmList === void 0 ? void 0 : _alarmList.map(function (item) {
64
+ return {
65
+ type: 'alarm',
66
+ icon: 'gaojing-3',
67
+ className: "alarm-color-icon-lv" + item.alertLevel,
68
+ title: "[" + item.alertObject + "] " + item.alertTitle,
69
+ link: "/default/pagecenter/alertDetail/view/" + item.alertId + "?alertId=" + item.alertId + "&resId=" + item.ciId + "&title=" + item.alertObject + "&ruleId=" + item.ruleId,
70
+ time: item.createTime,
71
+ status: item.status,
72
+ params: [{
73
+ alertId: item.alertId,
74
+ status: 'dealing',
75
+ userId: userId,
76
+ isBaseAlert: false
77
+ }]
78
+ };
79
+ })) || [];
80
+ setAlarmRiskList(alarmList);
81
+ _context.next = 24;
82
+ break;
83
+
84
+ case 9:
85
+ _context.next = 11;
86
+ return _alarm["default"].getAlarmByIds([id].concat(childrenIds), {
87
+ alertStatusList: ['toDeal', 'woDealing', 'dealing'],
88
+ // toDeal: 待处理, dealing:处理中
89
+ pageNum: 1,
90
+ pageSize: 10000,
91
+ sortField: 'alertLevel',
92
+ sortOrder: 'asc'
93
+ });
94
+
95
+ case 11:
96
+ _yield$alarmService$g = _context.sent;
97
+ _alarmList2 = _yield$alarmService$g.datas;
98
+ // 2022-07-16 后端不支持多列排序,暂通过前端实现,按创建时间倒序
99
+ _alarmList2 = _alarmList2.sort(function (a, b) {
100
+ return b.createTime - a.createTime;
101
+ });
102
+ _alarmList2 = _alarmList2.map(function (item) {
103
+ return {
104
+ type: 'alarm',
105
+ icon: 'gaojing-3',
106
+ className: "alarm-color-icon-lv" + item.alertLevel,
107
+ title: "" + item.alertObject + item.alertTitle,
108
+ link: "/default/pagecenter/alertDetail/view/" + item.alertId + "?alertId=" + item.alertId + "&resId=" + item.ciId + "&title=" + item.alertObject + "&ruleId=" + item.ruleId,
109
+ time: item.createTime,
110
+ status: item.status,
111
+ params: [{
112
+ alertId: item.alertId,
113
+ status: 'dealing',
114
+ userId: userId,
115
+ isBaseAlert: false
116
+ }]
117
+ };
118
+ }); // fix NEWITOM-33635【南昌大学】网络拓扑上双击设备拉开的抽屉中无法看到风险
119
+
120
+ _context.next = 17;
121
+ return _overview["default"].queryAllComponentsByCiId(id);
122
+
123
+ case 17:
124
+ AllComponentsByCiId = _context.sent;
125
+ _context.next = 20;
126
+ return _overview["default"].getRiskByIds({
127
+ ciIdList: [id].concat(childrenIds, AllComponentsByCiId.map(function (item) {
128
+ return item.id;
129
+ })),
130
+ statusList: ['toDeal', 'dealing'],
131
+ current: 1,
132
+ pageSize: 10000
133
+ });
134
+
135
+ case 20:
136
+ _yield$service$getRis = _context.sent;
137
+ riskList = _yield$service$getRis.content;
138
+ riskList = riskList.map(function (item) {
139
+ return {
140
+ type: 'risk',
141
+ icon: 'Overall_risk_full',
142
+ className: 'risk-icon',
143
+ title: "" + item.ciName + item.itemName,
144
+ link: "/default/inspectionTaskList/inspectionReport?title=" + item.ciName + "&reportId=" + item.executeId + "&reportTime=" + item.executeTime + "&reportType=" + item.viewType + "&reportName=" + item.reportName,
145
+ time: item.firstFoundTime
146
+ };
147
+ }); // console.log('告警和风险', alarmList, riskList);
148
+
149
+ setAlarmRiskList([].concat(_alarmList2, riskList));
150
+
151
+ case 24:
152
+ case "end":
153
+ return _context.stop();
154
+ }
155
+ }
156
+ }, _callee);
157
+ }));
158
+ return _getAlarmRiskData.apply(this, arguments);
159
+ }
160
+
161
+ var request = (0, _ahooks.useRequest)(getAlarmRiskData, {
162
+ pollingInterval: 1000 * 15,
163
+ pollingWhenHidden: false,
164
+ // debounceInterval: 200,
165
+ manual: true,
166
+ onSuccess: function onSuccess() {}
167
+ });
168
+ (0, _react.useEffect)(function () {
169
+ setAlarmRiskList([]);
170
+ request.run(id);
171
+ return function () {
172
+ request.cancel();
173
+ };
174
+ }, [id]);
175
+ return {
176
+ alarmRiskList: alarmRiskList,
177
+ refreshAlarmData: function refreshAlarmData() {
178
+ request.run();
179
+ }
180
+ };
181
+ };
182
+
183
+ var _default = useAlarmAndRiskData;
184
+ exports["default"] = _default;
@@ -103,9 +103,9 @@ var useMetricModels = function useMetricModels(props) {
103
103
  }
104
104
 
105
105
  var request = (0, _ahooks.useRequest)(fetchData, {
106
- pollingInterval: 1000 * 5,
107
- // pollingWhenHidden: false,
108
- // debounceInterval: 1000,
106
+ pollingInterval: 1000 * 60,
107
+ pollingWhenHidden: false,
108
+ // debounceInterval: 200,
109
109
  manual: true,
110
110
  onSuccess: function onSuccess(newMetricModels) {
111
111
  var a = metricModels.map(function (item) {
@@ -165,7 +165,7 @@ var _default = {
165
165
  */
166
166
  queryAssociatedlinks: function queryAssociatedlinks(ids, type) {
167
167
  return (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee5() {
168
- var stag, ttag, condition, parm, jsonParm, result;
168
+ var stag, ttag, condition, parm, result;
169
169
  return _regenerator["default"].wrap(function _callee5$(_context5) {
170
170
  while (1) {
171
171
  switch (_context5.prev = _context5.next) {
@@ -184,29 +184,28 @@ var _default = {
184
184
  sort: "name asc",
185
185
  currentPage: 1,
186
186
  pageSize: 99
187
- };
188
- jsonParm = JSON.stringify(parm); // console.log("queryAssociatedlinks", ids, parm, jsonParm);
187
+ }; // console.log("queryAssociatedlinks", ids, parm, jsonParm);
189
188
 
190
- _context5.prev = 6;
191
- _context5.next = 9;
192
- return _componentTopologyUtils.request.post("/mdc/v1/api/cmdb/commonQueryCiData", jsonParm);
189
+ _context5.prev = 5;
190
+ _context5.next = 8;
191
+ return _componentTopologyUtils.request.post("/mdc/v1/api/cmdb/commonQueryCiData", parm);
193
192
 
194
- case 9:
193
+ case 8:
195
194
  result = _context5.sent;
196
195
  return _context5.abrupt("return", result);
197
196
 
198
- case 13:
199
- _context5.prev = 13;
200
- _context5.t0 = _context5["catch"](6);
197
+ case 12:
198
+ _context5.prev = 12;
199
+ _context5.t0 = _context5["catch"](5);
201
200
 
202
201
  _rlog["default"].error("查询可关联链路", _context5.t0);
203
202
 
204
- case 16:
203
+ case 15:
205
204
  case "end":
206
205
  return _context5.stop();
207
206
  }
208
207
  }
209
- }, _callee5, null, [[6, 13]]);
208
+ }, _callee5, null, [[5, 12]]);
210
209
  }))();
211
210
  }
212
211
  };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@riil-frontend/component-topology",
3
- "version": "8.0.0-a.8",
3
+ "version": "8.0.1",
4
4
  "description": "拓扑",
5
5
  "scripts": {
6
6
  "start": "build-scripts start",
@@ -116,6 +116,6 @@
116
116
  "access": "public"
117
117
  },
118
118
  "license": "MIT",
119
- "homepage": "https://unpkg.com/@riil-frontend/component-topology@8.0.0-a.8/build/index.html",
119
+ "homepage": "https://unpkg.com/@riil-frontend/component-topology@8.0.1/build/index.html",
120
120
  "gitHead": "2da19ffccbb7ca60a8acf396e39f542c68bb33f5"
121
121
  }