@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
@@ -21,7 +21,7 @@ export default function useMetricPolling(_ref) {
21
21
 
22
22
 
23
23
  var queryLinkMetricsRequest = useRequest(queryLinkLatestMetrics, {
24
- pollingInterval: 1000 * 15,
24
+ pollingInterval: 60 * 1000,
25
25
  pollingWhenHidden: false,
26
26
  debounceInterval: 200,
27
27
  manual: true,
@@ -31,7 +31,7 @@ export default function useMetricPolling(_ref) {
31
31
  }
32
32
  });
33
33
  var queryInterfaceMetricsRequest = useRequest(queryLinkInterfacesLatestMetrics, {
34
- pollingInterval: 1000 * 15,
34
+ pollingInterval: 60 * 1000,
35
35
  pollingWhenHidden: false,
36
36
  debounceInterval: 200,
37
37
  manual: true,
@@ -0,0 +1,171 @@
1
+ import _asyncToGenerator from "@babel/runtime/helpers/asyncToGenerator";
2
+ import _regeneratorRuntime from "@babel/runtime/regenerator";
3
+ import { useRequest } from 'ahooks';
4
+ import { useEffect, useState } from 'react';
5
+ import alarmService from "../../../../../../../services/alarm";
6
+ import service from "../../../../../../../services/overview";
7
+ /**
8
+ * 概览指标定义
9
+ * @param {*} props
10
+ */
11
+
12
+ var useAlarmAndRiskData = function useAlarmAndRiskData(props) {
13
+ var id = props.id,
14
+ isAppTopo = props.isAppTopo,
15
+ resourceOverviewProps = props.resourceOverviewProps,
16
+ childrenIds = props.childrenIds,
17
+ userId = props.userId;
18
+
19
+ var _useState = useState([]),
20
+ alarmRiskList = _useState[0],
21
+ setAlarmRiskList = _useState[1]; // 获取告警/风险信息
22
+
23
+
24
+ function getAlarmRiskData(_x) {
25
+ return _getAlarmRiskData.apply(this, arguments);
26
+ } // 轮询hooks
27
+
28
+
29
+ function _getAlarmRiskData() {
30
+ _getAlarmRiskData = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee(id) {
31
+ var _alarmList, _yield$resourceOvervi, alarmList, _yield$alarmService$g, _alarmList2, AllComponentsByCiId, _yield$service$getRis, riskList;
32
+
33
+ return _regeneratorRuntime.wrap(function _callee$(_context) {
34
+ while (1) {
35
+ switch (_context.prev = _context.next) {
36
+ case 0:
37
+ if (!isAppTopo) {
38
+ _context.next = 9;
39
+ break;
40
+ }
41
+
42
+ _context.next = 3;
43
+ return resourceOverviewProps === null || resourceOverviewProps === void 0 ? void 0 : resourceOverviewProps.getData({
44
+ id: id // metrics: topModelMetrics,
45
+
46
+ });
47
+
48
+ case 3:
49
+ _yield$resourceOvervi = _context.sent;
50
+ alarmList = _yield$resourceOvervi.alarms;
51
+ alarmList = ((_alarmList = alarmList) === null || _alarmList === void 0 ? void 0 : _alarmList.map(function (item) {
52
+ return {
53
+ type: 'alarm',
54
+ icon: 'gaojing-3',
55
+ className: "alarm-color-icon-lv" + item.alertLevel,
56
+ title: "[" + item.alertObject + "] " + item.alertTitle,
57
+ link: "/default/pagecenter/alertDetail/view/" + item.alertId + "?alertId=" + item.alertId + "&resId=" + item.ciId + "&title=" + item.alertObject + "&ruleId=" + item.ruleId,
58
+ time: item.createTime,
59
+ status: item.status,
60
+ params: [{
61
+ alertId: item.alertId,
62
+ status: 'dealing',
63
+ userId: userId,
64
+ isBaseAlert: false
65
+ }]
66
+ };
67
+ })) || [];
68
+ setAlarmRiskList(alarmList);
69
+ _context.next = 24;
70
+ break;
71
+
72
+ case 9:
73
+ _context.next = 11;
74
+ return alarmService.getAlarmByIds([id].concat(childrenIds), {
75
+ alertStatusList: ['toDeal', 'woDealing', 'dealing'],
76
+ // toDeal: 待处理, dealing:处理中
77
+ pageNum: 1,
78
+ pageSize: 10000,
79
+ sortField: 'alertLevel',
80
+ sortOrder: 'asc'
81
+ });
82
+
83
+ case 11:
84
+ _yield$alarmService$g = _context.sent;
85
+ _alarmList2 = _yield$alarmService$g.datas;
86
+ // 2022-07-16 后端不支持多列排序,暂通过前端实现,按创建时间倒序
87
+ _alarmList2 = _alarmList2.sort(function (a, b) {
88
+ return b.createTime - a.createTime;
89
+ });
90
+ _alarmList2 = _alarmList2.map(function (item) {
91
+ return {
92
+ type: 'alarm',
93
+ icon: 'gaojing-3',
94
+ className: "alarm-color-icon-lv" + item.alertLevel,
95
+ title: "" + item.alertObject + item.alertTitle,
96
+ link: "/default/pagecenter/alertDetail/view/" + item.alertId + "?alertId=" + item.alertId + "&resId=" + item.ciId + "&title=" + item.alertObject + "&ruleId=" + item.ruleId,
97
+ time: item.createTime,
98
+ status: item.status,
99
+ params: [{
100
+ alertId: item.alertId,
101
+ status: 'dealing',
102
+ userId: userId,
103
+ isBaseAlert: false
104
+ }]
105
+ };
106
+ }); // fix NEWITOM-33635【南昌大学】网络拓扑上双击设备拉开的抽屉中无法看到风险
107
+
108
+ _context.next = 17;
109
+ return service.queryAllComponentsByCiId(id);
110
+
111
+ case 17:
112
+ AllComponentsByCiId = _context.sent;
113
+ _context.next = 20;
114
+ return service.getRiskByIds({
115
+ ciIdList: [id].concat(childrenIds, AllComponentsByCiId.map(function (item) {
116
+ return item.id;
117
+ })),
118
+ statusList: ['toDeal', 'dealing'],
119
+ current: 1,
120
+ pageSize: 10000
121
+ });
122
+
123
+ case 20:
124
+ _yield$service$getRis = _context.sent;
125
+ riskList = _yield$service$getRis.content;
126
+ riskList = riskList.map(function (item) {
127
+ return {
128
+ type: 'risk',
129
+ icon: 'Overall_risk_full',
130
+ className: 'risk-icon',
131
+ title: "" + item.ciName + item.itemName,
132
+ link: "/default/inspectionTaskList/inspectionReport?title=" + item.ciName + "&reportId=" + item.executeId + "&reportTime=" + item.executeTime + "&reportType=" + item.viewType + "&reportName=" + item.reportName,
133
+ time: item.firstFoundTime
134
+ };
135
+ }); // console.log('告警和风险', alarmList, riskList);
136
+
137
+ setAlarmRiskList([].concat(_alarmList2, riskList));
138
+
139
+ case 24:
140
+ case "end":
141
+ return _context.stop();
142
+ }
143
+ }
144
+ }, _callee);
145
+ }));
146
+ return _getAlarmRiskData.apply(this, arguments);
147
+ }
148
+
149
+ var request = useRequest(getAlarmRiskData, {
150
+ pollingInterval: 1000 * 15,
151
+ pollingWhenHidden: false,
152
+ // debounceInterval: 200,
153
+ manual: true,
154
+ onSuccess: function onSuccess() {}
155
+ });
156
+ useEffect(function () {
157
+ setAlarmRiskList([]);
158
+ request.run(id);
159
+ return function () {
160
+ request.cancel();
161
+ };
162
+ }, [id]);
163
+ return {
164
+ alarmRiskList: alarmRiskList,
165
+ refreshAlarmData: function refreshAlarmData() {
166
+ request.run();
167
+ }
168
+ };
169
+ };
170
+
171
+ export default useAlarmAndRiskData;
@@ -92,9 +92,9 @@ var useMetricModels = function useMetricModels(props) {
92
92
  }
93
93
 
94
94
  var request = useRequest(fetchData, {
95
- pollingInterval: 1000 * 5,
96
- // pollingWhenHidden: false,
97
- // debounceInterval: 1000,
95
+ pollingInterval: 1000 * 60,
96
+ pollingWhenHidden: false,
97
+ // debounceInterval: 200,
98
98
  manual: true,
99
99
  onSuccess: function onSuccess(newMetricModels) {
100
100
  var a = metricModels.map(function (item) {
@@ -148,7 +148,7 @@ export default {
148
148
  */
149
149
  queryAssociatedlinks: function queryAssociatedlinks(ids, type) {
150
150
  return _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee5() {
151
- var stag, ttag, condition, parm, jsonParm, result;
151
+ var stag, ttag, condition, parm, result;
152
152
  return _regeneratorRuntime.wrap(function _callee5$(_context5) {
153
153
  while (1) {
154
154
  switch (_context5.prev = _context5.next) {
@@ -167,28 +167,27 @@ export default {
167
167
  sort: "name asc",
168
168
  currentPage: 1,
169
169
  pageSize: 99
170
- };
171
- jsonParm = JSON.stringify(parm); // console.log("queryAssociatedlinks", ids, parm, jsonParm);
170
+ }; // console.log("queryAssociatedlinks", ids, parm, jsonParm);
172
171
 
173
- _context5.prev = 6;
174
- _context5.next = 9;
175
- return request.post("/mdc/v1/api/cmdb/commonQueryCiData", jsonParm);
172
+ _context5.prev = 5;
173
+ _context5.next = 8;
174
+ return request.post("/mdc/v1/api/cmdb/commonQueryCiData", parm);
176
175
 
177
- case 9:
176
+ case 8:
178
177
  result = _context5.sent;
179
178
  return _context5.abrupt("return", result);
180
179
 
181
- case 13:
182
- _context5.prev = 13;
183
- _context5.t0 = _context5["catch"](6);
180
+ case 12:
181
+ _context5.prev = 12;
182
+ _context5.t0 = _context5["catch"](5);
184
183
  rlog.error("查询可关联链路", _context5.t0);
185
184
 
186
- case 16:
185
+ case 15:
187
186
  case "end":
188
187
  return _context5.stop();
189
188
  }
190
189
  }
191
- }, _callee5, null, [[6, 13]]);
190
+ }, _callee5, null, [[5, 12]]);
192
191
  }))();
193
192
  }
194
193
  };
@@ -34,9 +34,9 @@ var usePolling = function usePolling(props) {
34
34
  var resIdsList = resAndMetrics === null || resAndMetrics === void 0 ? void 0 : resAndMetrics.resIdsList; // 轮询hooks
35
35
 
36
36
  var _useRequest = (0, _ahooks.useRequest)(refresh, {
37
- pollingInterval: 1000 * 15,
38
- // pollingWhenHidden: false,
39
- // debounceInterval: 1000,
37
+ pollingInterval: 60 * 1000,
38
+ pollingWhenHidden: false,
39
+ // debounceInterval: 200,
40
40
  manual: true,
41
41
  onSuccess: function onSuccess(result) {
42
42
  if (result) {
@@ -54,7 +54,7 @@ var _ElementTagTipConfig = _interopRequireDefault(require("./tagstips/ElementTag
54
54
  var _SelectionModel = _interopRequireDefault(require("./SelectionModel"));
55
55
 
56
56
  // eslint-disable-next-line no-undef
57
- var version = typeof "8.0.0-a.8" === 'string' ? "8.0.0-a.8" : null;
57
+ var version = typeof "8.0.1" === 'string' ? "8.0.1" : null;
58
58
  console.info("\u62D3\u6251\u7248\u672C: " + version);
59
59
  /**
60
60
  * 拓扑显示和编辑
@@ -4,7 +4,7 @@ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefau
4
4
 
5
5
  exports.__esModule = true;
6
6
  exports.buildTopoLinkData = buildTopoLinkData;
7
- exports.getInterfaceObject = exports.compatibleWith = void 0;
7
+ exports.compatibleWith = void 0;
8
8
  exports.getLinksDetail = getLinksDetail;
9
9
  exports.isCrucialLink = isCrucialLink;
10
10
  exports.isExitLink = isExitLink;
@@ -13,11 +13,9 @@ exports.showLinkByConfig = exports.plurals = void 0;
13
13
 
14
14
  var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
15
15
 
16
- var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
17
-
18
16
  var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
19
17
 
20
- var _topo = _interopRequireDefault(require("@riil-frontend/component-topology-common/es/services/topo"));
18
+ var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
21
19
 
22
20
  var _keyBy = _interopRequireDefault(require("lodash/keyBy"));
23
21
 
@@ -27,6 +25,8 @@ var _services = require("../../services");
27
25
 
28
26
  var _htElementUtils = require("../../../utils/htElementUtils");
29
27
 
28
+ var _CiTypeCache = _interopRequireDefault(require("../cache/CiTypeCache"));
29
+
30
30
  // 查询所有连线
31
31
  // const interfaceTypeMap = {
32
32
  // "network.interface": {
@@ -56,43 +56,6 @@ function isExitLink(link) {
56
56
  return (link === null || link === void 0 ? void 0 : link.attributes) && !(link !== null && link !== void 0 && link.attributes['destination_id']);
57
57
  }
58
58
 
59
- var getInterfaceObject = /*#__PURE__*/function () {
60
- var _ref = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee(codes) {
61
- var query, promises, result, ifDoc;
62
- return _regenerator["default"].wrap(function _callee$(_context) {
63
- while (1) {
64
- switch (_context.prev = _context.next) {
65
- case 0:
66
- query = _lodash["default"].compact(_lodash["default"].uniq(codes));
67
- promises = query.map(_services.queryModelAsset);
68
- _context.next = 4;
69
- return Promise.all(promises);
70
-
71
- case 4:
72
- result = _context.sent;
73
- ifDoc = {};
74
- result.map(function (ifItem) {
75
- ifDoc[ifItem.code] = {
76
- displayName: ifItem.displayName
77
- };
78
- });
79
- return _context.abrupt("return", ifDoc);
80
-
81
- case 8:
82
- case "end":
83
- return _context.stop();
84
- }
85
- }
86
- }, _callee);
87
- }));
88
-
89
- return function getInterfaceObject(_x) {
90
- return _ref.apply(this, arguments);
91
- };
92
- }();
93
-
94
- exports.getInterfaceObject = getInterfaceObject;
95
-
96
59
  function mergeLinksData(links, linkCis, nodes, interfaceCis, interfaceDoc) {
97
60
  var linkCiMap = (0, _keyBy["default"])(links, 'id');
98
61
  return links.map(function (link) {
@@ -135,57 +98,59 @@ function mergeLinksData(links, linkCis, nodes, interfaceCis, interfaceDoc) {
135
98
  });
136
99
  }
137
100
 
138
- function getLinksDetail(_x2, _x3) {
101
+ function getLinksDetail(_x, _x2) {
139
102
  return _getLinksDetail.apply(this, arguments);
140
103
  }
141
104
 
142
105
  function _getLinksDetail() {
143
- _getLinksDetail = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee2(links, nodes) {
106
+ _getLinksDetail = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee(links, nodes) {
144
107
  var linkCis, interfaceIds, interfaceTypes, interfaceCis, interfaceDoc;
145
- return _regenerator["default"].wrap(function _callee2$(_context2) {
108
+ return _regenerator["default"].wrap(function _callee$(_context) {
146
109
  while (1) {
147
- switch (_context2.prev = _context2.next) {
110
+ switch (_context.prev = _context.next) {
148
111
  case 0:
149
112
  if (!(!links || !links.length)) {
150
- _context2.next = 2;
113
+ _context.next = 2;
151
114
  break;
152
115
  }
153
116
 
154
- return _context2.abrupt("return", []);
117
+ return _context.abrupt("return", []);
155
118
 
156
119
  case 2:
157
120
  // const linkCis = await topoService.relation.batchQueryRelation(
158
121
  // links.map((link) => link.id)
159
122
  // );
160
123
  linkCis = links;
161
- interfaceIds = [];
162
- interfaceTypes = [];
163
- linkCis.forEach(function (item) {
164
- interfaceIds.push(item.attributes.source_id);
165
- interfaceIds.push(item.attributes.destination_id);
166
- interfaceTypes.push(item.attributes.source_type);
167
- interfaceTypes.push(item.attributes.destination_type);
124
+ interfaceIds = [].concat(linkCis.map(function (item) {
125
+ return item.attributes.source_id;
126
+ }), linkCis.map(function (item) {
127
+ return item.attributes.destination_id;
128
+ }));
129
+ interfaceTypes = _lodash["default"].compact(_lodash["default"].uniq([].concat(linkCis.map(function (item) {
130
+ return item.attributes.source_type;
131
+ }), linkCis.map(function (item) {
132
+ return item.attributes.destination_type;
133
+ })))).filter(function (item) {
134
+ return item !== 'ip';
168
135
  });
169
- _context2.next = 8;
136
+ _context.next = 7;
170
137
  return (0, _services.queryCisByIds)(interfaceIds);
171
138
 
172
- case 8:
173
- interfaceCis = _context2.sent;
174
- _context2.next = 11;
175
- return getInterfaceObject(interfaceTypes.filter(function (item) {
176
- return item !== 'ip';
177
- }));
139
+ case 7:
140
+ interfaceCis = _context.sent;
141
+ _context.next = 10;
142
+ return _CiTypeCache["default"].getCiTypeMap(interfaceTypes);
178
143
 
179
- case 11:
180
- interfaceDoc = _context2.sent;
181
- return _context2.abrupt("return", mergeLinksData(links, linkCis, nodes, interfaceCis, interfaceDoc));
144
+ case 10:
145
+ interfaceDoc = _context.sent;
146
+ return _context.abrupt("return", mergeLinksData(links, linkCis, nodes, interfaceCis, interfaceDoc));
182
147
 
183
- case 13:
148
+ case 12:
184
149
  case "end":
185
- return _context2.stop();
150
+ return _context.stop();
186
151
  }
187
152
  }
188
- }, _callee2);
153
+ }, _callee);
189
154
  }));
190
155
  return _getLinksDetail.apply(this, arguments);
191
156
  }
@@ -13,6 +13,10 @@ var _componentTopologyUtils = require("@riil-frontend/component-topology-utils")
13
13
 
14
14
  var _cmdb = require("./cmdb");
15
15
 
16
+ // 机房可上架设备类型缓存数据
17
+ var roomDeviceTypeList = null; // 资源子组件缓存
18
+
19
+ var ciComponentsMap = {};
16
20
  var _default = {
17
21
  /**
18
22
  * 根据资源id获取风险
@@ -46,19 +50,31 @@ var _default = {
46
50
  */
47
51
  queryAllComponentsByCiId: function queryAllComponentsByCiId(id) {
48
52
  return (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee2() {
53
+ var components;
49
54
  return _regenerator["default"].wrap(function _callee2$(_context2) {
50
55
  while (1) {
51
56
  switch (_context2.prev = _context2.next) {
52
57
  case 0:
53
- _context2.next = 2;
58
+ components = ciComponentsMap[id];
59
+
60
+ if (components) {
61
+ _context2.next = 6;
62
+ break;
63
+ }
64
+
65
+ _context2.next = 4;
54
66
  return _componentTopologyUtils.request.post('/mdc/v1/api/cmdb/queryAllComponentsByCiId', {
55
67
  id: id
56
68
  });
57
69
 
58
- case 2:
59
- return _context2.abrupt("return", _context2.sent);
70
+ case 4:
71
+ components = _context2.sent;
72
+ ciComponentsMap[id] = components;
60
73
 
61
- case 3:
74
+ case 6:
75
+ return _context2.abrupt("return", components);
76
+
77
+ case 7:
62
78
  case "end":
63
79
  return _context2.stop();
64
80
  }
@@ -197,13 +213,21 @@ var _default = {
197
213
  while (1) {
198
214
  switch (_context8.prev = _context8.next) {
199
215
  case 0:
200
- _context8.next = 2;
201
- return _componentTopologyUtils.request.post("/room/v1/api/device/type/list", {});
216
+ if (roomDeviceTypeList) {
217
+ _context8.next = 4;
218
+ break;
219
+ }
202
220
 
203
- case 2:
204
- return _context8.abrupt("return", _context8.sent);
221
+ _context8.next = 3;
222
+ return _componentTopologyUtils.request.post("/room/v1/api/device/type/list", {});
205
223
 
206
224
  case 3:
225
+ roomDeviceTypeList = _context8.sent;
226
+
227
+ case 4:
228
+ return _context8.abrupt("return", roomDeviceTypeList);
229
+
230
+ case 5:
207
231
  case "end":
208
232
  return _context8.stop();
209
233
  }
@@ -15,13 +15,19 @@ var _rlog = _interopRequireDefault(require("@riil-frontend/component-topology-ut
15
15
 
16
16
  var _lodash = _interopRequireDefault(require("lodash"));
17
17
 
18
- var _topoData = require("../../../utils/topoData");
19
-
20
18
  /**
21
19
  * 告警
22
20
  */
23
21
  var showAlarmStatus = ["toDeal", "dealing", "change", "woDealing"];
24
22
 
23
+ var sortList = function sortList(a, b) {
24
+ if (a.level === b.level) {
25
+ return a.obj.createTime - b.obj.createTime;
26
+ } else {
27
+ return a.level - b.level;
28
+ }
29
+ };
30
+
25
31
  function _default(topo) {
26
32
  return {
27
33
  // 定义 model 的初始 state
@@ -124,7 +130,7 @@ function _default(topo) {
124
130
  }) < 0) {
125
131
  var newArr = [].concat(doc[rid]);
126
132
  newArr.push(item);
127
- doc[rid] = newArr.sort(_topoData.sortList);
133
+ doc[rid] = newArr.sort(sortList);
128
134
  }
129
135
  } else {
130
136
  doc[rid] = [item];
@@ -155,7 +161,7 @@ function _default(topo) {
155
161
  status: old.status
156
162
  }));
157
163
 
158
- doc[rid] = _newArr.sort(_topoData.sortList);
164
+ doc[rid] = _newArr.sort(sortList);
159
165
 
160
166
  _rlog["default"].debug("告警级别变更", doc[rid], item);
161
167
  } else {