@riil-frontend/component-topology 9.0.0-a.1 → 9.0.0-a.10

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 (47) hide show
  1. package/build/1.js +2 -2
  2. package/build/2.js +1 -1
  3. package/build/index.css +1 -1
  4. package/build/index.js +17 -17
  5. package/es/core/editor/components/Toolbar/widgets/EdgeTypeButton/LineType.js +1 -1
  6. package/es/core/event/topoEventListener.js +22 -0
  7. package/es/core/hooks/useAlarm.js +18 -12
  8. package/es/core/hooks/useCiAttributeChange.js +60 -0
  9. package/es/core/hooks/usePolling.js +163 -60
  10. package/es/core/hooks/useTopoEventListener.js +4 -18
  11. package/es/core/models/Alarm.js +4 -13
  12. package/es/core/models/AttributeMetricDisplay.js +44 -127
  13. package/es/core/models/TopoApp.js +4 -2
  14. package/es/core/models/attributeFormatter/index.js +5 -6
  15. package/es/core/models/cache/CiCache.d.ts +18 -0
  16. package/es/core/models/cache/CiCache.js +78 -0
  17. package/es/core/models/utils/linkUtils.js +10 -13
  18. package/es/core/store/models/topoBizMod.js +4 -0
  19. package/es/core/store/models/viewer/resourceDetail.js +7 -0
  20. package/es/core/viewer/components/plugins/ResourceDetail/ResourceDetailDrawer.js +10 -9
  21. package/es/core/viewer/components/plugins/ResourceDetail/components/ResourceOverview/ResourceOverview.js +100 -46
  22. package/es/core/viewer/components/plugins/ResourceDetail/components/ResourceOverview/components/LinkTopo/LinkTopoCard.js +8 -6
  23. package/es/core/viewer/components/plugins/ResourceDetail/components/ResourceOverview/components/LinkTopo/hooks/useMetricPolling.js +8 -26
  24. package/es/core/viewer/components/plugins/ResourceDetail/components/ResourceOverview/hooks/useMetricModels.js +13 -52
  25. package/es/style.js +1 -1
  26. package/lib/core/editor/components/Toolbar/widgets/EdgeTypeButton/LineType.js +1 -1
  27. package/lib/core/event/topoEventListener.js +27 -0
  28. package/lib/core/hooks/useAlarm.js +19 -12
  29. package/lib/core/hooks/useCiAttributeChange.js +70 -0
  30. package/lib/core/hooks/usePolling.js +166 -61
  31. package/lib/core/hooks/useTopoEventListener.js +3 -17
  32. package/lib/core/models/Alarm.js +5 -16
  33. package/lib/core/models/AttributeMetricDisplay.js +44 -126
  34. package/lib/core/models/TopoApp.js +4 -1
  35. package/lib/core/models/attributeFormatter/index.js +5 -7
  36. package/lib/core/models/cache/CiCache.d.ts +18 -0
  37. package/lib/core/models/cache/CiCache.js +89 -0
  38. package/lib/core/models/utils/linkUtils.js +10 -12
  39. package/lib/core/store/models/topoBizMod.js +4 -0
  40. package/lib/core/store/models/viewer/resourceDetail.js +7 -0
  41. package/lib/core/viewer/components/plugins/ResourceDetail/ResourceDetailDrawer.js +10 -9
  42. package/lib/core/viewer/components/plugins/ResourceDetail/components/ResourceOverview/ResourceOverview.js +99 -45
  43. package/lib/core/viewer/components/plugins/ResourceDetail/components/ResourceOverview/components/LinkTopo/LinkTopoCard.js +8 -6
  44. package/lib/core/viewer/components/plugins/ResourceDetail/components/ResourceOverview/components/LinkTopo/hooks/useMetricPolling.js +8 -26
  45. package/lib/core/viewer/components/plugins/ResourceDetail/components/ResourceOverview/hooks/useMetricModels.js +13 -53
  46. package/lib/style.js +1 -1
  47. package/package.json +3 -3
@@ -7,10 +7,10 @@ exports["default"] = void 0;
7
7
 
8
8
  var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
9
9
 
10
- var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
11
-
12
10
  var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
13
11
 
12
+ var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
13
+
14
14
  var _react = require("react");
15
15
 
16
16
  var _ahooks = require("ahooks");
@@ -19,6 +19,14 @@ var _lodash = _interopRequireDefault(require("lodash"));
19
19
 
20
20
  var _rlog = _interopRequireDefault(require("@riil-frontend/component-topology-utils/es/rlog"));
21
21
 
22
+ var _topo = _interopRequireDefault(require("@riil-frontend/component-topology-common/es/services/topo"));
23
+
24
+ var _componentRiilEventEmitter = require("@riil-frontend/component-riil-event-emitter");
25
+
26
+ var _DictCache = _interopRequireDefault(require("../models/cache/DictCache"));
27
+
28
+ var _useCiAttributeChange = _interopRequireDefault(require("./useCiAttributeChange"));
29
+
22
30
  /**
23
31
  * 轮询获取指标hooks
24
32
  * @param {*} props
@@ -26,12 +34,156 @@ var _rlog = _interopRequireDefault(require("@riil-frontend/component-topology-ut
26
34
  var usePolling = function usePolling(props) {
27
35
  var topo = props.topo;
28
36
  var store = topo.store;
37
+ (0, _useCiAttributeChange["default"])({
38
+ topo: topo
39
+ });
29
40
  var bizState = store.useModelState('topoBizMod');
30
41
  var resAndMetrics = bizState.resAndMetrics,
31
42
  pollingSwitch = bizState.pollingSwitch;
32
43
  var displayConfig = topo.store.useModelState('displayConfig');
33
44
  var resourceOverviewState = topo.store.useModelState('topoBaseInfoOverview');
34
- var resIdsList = resAndMetrics === null || resAndMetrics === void 0 ? void 0 : resAndMetrics.resIdsList; // 轮询hooks
45
+ var resIdsList = resAndMetrics === null || resAndMetrics === void 0 ? void 0 : resAndMetrics.resIdsList;
46
+ /**
47
+ * 查询拓扑图资源的属性指标
48
+ *
49
+ * @returns {array}
50
+ */
51
+
52
+ function fetchData() {
53
+ return _fetchData.apply(this, arguments);
54
+ }
55
+ /**
56
+ *
57
+ * @returns {{id, attributes: object[], metrics: object[]}[]} 属性和指标
58
+ */
59
+
60
+
61
+ function _fetchData() {
62
+ _fetchData = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee() {
63
+ var _topo$store$getModelS, resIdsList, nodeIdsList, codes, param, _yield$Promise$all, ciMetricResult, transformLinkData;
64
+
65
+ return _regenerator["default"].wrap(function _callee$(_context) {
66
+ while (1) {
67
+ switch (_context.prev = _context.next) {
68
+ case 0:
69
+ transformLinkData = function _transformLinkData(data) {
70
+ var _topo$dataModel$getDa = topo.dataModel.getData(),
71
+ links = _topo$dataModel$getDa.links,
72
+ linkGroups = _topo$dataModel$getDa.linkGroups;
73
+
74
+ var link = [].concat(links, linkGroups).find(function (item) {
75
+ return item.id === data.id;
76
+ });
77
+
78
+ if (!link) {
79
+ return data;
80
+ }
81
+
82
+ return (0, _extends2["default"])({}, data, {
83
+ attributeMap: link.attributes || {}
84
+ });
85
+ };
86
+
87
+ _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);
88
+ // 无资源,不查询
89
+
90
+ if (resIdsList.length) {
91
+ _context.next = 4;
92
+ break;
93
+ }
94
+
95
+ return _context.abrupt("return", []);
96
+
97
+ case 4:
98
+ // 需要查询的指标列表
99
+ codes = topo.attributeMetricDisplay.getResourceMetricCodes();
100
+ param = {
101
+ ciId: nodeIdsList,
102
+ codes: codes,
103
+ // 过滤掉不需要查询的
104
+ relationId: topo.attributeMetricDisplay.getEdges().map(function (edge) {
105
+ return {
106
+ ciId: edge.id,
107
+ operation: edge.operation
108
+ };
109
+ })
110
+ };
111
+ _context.t0 = Promise;
112
+ _context.t1 = // 查询指标值
113
+ _topo["default"].ciInfo.batchQueryCiInfo(param);
114
+ _context.next = 10;
115
+ return _DictCache["default"].init();
116
+
117
+ case 10:
118
+ _context.t2 = _context.sent;
119
+ _context.t3 = [_context.t1, _context.t2];
120
+ _context.next = 14;
121
+ return _context.t0.all.call(_context.t0, _context.t3);
122
+
123
+ case 14:
124
+ _yield$Promise$all = _context.sent;
125
+ ciMetricResult = _yield$Promise$all[0];
126
+ return _context.abrupt("return", ciMetricResult.map(function (data) {
127
+ var ci = topo.dataModel.getDataById(data.id);
128
+ var resultData = (0, _extends2["default"])({}, data, ci, {
129
+ attributeMap: (0, _extends2["default"])({}, (ci === null || ci === void 0 ? void 0 : ci.attributes) || {})
130
+ });
131
+ resultData = transformLinkData(resultData); // 特殊处理:ipv6 从ipv6_address_list取第一个
132
+
133
+ // 特殊处理:ipv6 从ipv6_address_list取第一个
134
+ if (resultData.attributeMap.ipv6_address_list && !resultData.attributeMap.ipv6_address) {
135
+ resultData.attributeMap.ipv6_address = (resultData.attributeMap.ipv6_address_list || '').split(',')[0];
136
+ }
137
+
138
+ return resultData;
139
+ }));
140
+
141
+ case 17:
142
+ case "end":
143
+ return _context.stop();
144
+ }
145
+ }
146
+ }, _callee);
147
+ }));
148
+ return _fetchData.apply(this, arguments);
149
+ }
150
+
151
+ function refresh() {
152
+ return _refresh.apply(this, arguments);
153
+ } // 轮询hooks
154
+
155
+
156
+ function _refresh() {
157
+ _refresh = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee2() {
158
+ var data;
159
+ return _regenerator["default"].wrap(function _callee2$(_context2) {
160
+ while (1) {
161
+ switch (_context2.prev = _context2.next) {
162
+ case 0:
163
+ if (!(!pollingSwitch || !(resAndMetrics !== null && resAndMetrics !== void 0 && resAndMetrics.resIdsList.length))) {
164
+ _context2.next = 2;
165
+ break;
166
+ }
167
+
168
+ return _context2.abrupt("return");
169
+
170
+ case 2:
171
+ _context2.next = 4;
172
+ return fetchData();
173
+
174
+ case 4:
175
+ data = _context2.sent;
176
+ return _context2.abrupt("return", data);
177
+
178
+ case 6:
179
+ case "end":
180
+ return _context2.stop();
181
+ }
182
+ }
183
+ }, _callee2);
184
+ }));
185
+ return _refresh.apply(this, arguments);
186
+ }
35
187
 
36
188
  var _useRequest = (0, _ahooks.useRequest)(refresh, {
37
189
  pollingInterval: 60 * 1000,
@@ -42,30 +194,13 @@ var usePolling = function usePolling(props) {
42
194
  if (result) {
43
195
  var dd = _lodash["default"].cloneDeep(result);
44
196
 
45
- topo.attributeMetricDisplay.loadAttributeAndMetric(dd);
197
+ topo.attributeMetricDisplay.loadData(dd);
46
198
  }
47
199
  }
48
200
  }),
49
201
  loading = _useRequest.loading,
50
202
  startPoll = _useRequest.run,
51
- stopPoll = _useRequest.cancel;
52
-
53
- function convertData(data) {
54
- return data.map(function (item) {
55
- return (0, _extends2["default"])({}, item, {
56
- attributes: convertAttrMap(item.attributes),
57
- metrics: convertAttrMap(item.metrics)
58
- });
59
- });
60
- }
61
-
62
- function convertAttrMap(attrs) {
63
- var map = {};
64
- attrs.forEach(function (attr) {
65
- map[attr.code] = attr.value;
66
- });
67
- return map;
68
- } // 需要刷新数据的场景:显示模式、资源变化、配置变化、开关开启、概览
203
+ stopPoll = _useRequest.cancel; // 需要刷新数据的场景:显示模式、资源变化、配置变化、开关开启、概览
69
204
 
70
205
 
71
206
  (0, _react.useEffect)(function () {
@@ -87,46 +222,16 @@ var usePolling = function usePolling(props) {
87
222
  stopPoll();
88
223
  }
89
224
  };
90
- }, [pollingSwitch, resIdsList, displayConfig, resourceOverviewState.id, resourceOverviewState.metricCodes]);
91
- /**
92
- *
93
- * @returns {{id, attributes: object[], metrics: object[]}[]} 属性和指标
94
- */
95
-
96
- function refresh() {
97
- return _refresh.apply(this, arguments);
98
- }
99
-
100
- function _refresh() {
101
- _refresh = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee() {
102
- return _regenerator["default"].wrap(function _callee$(_context) {
103
- while (1) {
104
- switch (_context.prev = _context.next) {
105
- case 0:
106
- if (!(!pollingSwitch || !(resAndMetrics !== null && resAndMetrics !== void 0 && resAndMetrics.resIdsList.length))) {
107
- _context.next = 2;
108
- break;
109
- }
110
-
111
- return _context.abrupt("return");
112
-
113
- case 2:
114
- _context.next = 4;
115
- return topo.attributeMetricDisplay.fetchData();
116
-
117
- case 4:
118
- return _context.abrupt("return", _context.sent);
119
-
120
- case 5:
121
- case "end":
122
- return _context.stop();
123
- }
124
- }
125
- }, _callee);
126
- }));
127
- return _refresh.apply(this, arguments);
128
- }
225
+ }, [pollingSwitch, resIdsList, displayConfig, resourceOverviewState.id, resourceOverviewState.metricCodes]); // 属性变更监听更新
129
226
 
227
+ (0, _componentRiilEventEmitter.useCbbEventListener)('topo', {
228
+ name: 'topo',
229
+ onMessage: function onMessage(message) {
230
+ if (message.type === 'attribute') {
231
+ var data = message.data;
232
+ }
233
+ }
234
+ });
130
235
  return {
131
236
  startPoll: startPoll,
132
237
  stopPoll: stopPoll
@@ -5,29 +5,15 @@ exports["default"] = useTopoEventListener;
5
5
 
6
6
  var _react = require("react");
7
7
 
8
- var n = 0;
8
+ var _topoEventListener = require("../event/topoEventListener");
9
9
 
10
10
  function useTopoEventListener(props) {
11
11
  var type = props.type,
12
12
  onMessage = props.onMessage;
13
- var eventListenerName = (0, _react.useMemo)(function () {
14
- return "topo_" + n++;
15
- }, []);
16
13
  (0, _react.useEffect)(function () {
17
- var EE = window.EE;
18
-
19
- if (EE) {
20
- window.EE.on('topo', eventListenerName, function (data) {
21
- if (data.type === type) {
22
- onMessage(data.data);
23
- }
24
- });
25
- }
26
-
14
+ var listener = (0, _topoEventListener.createTopoEventListener)(type, onMessage);
27
15
  return function () {
28
- if (EE) {
29
- window.EE.removeListener('topo', eventListenerName);
30
- }
16
+ listener.close();
31
17
  };
32
18
  }, [type, onMessage]);
33
19
  }
@@ -19,8 +19,8 @@ var _componentRiilEventEmitter = require("@riil-frontend/component-riil-event-em
19
19
 
20
20
  var _utils = require("@riil-frontend/utils");
21
21
 
22
- // import moment from "moment";
23
- // import { alarmListDemo } from "./mocks";
22
+ var _topoEventListener = require("../event/topoEventListener");
23
+
24
24
  var Alarm = /*#__PURE__*/function () {
25
25
  function Alarm() {
26
26
  this.topo = void 0;
@@ -394,8 +394,6 @@ var Alarm = /*#__PURE__*/function () {
394
394
  /*#__PURE__*/
395
395
  function () {
396
396
  var _openTopoAlarm = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee6(id) {
397
- var _this2 = this;
398
-
399
397
  var _this$getState2, alarmOpening, topoAlarmIsOpen, alarmDispatchers;
400
398
 
401
399
  return _regenerator["default"].wrap(function _callee6$(_context6) {
@@ -427,20 +425,13 @@ var Alarm = /*#__PURE__*/function () {
427
425
 
428
426
  case 10:
429
427
  this.secretKey = _context6.sent;
430
-
431
428
  // rlog.debug("openTopoAlarm 获取初始化告警-------------------开始");
432
- _componentRiilEventEmitter.EE.on("topo", "topo", function (data, other) {
433
- _rlog["default"].debug("openTopoAlarm 获取初始化告警------收到信息", data);
434
-
435
- _this2.handleAlarmEvent(data);
436
- });
437
-
438
429
  this.updateState({
439
430
  alarmOpening: false,
440
431
  alarmIsOpened: true
441
432
  });
442
433
 
443
- case 13:
434
+ case 12:
444
435
  case "end":
445
436
  return _context6.stop();
446
437
  }
@@ -486,17 +477,15 @@ var Alarm = /*#__PURE__*/function () {
486
477
 
487
478
  _rlog["default"].debug("useAlarm.useEffect 告警WebSocket 结束");
488
479
 
489
- _componentRiilEventEmitter.EE.removeListener("topo", "topo");
490
-
491
480
  this.updateState({
492
481
  topoAlarmIsOpen: false,
493
482
  alarmOpening: false,
494
483
  alarmPanelIsOpen: false
495
484
  });
496
- _context7.next = 9;
485
+ _context7.next = 8;
497
486
  return this.topo.serverApi.closeTopoAlarm(id, this.secretKey);
498
487
 
499
- case 9:
488
+ case 8:
500
489
  case "end":
501
490
  return _context7.stop();
502
491
  }
@@ -364,106 +364,50 @@ var AttributeMetricDisplay = /*#__PURE__*/function () {
364
364
  });
365
365
  }
366
366
  /**
367
- * 查询拓扑图资源的属性指标
367
+ * 加载标注、悬浮框数据
368
368
  *
369
- * @returns {array}
369
+ * @param {array<{id, attributeMap: {}, metricMap: {}}>} data
370
370
  */
371
371
  ;
372
372
 
373
- _proto.fetchData =
373
+ _proto.loadData =
374
374
  /*#__PURE__*/
375
375
  function () {
376
- var _fetchData = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee() {
377
- var topo, _topo$store$getModelS, resIdsList, nodeIdsList, codes, param, transformLinkData, result;
378
-
376
+ var _loadData = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee(data) {
377
+ var topo, ciDatas, bizDispatchers;
379
378
  return _regenerator["default"].wrap(function _callee$(_context) {
380
379
  while (1) {
381
380
  switch (_context.prev = _context.next) {
382
381
  case 0:
383
- transformLinkData = function _transformLinkData(data) {
384
- var _topo$dataModel$getDa = topo.dataModel.getData(),
385
- links = _topo$dataModel$getDa.links,
386
- linkGroups = _topo$dataModel$getDa.linkGroups;
387
-
388
- var link = [].concat(links, linkGroups).find(function (item) {
389
- return item.id === data.id;
390
- });
391
-
392
- if (!link) {
393
- return data;
394
- }
395
-
396
- var attributeMap = data.attributeMap;
397
- attributeMap = (0, _extends2["default"])({}, link.attributes || {});
398
- return (0, _extends2["default"])({}, data, {
399
- attributeMap: attributeMap
400
- });
401
- };
382
+ // rlog.debug('AttributeMetricDisplay.loadAttributeAndMetric', data);
383
+ topo = this.topo; // 设置ciType
402
384
 
403
- topo = this.topo;
404
- _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);
405
- // 无资源,不查询
385
+ ciDatas = data.filter(function (item) {
386
+ // 过滤不存在的ci,解决编辑模式删除资源后切换到显示模式报错
387
+ return !!topo.dataModel.getDataById(item.id);
388
+ }).map(function (item) {
389
+ return (0, _extends2["default"])({
390
+ ciType: topo.dataModel.getDataById(item.id).ciType
391
+ }, item);
392
+ }); // 翻译引用属性
406
393
 
407
- if (resIdsList.length) {
408
- _context.next = 5;
409
- break;
410
- }
394
+ _context.next = 4;
395
+ return this.translateRefAttribute(ciDatas);
411
396
 
412
- return _context.abrupt("return", []);
397
+ case 4:
398
+ ciDatas = _context.sent;
399
+ bizDispatchers = topo.store.getModelDispatchers('topoBizMod');
400
+ _context.next = 8;
401
+ return bizDispatchers.setAttrsAndMetrics(ciDatas);
413
402
 
414
- case 5:
415
- _context.next = 7;
403
+ case 8:
404
+ _context.next = 10;
416
405
  return _DictCache["default"].init();
417
406
 
418
- case 7:
419
- // 需要查询的指标列表
420
- codes = this.getResourceMetricCodes();
421
- param = {
422
- ciId: nodeIdsList,
423
- codes: codes,
424
- // 过滤掉不需要查询的
425
- relationId: this.getEdges().map(function (edge) {
426
- return {
427
- ciId: edge.id,
428
- operation: edge.operation
429
- };
430
- })
431
- };
432
- /**
433
- * 链路属性适配
434
- * @param {*} data
435
- * @returns
436
- */
437
-
438
- _context.next = 11;
439
- return _topo["default"].ciInfo.batchQueryCiInfo(param);
407
+ case 10:
408
+ this.updateTagsTips();
440
409
 
441
410
  case 11:
442
- result = _context.sent;
443
- return _context.abrupt("return", result.map(function (data) {
444
- var list2map = function list2map(list) {
445
- var map = {};
446
- (list || []).forEach(function (item) {
447
- map[item.code] = item.value;
448
- });
449
- return map;
450
- };
451
-
452
- var resultData = (0, _extends2["default"])({}, data, {
453
- attributeMap: list2map(data.attributes),
454
- metricMap: list2map(data.metrics)
455
- });
456
- resultData = transformLinkData(resultData); // 特殊处理:ipv6 从ipv6_address_list取第一个
457
-
458
- // 特殊处理:ipv6 从ipv6_address_list取第一个
459
- if (resultData.attributeMap.ipv6_address_list && !resultData.attributeMap.ipv6_address) {
460
- resultData.attributeMap.ipv6_address = (resultData.attributeMap.ipv6_address_list || '').split(',')[0];
461
- }
462
-
463
- return resultData;
464
- }));
465
-
466
- case 13:
467
411
  case "end":
468
412
  return _context.stop();
469
413
  }
@@ -471,16 +415,17 @@ var AttributeMetricDisplay = /*#__PURE__*/function () {
471
415
  }, _callee, this);
472
416
  }));
473
417
 
474
- function fetchData() {
475
- return _fetchData.apply(this, arguments);
418
+ function loadData(_x) {
419
+ return _loadData.apply(this, arguments);
476
420
  }
477
421
 
478
- return fetchData;
422
+ return loadData;
479
423
  }()
480
424
  /**
481
425
  * 加载标注、悬浮框数据
426
+ * 业务拓扑使用
482
427
  *
483
- * @param {array} data
428
+ * @param {array<{id, attributes: [], attributeMap: {}, metrics: [], metricMap: {}}>} data
484
429
  */
485
430
  ;
486
431
 
@@ -488,40 +433,14 @@ var AttributeMetricDisplay = /*#__PURE__*/function () {
488
433
  /*#__PURE__*/
489
434
  function () {
490
435
  var _loadAttributeAndMetric = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee2(data) {
491
- var topo, ciDatas, bizDispatchers;
492
436
  return _regenerator["default"].wrap(function _callee2$(_context2) {
493
437
  while (1) {
494
438
  switch (_context2.prev = _context2.next) {
495
439
  case 0:
496
- // rlog.debug('AttributeMetricDisplay.loadAttributeAndMetric', data);
497
- topo = this.topo; // 设置ciType
440
+ _context2.next = 2;
441
+ return this.loadData(data);
498
442
 
499
- ciDatas = data.filter(function (item) {
500
- // 过滤不存在的ci,解决编辑模式删除资源后切换到显示模式报错
501
- return !!topo.dataModel.getDataById(item.id);
502
- }).map(function (item) {
503
- return (0, _extends2["default"])({
504
- ciType: topo.dataModel.getDataById(item.id).ciType
505
- }, item);
506
- }); // 翻译引用属性
507
-
508
- _context2.next = 4;
509
- return this.translateRefAttribute(ciDatas);
510
-
511
- case 4:
512
- ciDatas = _context2.sent;
513
- bizDispatchers = topo.store.getModelDispatchers('topoBizMod');
514
- _context2.next = 8;
515
- return bizDispatchers.setAttrsAndMetrics(ciDatas);
516
-
517
- case 8:
518
- _context2.next = 10;
519
- return _DictCache["default"].init();
520
-
521
- case 10:
522
- this.updateTagsTips();
523
-
524
- case 11:
443
+ case 2:
525
444
  case "end":
526
445
  return _context2.stop();
527
446
  }
@@ -529,7 +448,7 @@ var AttributeMetricDisplay = /*#__PURE__*/function () {
529
448
  }, _callee2, this);
530
449
  }));
531
450
 
532
- function loadAttributeAndMetric(_x) {
451
+ function loadAttributeAndMetric(_x2) {
533
452
  return _loadAttributeAndMetric.apply(this, arguments);
534
453
  }
535
454
 
@@ -537,7 +456,7 @@ var AttributeMetricDisplay = /*#__PURE__*/function () {
537
456
  }()
538
457
  /**
539
458
  * 临时由前端翻译引用属性名称
540
- * @param {array} ciDatas
459
+ * @param {array<{id, ciType, attributeMap: {}, ...}>} ciDatas
541
460
  * @returns
542
461
  */
543
462
  ;
@@ -548,7 +467,7 @@ var AttributeMetricDisplay = /*#__PURE__*/function () {
548
467
  var _translateRefAttribute = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee3(ciDatas) {
549
468
  var _this5 = this;
550
469
 
551
- var refIdMap, ciRefAttributeMap, refIds, refCis, refCiMap;
470
+ var refIdMap, ciRefAttributeMap, refIds, refCiMap;
552
471
  return _regenerator["default"].wrap(function _callee3$(_context3) {
553
472
  while (1) {
554
473
  switch (_context3.prev = _context3.next) {
@@ -594,11 +513,10 @@ var AttributeMetricDisplay = /*#__PURE__*/function () {
594
513
 
595
514
  case 6:
596
515
  _context3.next = 8;
597
- return (0, _services.queryCisByIds)(refIds);
516
+ return this.topo.ciCache.load(refIds);
598
517
 
599
518
  case 8:
600
- refCis = _context3.sent;
601
- refCiMap = (0, _lodash.keyBy)(refCis, 'id');
519
+ refCiMap = _context3.sent;
602
520
 
603
521
  _rlog["default"].debug('translateRefAttribute', {
604
522
  ciRefAttributeMap: ciRefAttributeMap,
@@ -624,15 +542,15 @@ var AttributeMetricDisplay = /*#__PURE__*/function () {
624
542
  });
625
543
  }));
626
544
 
627
- case 12:
545
+ case 11:
628
546
  case "end":
629
547
  return _context3.stop();
630
548
  }
631
549
  }
632
- }, _callee3);
550
+ }, _callee3, this);
633
551
  }));
634
552
 
635
- function translateRefAttribute(_x2) {
553
+ function translateRefAttribute(_x3) {
636
554
  return _translateRefAttribute.apply(this, arguments);
637
555
  }
638
556
 
@@ -653,8 +571,8 @@ var AttributeMetricDisplay = /*#__PURE__*/function () {
653
571
 
654
572
  var elementTagsAndTips = this.buildTagsTips() // 开锁状态下禁用悬停展示悬浮框
655
573
  .map(function (item) {
656
- var _topo$store$getModelS2 = topo.store.getModelState('lock'),
657
- lock = _topo$store$getModelS2.lock;
574
+ var _topo$store$getModelS = topo.store.getModelState('lock'),
575
+ lock = _topo$store$getModelS.lock;
658
576
 
659
577
  return lock ? item : (0, _extends2["default"])({}, item, {
660
578
  tips: []
@@ -53,8 +53,10 @@ var _ElementTagTipConfig = _interopRequireDefault(require("./tagstips/ElementTag
53
53
 
54
54
  var _SelectionModel = _interopRequireDefault(require("./SelectionModel"));
55
55
 
56
+ var _CiCache = _interopRequireDefault(require("./cache/CiCache"));
57
+
56
58
  // eslint-disable-next-line no-undef
57
- var version = typeof "9.0.0-a.1" === 'string' ? "9.0.0-a.1" : null;
59
+ var version = typeof "9.0.0-a.10" === 'string' ? "9.0.0-a.10" : null;
58
60
  console.info("\u62D3\u6251\u7248\u672C: " + version);
59
61
  /**
60
62
  * 拓扑显示和编辑
@@ -74,6 +76,7 @@ var Topo = /*#__PURE__*/function () {
74
76
  this.CiTypeCache = _CiTypeCache["default"];
75
77
  this.ciTyeCache = _CiTypeCache["default"];
76
78
  this.dictCache = _DictCache["default"];
79
+ this.ciCache = _CiCache["default"];
77
80
  this.elementTagTipConfig = new _ElementTagTipConfig["default"](this);
78
81
  this.test = void 0;
79
82
  this.uid = void 0;
@@ -10,8 +10,6 @@ var _rlog = _interopRequireDefault(require("@riil-frontend/component-topology-ut
10
10
 
11
11
  var _utils = require("@riil-frontend/utils");
12
12
 
13
- var _topoData = require("../../../utils/topoData");
14
-
15
13
  var _DictCache = _interopRequireDefault(require("../cache/DictCache"));
16
14
 
17
15
  /**
@@ -66,14 +64,14 @@ var AttributeFormatter = /*#__PURE__*/function () {
66
64
  };
67
65
 
68
66
  _proto.commonTransform = function commonTransform(item, ciData, attrType) {
69
- var _findItem;
70
-
71
67
  var fieldCode = item.code;
72
68
  var fieldMeta = this.topo.ciTyeCache.getCiType(ciData.ciType)[attrType + "Map"][fieldCode];
73
- var fieldValue = ciData[attrType + "Map"][fieldCode] || ((_findItem = (0, _topoData.findItem)(ciData[attrType + "s"], 'code', fieldCode)) === null || _findItem === void 0 ? void 0 : _findItem.value);
69
+ var fieldValue = (ciData[attrType + "Map"] || ciData[attrType + "s"])[fieldCode]; // 引用属性
74
70
 
75
- if (ciData[attrType + "Map"][fieldCode + "_object"]) {
76
- fieldValue = ciData[attrType + "Map"][fieldCode + "_object"].displayName;
71
+ if (attrType === 'attribute') {
72
+ if (ciData[attrType + "Map"][fieldCode + "_object"]) {
73
+ fieldValue = ciData[attrType + "Map"][fieldCode + "_object"].displayName;
74
+ }
77
75
  }
78
76
 
79
77
  return {