@riil-frontend/component-topology 12.0.0-dev.3 → 12.0.0-dev.31

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 (228) hide show
  1. package/build/1.js +1 -1
  2. package/build/index.css +1 -1
  3. package/build/index.js +13 -13
  4. package/es/components/BatchAttrMetric/setting.js +1 -1
  5. package/es/components/ModelAttrSelectDrawer/components/MultipleTypeAttributeSelectDrawer.js +1 -1
  6. package/es/components/ResourceSelectDrawer/ResourceSelectDrawer.js +1 -1
  7. package/es/components/TemplateButton/index.module.scss +1 -1
  8. package/es/core/components/AlarmListPanel/components/AlarmListItem.js +58 -3
  9. package/es/core/components/AlarmListPanel/index.js +1 -1
  10. package/es/core/components/DisplaySettingDrawer/DisplaySetting.js +1 -1
  11. package/es/core/components/DisplaySettingDrawer/DisplaySettingDrawer.js +2 -2
  12. package/es/core/components/DisplaySettingDrawer/ResourceDisplay/BasicConfig.js +1 -1
  13. package/es/core/components/DisplaySettingDrawer/components/NodeAttrSettingDrawer.js +1 -1
  14. package/es/core/components/ResourceViewAttributeSetting/Setting.js +1 -1
  15. package/es/core/components/TopoView/topoView.js +6 -2
  16. package/es/core/editor/components/BackgroundView/index.js +1 -1
  17. package/es/core/editor/components/CustomIconPlugin/UploadIconDialog.js +1 -1
  18. package/es/core/editor/components/EditorPlugin.js +1 -1
  19. package/es/core/editor/components/Sidebar/views/ComponentPanel.js +1 -1
  20. package/es/core/editor/components/Sidebar/views/ImagePanel/CiTypeImagePanel.js +1 -1
  21. package/es/core/editor/components/Sidebar/views/ImagePanel/CustomImagePanel.js +1 -1
  22. package/es/core/editor/components/Sidebar/views/ImagePanel/HtCustomImagePanel.js +1 -1
  23. package/es/core/editor/components/Sidebar/views/ImagePanel/HtImagePalette.js +1 -1
  24. package/es/core/editor/components/Sidebar/views/ImagePanel/ImagePalette.js +1 -1
  25. package/es/core/editor/components/Sidebar/views/LinkPanel.js +1 -1
  26. package/es/core/editor/components/Toolbar/widgets/EdgeColorButton/EdgeColorButton.js +5 -12
  27. package/es/core/editor/components/Toolbar/widgets/EdgeTypeButton/EdgeType.js +27 -10
  28. package/es/core/editor/components/Toolbar/widgets/EdgeTypeButton/EdgeType.module.scss +21 -1
  29. package/es/core/editor/components/Toolbar/widgets/EdgeTypeButton/LineType.js +9 -0
  30. package/es/core/editor/components/Toolbar/widgets/EdgeTypeButton/index.js +2 -2
  31. package/es/core/editor/components/Toolbar/widgets/Layout/index.js +16 -2
  32. package/es/core/editor/components/settings/common/NodeSizeInput/NodeSizeInput.js +1 -1
  33. package/es/core/editor/components/settings/common/SizeInput/NodeSizeInput.js +1 -1
  34. package/es/core/editor/components/settings/propertyViews/layer/BasicSetting.js +1 -1
  35. package/es/core/editor/components/settings/propertyViews/layer/SettingTab/Setting.js +1 -1
  36. package/es/core/editor/components/settings/propertyViews/view/hooks/useBackgroundSizeConfig.js +1 -1
  37. package/es/core/editor/hooks/useKeyboardShortcut.js +3 -1
  38. package/es/core/editor/store/background.js +1 -1
  39. package/es/core/editor/store/historyManager.js +1 -1
  40. package/es/core/editor/store/topoEdit.js +1 -1
  41. package/es/core/editor/utils/copyElementUtil.js +12 -0
  42. package/es/core/editor/utils/edgeTypeStyleUtil.js +8 -7
  43. package/es/core/hooks/__tests__/useCiAttributeChange.test.js +0 -0
  44. package/es/core/hooks/ht/useHtDataPropertyChangeListener.js +1 -1
  45. package/es/core/hooks/useAlarm.js +119 -82
  46. package/es/core/hooks/useCiAttributeChange.js +31 -15
  47. package/es/core/hooks/useCmpLinkAlarm.js +153 -0
  48. package/es/core/hooks/useEventData.js +1 -2
  49. package/es/core/hooks/useGraphAlarmDisplay.js +91 -56
  50. package/es/core/hooks/useManageStatus.js +1 -1
  51. package/es/core/hooks/usePolling.js +1 -1
  52. package/es/core/hooks/useResourceConfig.js +1 -3
  53. package/es/core/hooks/useTopoEdit.js +51 -54
  54. package/es/core/models/Alarm.js +70 -143
  55. package/es/core/models/AttributeMetricDisplay.js +15 -6
  56. package/es/core/models/HistoryManager.js +1 -1
  57. package/es/core/models/SelectionModel.js +1 -1
  58. package/es/core/models/TopoApp.js +2 -2
  59. package/es/core/models/attributeFormatter/formatter/graphTransform.js +1 -1
  60. package/es/core/models/attributeFormatter/index.js +1 -1
  61. package/es/core/models/cache/CiCache.d.ts +1 -1
  62. package/es/core/models/cache/CiCache.js +3 -3
  63. package/es/core/models/cache/CiTypeCache.js +5 -1
  64. package/es/core/models/cache/DictCache.js +1 -1
  65. package/es/core/models/plugins/resourceWebControllUrl.js +1 -1
  66. package/es/core/models/tagstips/ElementTagTipConfig.js +1 -1
  67. package/es/core/models/topoData.js +0 -1
  68. package/es/core/services/alarm.js +1 -1
  69. package/es/core/services/index.js +1 -1
  70. package/es/core/services/topo/basic.js +2 -2
  71. package/es/core/store/models/customIcon.js +1 -1
  72. package/es/core/store/models/displayConfig.js +1 -1
  73. package/es/core/store/models/selection.js +1 -1
  74. package/es/core/store/models/topoBaseInfoOverview.js +1 -1
  75. package/es/core/store/models/topoBizMod.js +1 -1
  76. package/es/core/store/models/topoConfig.js +7 -10
  77. package/es/core/store/models/topoGraphView.js +1 -1
  78. package/es/core/store/models/topoMod.js +82 -135
  79. package/es/core/store/models/viewer/lock.js +1 -1
  80. package/es/core/store/models/viewer/resourceDetail.js +1 -1
  81. package/es/core/store/models/viewer/resourceWebControllUrlSetting.js +1 -1
  82. package/es/core/utils/edgeUtil.js +10 -1
  83. package/es/core/utils/metricUtil.js +8 -4
  84. package/es/core/utils/showGraphManageStatusUtil.js +3 -2
  85. package/es/core/utils/showMessage.js +1 -1
  86. package/es/core/viewer/components/plugins/ResourceDetail/ResourceDetail.js +1 -0
  87. package/es/core/viewer/components/plugins/ResourceDetail/components/ResourceOverview/EventsCard.js +12 -13
  88. package/es/core/viewer/components/plugins/ResourceDetail/components/ResourceOverview/ResourceOverview.js +3 -1
  89. package/es/core/viewer/components/plugins/ResourceDetail/components/ResourceOverview/components/LinkTopo/LinkTopoCard.js +4 -2
  90. package/es/core/viewer/components/plugins/ResourceDetail/components/ResourceOverview/components/LinkTopo/hooks/useMetricPolling.js +1 -1
  91. package/es/core/viewer/components/plugins/ResourceDetail/components/ResourceOverview/components/LinkTopo/services/index.js +1 -1
  92. package/es/core/viewer/components/plugins/ResourceDetail/components/ResourceOverview/hooks/useAlarmAndRiskData.js +20 -18
  93. package/es/core/viewer/components/plugins/ResourceDetail/components/WebConsole/WebConsoleForm/hooks/useWebConsole.js +1 -1
  94. package/es/core/viewer/components/plugins/ViewerPlugin.js +3 -1
  95. package/es/core/viewer/components/titlebar/widgets/AlarmButton.js +1 -5
  96. package/es/networkTopo/components/Link/index.js +1 -1
  97. package/es/networkTopo/components/TopoView.js +6 -11
  98. package/es/networkTopo/hooks/useEdgeExpand.js +2 -3
  99. package/es/networkTopo/hooks/viewer/useRelateTopo.js +1 -1
  100. package/es/networkTopo/models/LinkDynamicStyleExecutor.js +1 -1
  101. package/es/networkTopo/models/LinkTagsTipsBuilder.js +1 -1
  102. package/es/networkTopo/models/TopoCenter.js +1 -1
  103. package/es/networkTopo/services/model.js +1 -1
  104. package/es/networkTopo/services/topo/basic.js +4 -4
  105. package/es/networkTopo/services/topo/ciInfo.js +1 -1
  106. package/es/networkTopo/store/functionAuth.js +1 -1
  107. package/es/networkTopo/store/topoCenter.js +261 -224
  108. package/es/networkTopo/store/topoTreeMod.js +1 -1
  109. package/es/networkTopo/utils/exportData.js +1 -1
  110. package/es/style.js +2 -2
  111. package/es/utils/ResourceConfigUtil.js +4 -37
  112. package/es/utils/ciRefAttributeTranslateUtil.d.ts +19 -0
  113. package/es/utils/ciRefAttributeTranslateUtil.js +155 -0
  114. package/es/utils/format.js +1 -1
  115. package/es/utils/topoData.js +4 -2
  116. package/lib/components/BatchAttrMetric/setting.js +2 -2
  117. package/lib/components/ModelAttrSelectDrawer/components/MultipleTypeAttributeSelectDrawer.js +2 -2
  118. package/lib/components/ResourceSelectDrawer/ResourceSelectDrawer.js +2 -2
  119. package/lib/components/TemplateButton/index.module.scss +1 -1
  120. package/lib/core/components/AlarmListPanel/components/AlarmListItem.js +60 -3
  121. package/lib/core/components/AlarmListPanel/index.js +1 -1
  122. package/lib/core/components/DisplaySettingDrawer/DisplaySetting.js +2 -2
  123. package/lib/core/components/DisplaySettingDrawer/DisplaySettingDrawer.js +2 -2
  124. package/lib/core/components/DisplaySettingDrawer/ResourceDisplay/BasicConfig.js +3 -3
  125. package/lib/core/components/DisplaySettingDrawer/components/NodeAttrSettingDrawer.js +2 -2
  126. package/lib/core/components/ResourceViewAttributeSetting/Setting.js +2 -2
  127. package/lib/core/components/TopoView/topoView.js +14 -10
  128. package/lib/core/editor/components/BackgroundView/index.js +3 -3
  129. package/lib/core/editor/components/CustomIconPlugin/UploadIconDialog.js +2 -2
  130. package/lib/core/editor/components/EditorPlugin.js +3 -3
  131. package/lib/core/editor/components/Sidebar/views/ComponentPanel.js +2 -4
  132. package/lib/core/editor/components/Sidebar/views/ImagePanel/CiTypeImagePanel.js +1 -1
  133. package/lib/core/editor/components/Sidebar/views/ImagePanel/CustomImagePanel.js +1 -1
  134. package/lib/core/editor/components/Sidebar/views/ImagePanel/HtCustomImagePanel.js +2 -2
  135. package/lib/core/editor/components/Sidebar/views/ImagePanel/HtImagePalette.js +2 -2
  136. package/lib/core/editor/components/Sidebar/views/ImagePanel/ImagePalette.js +2 -4
  137. package/lib/core/editor/components/Sidebar/views/LinkPanel.js +2 -4
  138. package/lib/core/editor/components/Toolbar/widgets/EdgeColorButton/EdgeColorButton.js +6 -12
  139. package/lib/core/editor/components/Toolbar/widgets/EdgeTypeButton/EdgeType.js +27 -9
  140. package/lib/core/editor/components/Toolbar/widgets/EdgeTypeButton/EdgeType.module.scss +21 -1
  141. package/lib/core/editor/components/Toolbar/widgets/EdgeTypeButton/LineType.js +8 -0
  142. package/lib/core/editor/components/Toolbar/widgets/EdgeTypeButton/index.js +1 -1
  143. package/lib/core/editor/components/Toolbar/widgets/Layout/index.js +16 -2
  144. package/lib/core/editor/components/settings/common/NodeSizeInput/NodeSizeInput.js +5 -5
  145. package/lib/core/editor/components/settings/common/SizeInput/NodeSizeInput.js +1 -1
  146. package/lib/core/editor/components/settings/propertyViews/layer/BasicSetting.js +1 -1
  147. package/lib/core/editor/components/settings/propertyViews/layer/SettingTab/Setting.js +3 -3
  148. package/lib/core/editor/components/settings/propertyViews/view/hooks/useBackgroundSizeConfig.js +2 -2
  149. package/lib/core/editor/hooks/useKeyboardShortcut.js +2 -0
  150. package/lib/core/editor/store/background.js +1 -1
  151. package/lib/core/editor/store/historyManager.js +1 -1
  152. package/lib/core/editor/store/topoEdit.js +1 -1
  153. package/lib/core/editor/utils/copyElementUtil.js +15 -0
  154. package/lib/core/editor/utils/edgeTypeStyleUtil.js +8 -6
  155. package/lib/core/hooks/__tests__/useCiAttributeChange.test.js +1 -0
  156. package/lib/core/hooks/ht/useHtDataPropertyChangeListener.js +1 -3
  157. package/lib/core/hooks/useAlarm.js +118 -80
  158. package/lib/core/hooks/useCiAttributeChange.js +30 -14
  159. package/lib/core/hooks/useCmpLinkAlarm.js +166 -0
  160. package/lib/core/hooks/useEventData.js +1 -2
  161. package/lib/core/hooks/useGraphAlarmDisplay.js +91 -55
  162. package/lib/core/hooks/useManageStatus.js +1 -1
  163. package/lib/core/hooks/usePolling.js +3 -3
  164. package/lib/core/hooks/useResourceConfig.js +1 -3
  165. package/lib/core/hooks/useTopoEdit.js +50 -53
  166. package/lib/core/models/Alarm.js +77 -152
  167. package/lib/core/models/AttributeMetricDisplay.js +18 -6
  168. package/lib/core/models/HistoryManager.js +8 -8
  169. package/lib/core/models/SelectionModel.js +5 -5
  170. package/lib/core/models/TopoApp.js +4 -6
  171. package/lib/core/models/attributeFormatter/formatter/graphTransform.js +2 -4
  172. package/lib/core/models/attributeFormatter/index.js +1 -1
  173. package/lib/core/models/cache/CiCache.d.ts +1 -1
  174. package/lib/core/models/cache/CiCache.js +3 -3
  175. package/lib/core/models/cache/CiTypeCache.js +6 -2
  176. package/lib/core/models/cache/DictCache.js +2 -2
  177. package/lib/core/models/plugins/resourceWebControllUrl.js +2 -2
  178. package/lib/core/models/tagstips/ElementTagTipConfig.js +2 -2
  179. package/lib/core/models/topoData.js +0 -1
  180. package/lib/core/services/alarm.js +2 -2
  181. package/lib/core/services/index.js +1 -1
  182. package/lib/core/services/topo/basic.js +2 -2
  183. package/lib/core/store/models/customIcon.js +3 -3
  184. package/lib/core/store/models/displayConfig.js +1 -1
  185. package/lib/core/store/models/selection.js +1 -1
  186. package/lib/core/store/models/topoBaseInfoOverview.js +1 -1
  187. package/lib/core/store/models/topoBizMod.js +1 -1
  188. package/lib/core/store/models/topoConfig.js +7 -10
  189. package/lib/core/store/models/topoGraphView.js +1 -1
  190. package/lib/core/store/models/topoMod.js +89 -142
  191. package/lib/core/store/models/viewer/lock.js +1 -1
  192. package/lib/core/store/models/viewer/resourceDetail.js +1 -1
  193. package/lib/core/store/models/viewer/resourceWebControllUrlSetting.js +1 -1
  194. package/lib/core/utils/edgeUtil.js +12 -1
  195. package/lib/core/utils/metricUtil.js +8 -4
  196. package/lib/core/utils/showGraphManageStatusUtil.js +3 -2
  197. package/lib/core/utils/showMessage.js +2 -2
  198. package/lib/core/viewer/components/plugins/ResourceDetail/ResourceDetail.js +1 -0
  199. package/lib/core/viewer/components/plugins/ResourceDetail/components/ResourceOverview/EventsCard.js +12 -13
  200. package/lib/core/viewer/components/plugins/ResourceDetail/components/ResourceOverview/ResourceOverview.js +3 -1
  201. package/lib/core/viewer/components/plugins/ResourceDetail/components/ResourceOverview/components/LinkTopo/LinkTopoCard.js +4 -2
  202. package/lib/core/viewer/components/plugins/ResourceDetail/components/ResourceOverview/components/LinkTopo/hooks/useMetricPolling.js +6 -6
  203. package/lib/core/viewer/components/plugins/ResourceDetail/components/ResourceOverview/components/LinkTopo/services/index.js +3 -5
  204. package/lib/core/viewer/components/plugins/ResourceDetail/components/ResourceOverview/hooks/useAlarmAndRiskData.js +20 -18
  205. package/lib/core/viewer/components/plugins/ResourceDetail/components/WebConsole/WebConsoleForm/hooks/useWebConsole.js +2 -2
  206. package/lib/core/viewer/components/plugins/ViewerPlugin.js +3 -1
  207. package/lib/core/viewer/components/titlebar/widgets/AlarmButton.js +1 -5
  208. package/lib/networkTopo/components/Link/index.js +2 -2
  209. package/lib/networkTopo/components/TopoView.js +5 -14
  210. package/lib/networkTopo/hooks/useEdgeExpand.js +2 -3
  211. package/lib/networkTopo/hooks/viewer/useRelateTopo.js +4 -4
  212. package/lib/networkTopo/models/LinkDynamicStyleExecutor.js +3 -5
  213. package/lib/networkTopo/models/LinkTagsTipsBuilder.js +3 -3
  214. package/lib/networkTopo/models/TopoCenter.js +1 -1
  215. package/lib/networkTopo/services/model.js +1 -3
  216. package/lib/networkTopo/services/topo/basic.js +4 -6
  217. package/lib/networkTopo/services/topo/ciInfo.js +0 -2
  218. package/lib/networkTopo/store/functionAuth.js +1 -1
  219. package/lib/networkTopo/store/topoCenter.js +263 -226
  220. package/lib/networkTopo/store/topoTreeMod.js +5 -5
  221. package/lib/networkTopo/utils/exportData.js +1 -3
  222. package/lib/style.js +2 -2
  223. package/lib/utils/ResourceConfigUtil.js +4 -39
  224. package/lib/utils/ciRefAttributeTranslateUtil.d.ts +19 -0
  225. package/lib/utils/ciRefAttributeTranslateUtil.js +168 -0
  226. package/lib/utils/format.js +1 -1
  227. package/lib/utils/topoData.js +4 -2
  228. package/package.json +4 -4
@@ -15,129 +15,167 @@ var _useGraphAlarmDisplay = _interopRequireDefault(require("./useGraphAlarmDispl
15
15
 
16
16
  var _useTopoEventListener = _interopRequireDefault(require("./useTopoEventListener"));
17
17
 
18
+ // 告警在活状态
19
+ var showAlarmStatus = ["toDeal", "dealing", "change", "woDealing"];
18
20
  /**
19
- *
20
- *
21
- * @param {*} options
21
+ * 告警是否在活
22
+ * @param {*} alarm
23
+ * @returns
22
24
  */
23
- function useAlarm(options) {
24
- var topo = options.topo;
25
- var store = topo.store;
26
25
 
27
- var _topo$store$useModelS = topo.store.useModelState('displayConfig'),
28
- alarmSwitch = _topo$store$useModelS.alarmSwitch,
29
- alarmListDefaultOpen = _topo$store$useModelS.alarmListDefaultOpen;
26
+ var isAlarmAlive = function isAlarmAlive(alarm) {
27
+ return showAlarmStatus.indexOf(alarm.status) >= 0;
28
+ };
30
29
 
31
- (0, _useGraphAlarmDisplay["default"])({
32
- topo: topo,
33
- alarmSwitch: alarmSwitch
34
- });
30
+ var handleRiskData = function handleRiskData(topo, receivedData) {
31
+ var _risks, _topo$viewProps, _topo$viewProps2;
35
32
 
36
- var handleRiskData = function handleRiskData(receivedData) {
37
- var _risks, _topo$viewProps, _topo$viewProps2;
33
+ // 非在活状态:
34
+ // 已修复 recovered
35
+ // 已关闭 closed
36
+ var prevRisks = topo.store.getModelState('topoAlarm').risks;
38
37
 
39
- // 非在活状态:
40
- // 已修复 recovered
41
- // 已关闭 closed
42
- var prevRisks = topo.store.getModelState('topoAlarm').risks;
38
+ var isLiveRisk = function isLiveRisk(data) {
39
+ return ['recovered', 'closed'].indexOf(data.status) === -1;
40
+ };
43
41
 
44
- var isLiveRisk = function isLiveRisk(data) {
45
- return ['recovered', 'closed'].indexOf(data.status) === -1;
46
- };
42
+ var hasCiPermission = function hasCiPermission(data) {
43
+ var _data$resourceId;
47
44
 
48
- var hasCiPermission = function hasCiPermission(data) {
49
- var _data$resourceId;
45
+ var ciId = (_data$resourceId = data.resourceId) !== null && _data$resourceId !== void 0 ? _data$resourceId : data.ciId;
46
+ var ci = topo.dataModel.getDataById(ciId);
47
+ return !!(ci !== null && ci !== void 0 && ci.operation);
48
+ }; // 合并
50
49
 
51
- var ciId = (_data$resourceId = data.resourceId) !== null && _data$resourceId !== void 0 ? _data$resourceId : data.ciId;
52
- var ci = topo.dataModel.getDataById(ciId);
53
- return ci && ci.operation;
54
- }; // 合并
55
50
 
51
+ var risks = prevRisks.map(function (risk) {
52
+ var newRisk = receivedData.find(function (item) {
53
+ return item.id === risk.id;
54
+ });
55
+ return newRisk || risk;
56
+ }); // 新的
56
57
 
57
- var risks = prevRisks.map(function (risk) {
58
- var newRisk = receivedData.find(function (item) {
59
- return item.id === risk.id;
60
- });
61
- return newRisk || risk;
62
- }); // 新的
58
+ var addRisks = receivedData.filter(function (risk) {
59
+ return !prevRisks.find(function (item) {
60
+ return item.id === risk.id;
61
+ });
62
+ }).filter(hasCiPermission);
63
63
 
64
- var addRisks = receivedData.filter(function (risk) {
65
- return !prevRisks.find(function (item) {
66
- return item.id === risk.id;
67
- });
68
- }).filter(hasCiPermission);
64
+ (_risks = risks).push.apply(_risks, addRisks); // 过滤掉无权限、非在活的
69
65
 
70
- (_risks = risks).push.apply(_risks, addRisks); // 过滤掉无权限、非在活的
71
66
 
67
+ risks = risks.filter(isLiveRisk).filter(hasCiPermission).sort(function (a, b) {
68
+ return a.executeTime - b.executeTime;
69
+ });
72
70
 
73
- risks = risks.filter(isLiveRisk).filter(hasCiPermission).sort(function (a, b) {
74
- return a.executeTime - b.executeTime;
75
- });
71
+ _rlog["default"].debug('更新风险', {
72
+ prevRisks: prevRisks,
73
+ receivedData: receivedData,
74
+ risks: risks
75
+ });
76
+
77
+ topo.store.getModelDispatchers('topoAlarm').update({
78
+ risks: risks
79
+ }); // 获取配置
80
+
81
+ var _topo$store$getModelS = topo.store.getModelState('displayConfig'),
82
+ alarmSwitch = _topo$store$getModelS.alarmSwitch,
83
+ alarmListDefaultOpen = _topo$store$getModelS.alarmListDefaultOpen; // 告警静默
76
84
 
77
- _rlog["default"].debug('更新风险', {
78
- prevRisks: prevRisks,
79
- receivedData: receivedData,
80
- risks: risks
81
- });
82
85
 
83
- topo.store.getModelDispatchers('topoAlarm').update({
84
- risks: risks
86
+ if (alarmSwitch === false) {
87
+ return;
88
+ } // 告警列表
89
+
90
+
91
+ if (addRisks.length && alarmListDefaultOpen) {
92
+ topo.alarm.updateState({
93
+ alarmPanelIsOpen: true
85
94
  });
95
+ }
86
96
 
87
- if (alarmSwitch === false) {
88
- // 告警静默
89
- return;
90
- }
97
+ if ((_topo$viewProps = topo.viewProps) !== null && _topo$viewProps !== void 0 && _topo$viewProps.onRisk) {
98
+ topo.viewProps.onRisk(risks);
99
+ }
91
100
 
92
- if (addRisks.length && alarmListDefaultOpen) {
93
- topo.alarm.updateState({
94
- alarmPanelIsOpen: true
95
- });
96
- }
101
+ if ((_topo$viewProps2 = topo.viewProps) !== null && _topo$viewProps2 !== void 0 && _topo$viewProps2.onResourceEvent) {
102
+ topo.viewProps.onResourceEvent(topo.alarm.getEvents());
103
+ }
104
+ };
105
+
106
+ var handleRelateTopoAlarm = function handleRelateTopoAlarm(topo, data) {
107
+ var relateTopoAlarm = (0, _extends2["default"])({}, topo.store.getModelState('topoAlarm').relateTopoAlarm);
108
+ data.forEach(function (item) {
109
+ relateTopoAlarm[item.topoId] = item.alertLevel;
110
+ });
111
+ topo.store.getModelDispatchers('topoAlarm').update({
112
+ relateTopoAlarm: relateTopoAlarm
113
+ });
114
+
115
+ _rlog["default"].debug("\u5173\u8054\u62D3\u6251\u544A\u8B66\uFF1A\u6536\u5230 " + data.length, {
116
+ received: data,
117
+ all: relateTopoAlarm
118
+ });
119
+ };
120
+ /**
121
+ * 处理分级告警
122
+ * @param {*} alarms
123
+ * @returns
124
+ */
97
125
 
98
- if ((_topo$viewProps = topo.viewProps) !== null && _topo$viewProps !== void 0 && _topo$viewProps.onRisk) {
99
- topo.viewProps.onRisk(risks);
100
- }
101
126
 
102
- if ((_topo$viewProps2 = topo.viewProps) !== null && _topo$viewProps2 !== void 0 && _topo$viewProps2.onResourceEvent) {
103
- topo.viewProps.onResourceEvent(topo.alarm.getEvents());
127
+ function convertAlarmData(alarms) {
128
+ return alarms.map(function (alarm) {
129
+ var resourceId = alarm.resourceId; // 分级资源id转换
130
+
131
+ if (alarm.cmpAlertId) {
132
+ resourceId = "sub:" + alarm.mainCiId;
104
133
  }
105
- };
106
134
 
107
- var handleRelateTopoAlarm = function handleRelateTopoAlarm(data) {
108
- var relateTopoAlarm = (0, _extends2["default"])({}, topo.store.getModelState('topoAlarm').relateTopoAlarm);
109
- data.forEach(function (item) {
110
- relateTopoAlarm[item.topoId] = item.alertLevel;
111
- });
112
- topo.store.getModelDispatchers('topoAlarm').update({
113
- relateTopoAlarm: relateTopoAlarm
135
+ return (0, _extends2["default"])({}, alarm, {
136
+ // 数据id
137
+ resourceId: resourceId,
138
+ // 是否在活
139
+ alive: isAlarmAlive(alarm)
114
140
  });
141
+ });
142
+ }
143
+ /**
144
+ *
145
+ *
146
+ * @param {*} options
147
+ */
115
148
 
116
- _rlog["default"].debug("\u5173\u8054\u62D3\u6251\u544A\u8B66\uFF1A\u6536\u5230 " + data.length, {
117
- received: data,
118
- all: relateTopoAlarm
119
- });
120
- }; // 订阅消息
121
149
 
150
+ function useAlarm(options) {
151
+ var topo = options.topo;
152
+
153
+ var _topo$store$useModelS = topo.store.useModelState('displayConfig'),
154
+ alarmSwitch = _topo$store$useModelS.alarmSwitch;
155
+
156
+ (0, _useGraphAlarmDisplay["default"])({
157
+ topo: topo,
158
+ alarmSwitch: alarmSwitch
159
+ }); // 订阅消息
122
160
 
123
161
  (0, _useTopoEventListener["default"])({
124
162
  type: 'alarm',
125
163
  onMessage: function onMessage(data) {
126
164
  _rlog["default"].debug("Topoget--AlertMesage------------", topo, data);
127
165
 
128
- topo.alarm.handleAlarmEvent(data);
166
+ topo.alarm.handleAlarmEvent(convertAlarmData(data));
129
167
  }
130
168
  });
131
169
  (0, _useTopoEventListener["default"])({
132
170
  type: 'risk',
133
171
  onMessage: function onMessage(data) {
134
- handleRiskData(data);
172
+ handleRiskData(topo, data);
135
173
  }
136
174
  });
137
175
  (0, _useTopoEventListener["default"])({
138
176
  type: 'relateTopoAlarm',
139
177
  onMessage: function onMessage(data) {
140
- handleRelateTopoAlarm(data);
178
+ handleRelateTopoAlarm(topo, data);
141
179
  }
142
180
  });
143
181
  }
@@ -7,15 +7,26 @@ exports["default"] = useCiAttributeChange;
7
7
 
8
8
  var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
9
9
 
10
- var _rlog = _interopRequireDefault(require("@riil-frontend/component-topology-utils/es/rlog"));
10
+ var _componentTopologyUtils = require("@riil-frontend/component-topology-utils");
11
11
 
12
12
  var _CiCache = _interopRequireDefault(require("../models/cache/CiCache"));
13
13
 
14
14
  var _useTopoEventListener = _interopRequireDefault(require("./useTopoEventListener"));
15
15
 
16
+ function ciExistTopo(topoData, ciChangeData) {
17
+ if (!topoData) {
18
+ return false;
19
+ }
20
+
21
+ var ciIds = [].concat(topoData.nodes, topoData.links, topoData.linkGroups).map(function (data) {
22
+ return data.ciId || data.id;
23
+ });
24
+ return ciIds.includes(ciChangeData.id);
25
+ }
26
+
16
27
  function mergeData(cis, ciChangeData) {
17
28
  var matchData = function matchData(item) {
18
- return item.id === ciChangeData.id || item.ciId === ciChangeData.id;
29
+ return (item.ciId || item.id) === ciChangeData.id;
19
30
  };
20
31
 
21
32
  if (!cis.find(matchData)) {
@@ -23,16 +34,25 @@ function mergeData(cis, ciChangeData) {
23
34
  }
24
35
 
25
36
  return cis.map(function (ci) {
26
- if (matchData(ci)) {
27
- return (0, _extends2["default"])({}, ci, {
28
- id: ci.id,
29
- attributes: (0, _extends2["default"])({}, ci.attributes, ciChangeData.attributes)
30
- });
37
+ if (!matchData(ci)) {
38
+ return ci;
31
39
  }
32
40
 
33
- return ci;
41
+ return (0, _extends2["default"])({}, ci, {
42
+ id: ci.id,
43
+ attributes: (0, _extends2["default"])({}, ci.attributes, ciChangeData.attributes)
44
+ });
34
45
  });
35
46
  }
47
+
48
+ function mergeTopoData(topoData, ciChangeData) {
49
+ var newData = (0, _extends2["default"])({}, topoData, {
50
+ nodes: mergeData(topoData.nodes, ciChangeData),
51
+ links: mergeData(topoData.links, ciChangeData),
52
+ linkGroups: mergeData(topoData.linkGroups, ciChangeData)
53
+ });
54
+ return newData;
55
+ }
36
56
  /**
37
57
  * 监听ci属性变更
38
58
  *
@@ -48,12 +68,8 @@ function useCiAttributeChange(props) {
48
68
  // 更新拓扑数据
49
69
  var topoData = topo.store.getModelState('topoMod').data;
50
70
 
51
- if (topoData) {
52
- var newData = (0, _extends2["default"])({}, topoData, {
53
- nodes: mergeData(topoData.nodes, ciChangeData),
54
- links: mergeData(topoData.links, ciChangeData),
55
- linkGroups: mergeData(topoData.linkGroups, ciChangeData)
56
- });
71
+ if (ciExistTopo(topoData, ciChangeData)) {
72
+ var newData = mergeTopoData(topoData, ciChangeData);
57
73
  var topoDispatchers = topo.store.getModelDispatchers('topoMod');
58
74
  topoDispatchers.update({
59
75
  data: newData
@@ -0,0 +1,166 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+
5
+ exports.__esModule = true;
6
+ exports["default"] = useCmpLinkAlarm;
7
+
8
+ var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
9
+
10
+ var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
11
+
12
+ var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
13
+
14
+ var _react = require("react");
15
+
16
+ var _ahooks = require("ahooks");
17
+
18
+ var _DictCache = _interopRequireDefault(require("../models/cache/DictCache"));
19
+
20
+ function addCmpLinkOfflineStatusForDisplayLineColor(cis, cmpLinkRunStatusList) {
21
+ return cis.map(function (ci) {
22
+ var cmpLinkRunStatusData = cmpLinkRunStatusList.find(function (item) {
23
+ return item.id === ci.id;
24
+ });
25
+
26
+ if (cmpLinkRunStatusData) {
27
+ return (0, _extends2["default"])({}, ci, {
28
+ manageStatus: cmpLinkRunStatusData.runStatus === '2' ? 0 : 3
29
+ });
30
+ }
31
+
32
+ return ci;
33
+ });
34
+ }
35
+
36
+ function getCmpLinIds(datas) {
37
+ var linkIds = datas.filter(function (item) {
38
+ return item.isSubResource && item.typeCode === 'network_link';
39
+ }).map(function (item) {
40
+ return item.ciId;
41
+ });
42
+ return linkIds;
43
+ }
44
+ /**
45
+ * 分级链路下級鏈路
46
+ * @param {*} props
47
+ * @returns
48
+ */
49
+
50
+
51
+ function useCmpLinkAlarm(props) {
52
+ var topo = props.topo,
53
+ resources = props.resources,
54
+ graphLoaded = props.graphLoaded;
55
+
56
+ var _useState = (0, _react.useState)(getCmpLinIds(resources)),
57
+ cmpLinkIds = _useState[0],
58
+ setCmpLinkIds = _useState[1];
59
+
60
+ var _useState2 = (0, _react.useState)([]),
61
+ cmpLinkRunStatus = _useState2[0],
62
+ setCmpLinkRunStatus = _useState2[1];
63
+
64
+ var cmpLinkAlarmLevels = (0, _react.useMemo)(function () {
65
+ return cmpLinkRunStatus // 3:fault:重要故障; 4:urgently:紧急故障 』为红色
66
+ .filter(function (item) {
67
+ return ['3', '4'].includes(item.runStatus);
68
+ }).map(function (item) {
69
+ return {
70
+ id: item.id,
71
+ level: 1
72
+ };
73
+ });
74
+ }, [cmpLinkRunStatus]);
75
+ (0, _react.useEffect)(function () {
76
+ var ids = getCmpLinIds(resources);
77
+
78
+ if (cmpLinkIds.join(',') !== ids.join(',')) {
79
+ setCmpLinkIds(ids);
80
+ }
81
+ }, [resources]);
82
+
83
+ function getCmpLinkRunStatus(_x) {
84
+ return _getCmpLinkRunStatus.apply(this, arguments);
85
+ } // 轮询hooks
86
+
87
+
88
+ function _getCmpLinkRunStatus() {
89
+ _getCmpLinkRunStatus = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee(ids) {
90
+ var _yield$Promise$all, ciMetricsResult;
91
+
92
+ return _regenerator["default"].wrap(function _callee$(_context) {
93
+ while (1) switch (_context.prev = _context.next) {
94
+ case 0:
95
+ if (ids.length) {
96
+ _context.next = 2;
97
+ break;
98
+ }
99
+
100
+ return _context.abrupt("return", []);
101
+
102
+ case 2:
103
+ _context.t0 = Promise;
104
+ _context.t1 = // 查询指标值
105
+ topo.serverApi.ciInfo.batchQueryCiInfo({
106
+ ciId: [],
107
+ codes: ['run_status'],
108
+ relationId: ids.map(function (id) {
109
+ return {
110
+ ciId: id,
111
+ operation: "delete"
112
+ };
113
+ })
114
+ });
115
+ _context.next = 6;
116
+ return _DictCache["default"].init();
117
+
118
+ case 6:
119
+ _context.t2 = _context.sent;
120
+ _context.t3 = [_context.t1, _context.t2];
121
+ _context.next = 10;
122
+ return _context.t0.all.call(_context.t0, _context.t3);
123
+
124
+ case 10:
125
+ _yield$Promise$all = _context.sent;
126
+ ciMetricsResult = _yield$Promise$all[0];
127
+ return _context.abrupt("return", ciMetricsResult);
128
+
129
+ case 13:
130
+ case "end":
131
+ return _context.stop();
132
+ }
133
+ }, _callee);
134
+ }));
135
+ return _getCmpLinkRunStatus.apply(this, arguments);
136
+ }
137
+
138
+ var _useRequest = (0, _ahooks.useRequest)(getCmpLinkRunStatus, {
139
+ pollingInterval: 60 * 1000,
140
+ pollingWhenHidden: false,
141
+ // debounceInterval: 200,
142
+ manual: true,
143
+ onSuccess: function onSuccess(result) {
144
+ setCmpLinkRunStatus(result.map(function (item) {
145
+ return {
146
+ id: "sub:" + item.id,
147
+ runStatus: item.metrics.run_status
148
+ };
149
+ }));
150
+ }
151
+ }),
152
+ run = _useRequest.run;
153
+
154
+ (0, _react.useEffect)(function () {
155
+ if (graphLoaded) {
156
+ run(cmpLinkIds);
157
+ }
158
+ }, [graphLoaded, cmpLinkIds]);
159
+ return {
160
+ cmpLinkRunStatus: cmpLinkRunStatus,
161
+ cmpLinkAlarmLevels: cmpLinkAlarmLevels,
162
+ addCmpLinkOfflineStatusForDisplayLineColor: addCmpLinkOfflineStatusForDisplayLineColor
163
+ };
164
+ }
165
+
166
+ ;
@@ -8,8 +8,7 @@ exports["default"] = useEventData;
8
8
  var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
9
9
 
10
10
  function useEventData(props) {
11
- var topo = props.topo;
12
- var topoDatas = topo.dataModel.useDatas();
11
+ var topo = props.topo; // const topoDatas = topo.dataModel.useDatas()
13
12
 
14
13
  var _topo$store$useModelS = topo.store.useModelState('topoAlarm'),
15
14
  risks = _topo$store$useModelS.risks,