@riil-frontend/component-topology 9.0.0-a.3 → 9.0.0-a.30

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 (103) hide show
  1. package/build/1.js +1 -1
  2. package/build/index.css +1 -1
  3. package/build/index.js +12 -12
  4. package/es/components/VerticalIconTab/VerticalIconTab.module.scss +11 -5
  5. package/es/core/components/TopoView/GraphViewPanel.js +17 -4
  6. package/es/core/components/TopoView/TopoView.module.scss +17 -3
  7. package/es/core/editor/components/BackgroundView/index.module.scss +3 -0
  8. package/es/core/editor/components/Sidebar/Sidebar.module.scss +7 -7
  9. package/es/core/editor/components/Sidebar/views/CanvasPanel/CanvasPanel.js +1 -1
  10. package/es/core/editor/components/Sidebar/views/CanvasPanel/CanvasPanel.module.scss +1 -0
  11. package/es/core/editor/components/Sidebar/views/ComponentPanel.js +1 -1
  12. package/es/core/editor/components/Sidebar/views/ImagePanel/ImagePanel.js +2 -1
  13. package/es/core/editor/components/Sidebar/views/LinkPanel.js +1 -1
  14. package/es/core/editor/components/Toolbar/widgets/EdgeTypeButton/EdgeType.js +21 -5
  15. package/es/core/editor/components/Toolbar/widgets/EdgeTypeButton/EdgeType.module.scss +5 -1
  16. package/es/core/editor/components/Toolbar/widgets/EdgeTypeButton/LineType.js +31 -12
  17. package/es/core/editor/components/Toolbar/widgets/EdgeTypeButton/LineType.module.scss +12 -2
  18. package/es/core/editor/components/Toolbar/widgets/EdgeTypeButton/index.js +6 -0
  19. package/es/core/editor/components/Toolbar/widgets/FontSizeWidget.js +1 -1
  20. package/es/core/editor/components/Toolbar/widgets/components/textStyleSetting/ElementTextStyleSetting/elements/groupTitle.js +1 -1
  21. package/es/core/editor/components/settings/core/updateElementProperty.js +6 -1
  22. package/es/core/editor/components/settings/propertyViews/group/DataTab/hoooks/useGroupRelateResource.js +4 -3
  23. package/es/core/editor/components/settings/propertyViews/node/data/BindIpInput.js +95 -0
  24. package/es/core/editor/components/settings/propertyViews/node/data/Data.js +46 -14
  25. package/es/core/editor/config/themes.js +53 -2
  26. package/es/core/event/topoEventListener.js +22 -0
  27. package/es/core/hooks/useAlarm.js +18 -12
  28. package/es/core/hooks/useCanvasTheme.js +12 -4
  29. package/es/core/hooks/useResourceConfig.js +2 -1
  30. package/es/core/hooks/useTopoEdit.js +97 -19
  31. package/es/core/hooks/useTopoEventListener.js +4 -18
  32. package/es/core/hooks/useTopoFullscreen.js +32 -0
  33. package/es/core/models/Alarm.js +4 -13
  34. package/es/core/models/TopoApp.js +1 -1
  35. package/es/core/models/topoData.js +16 -9
  36. package/es/core/models/utils/linkUtils.js +52 -27
  37. package/es/core/store/models/topoConfig.js +51 -20
  38. package/es/core/test/Test.js +52 -0
  39. package/es/core/viewer/components/plugins/ResourceDetail/components/ResourceOverview/ResourceOverview.js +11 -35
  40. package/es/core/viewer/components/plugins/ResourceDetail/components/ResourceOverview/components/LinkTopo/LinkTopo.js +14 -0
  41. package/es/core/viewer/components/plugins/ResourceDetail/components/ResourceOverview/components/LinkTopo/LinkTopoCard.js +8 -6
  42. package/es/core/viewer/components/plugins/ResourceDetail/components/ResourceOverview/components/LinkTopo/hooks/useMetricPolling.js +28 -56
  43. package/es/core/viewer/components/plugins/ResourceDetail/components/ResourceOverview/components/LinkTopo/services/index.js +57 -1
  44. package/es/core/viewer/components/plugins/ResourceDetail/components/ResourceOverview/hooks/useMetricModels.js +13 -52
  45. package/es/networkTopo/getTopoData.js +2 -1
  46. package/es/networkTopo/models/LinkDynamicStyleExecutor.js +5 -5
  47. package/es/networkTopo/services/link.js +1 -1
  48. package/es/networkTopo/services/topo/basic.js +27 -26
  49. package/es/networkTopo/services/topo/networkLink.js +45 -3
  50. package/es/networkTopo/utils/exitLinkUtil.js +257 -0
  51. package/es/utils/ResourceConfigUtil.js +5 -4
  52. package/es/utils/htElementDataUtil.js +1 -7
  53. package/es/utils/htElementUtils.js +21 -21
  54. package/lib/components/VerticalIconTab/VerticalIconTab.module.scss +11 -5
  55. package/lib/core/components/TopoView/GraphViewPanel.js +18 -3
  56. package/lib/core/components/TopoView/TopoView.module.scss +17 -3
  57. package/lib/core/editor/components/BackgroundView/index.module.scss +3 -0
  58. package/lib/core/editor/components/Sidebar/Sidebar.module.scss +7 -7
  59. package/lib/core/editor/components/Sidebar/views/CanvasPanel/CanvasPanel.js +1 -1
  60. package/lib/core/editor/components/Sidebar/views/CanvasPanel/CanvasPanel.module.scss +1 -0
  61. package/lib/core/editor/components/Sidebar/views/ComponentPanel.js +1 -1
  62. package/lib/core/editor/components/Sidebar/views/ImagePanel/ImagePanel.js +2 -1
  63. package/lib/core/editor/components/Sidebar/views/LinkPanel.js +1 -1
  64. package/lib/core/editor/components/Toolbar/widgets/EdgeTypeButton/EdgeType.js +21 -4
  65. package/lib/core/editor/components/Toolbar/widgets/EdgeTypeButton/EdgeType.module.scss +5 -1
  66. package/lib/core/editor/components/Toolbar/widgets/EdgeTypeButton/LineType.js +31 -12
  67. package/lib/core/editor/components/Toolbar/widgets/EdgeTypeButton/LineType.module.scss +12 -2
  68. package/lib/core/editor/components/Toolbar/widgets/EdgeTypeButton/index.js +6 -0
  69. package/lib/core/editor/components/Toolbar/widgets/FontSizeWidget.js +1 -1
  70. package/lib/core/editor/components/Toolbar/widgets/components/textStyleSetting/ElementTextStyleSetting/elements/groupTitle.js +1 -1
  71. package/lib/core/editor/components/settings/core/updateElementProperty.js +6 -1
  72. package/lib/core/editor/components/settings/propertyViews/group/DataTab/hoooks/useGroupRelateResource.js +3 -3
  73. package/lib/core/editor/components/settings/propertyViews/node/data/BindIpInput.js +111 -0
  74. package/lib/core/editor/components/settings/propertyViews/node/data/Data.js +48 -14
  75. package/lib/core/editor/config/themes.js +53 -2
  76. package/lib/core/event/topoEventListener.js +27 -0
  77. package/lib/core/hooks/useAlarm.js +19 -12
  78. package/lib/core/hooks/useCanvasTheme.js +12 -4
  79. package/lib/core/hooks/useResourceConfig.js +2 -1
  80. package/lib/core/hooks/useTopoEdit.js +98 -18
  81. package/lib/core/hooks/useTopoEventListener.js +3 -17
  82. package/lib/core/hooks/useTopoFullscreen.js +42 -0
  83. package/lib/core/models/Alarm.js +5 -16
  84. package/lib/core/models/TopoApp.js +1 -1
  85. package/lib/core/models/topoData.js +16 -9
  86. package/lib/core/models/utils/linkUtils.js +53 -26
  87. package/lib/core/store/models/topoConfig.js +56 -19
  88. package/lib/core/test/Test.js +52 -0
  89. package/lib/core/viewer/components/plugins/ResourceDetail/components/ResourceOverview/ResourceOverview.js +10 -35
  90. package/lib/core/viewer/components/plugins/ResourceDetail/components/ResourceOverview/components/LinkTopo/LinkTopo.js +14 -0
  91. package/lib/core/viewer/components/plugins/ResourceDetail/components/ResourceOverview/components/LinkTopo/LinkTopoCard.js +8 -6
  92. package/lib/core/viewer/components/plugins/ResourceDetail/components/ResourceOverview/components/LinkTopo/hooks/useMetricPolling.js +28 -55
  93. package/lib/core/viewer/components/plugins/ResourceDetail/components/ResourceOverview/components/LinkTopo/services/index.js +58 -1
  94. package/lib/core/viewer/components/plugins/ResourceDetail/components/ResourceOverview/hooks/useMetricModels.js +13 -53
  95. package/lib/networkTopo/getTopoData.js +2 -1
  96. package/lib/networkTopo/models/LinkDynamicStyleExecutor.js +5 -5
  97. package/lib/networkTopo/services/topo/basic.js +28 -28
  98. package/lib/networkTopo/services/topo/networkLink.js +45 -3
  99. package/lib/networkTopo/utils/exitLinkUtil.js +269 -0
  100. package/lib/utils/ResourceConfigUtil.js +4 -4
  101. package/lib/utils/htElementDataUtil.js +0 -10
  102. package/lib/utils/htElementUtils.js +21 -21
  103. package/package.json +3 -3
@@ -11,8 +11,6 @@ var _componentTopologyGraph = require("@riil-frontend/component-topology-graph")
11
11
 
12
12
  var _sortBy = _interopRequireDefault(require("lodash/sortBy"));
13
13
 
14
- var _htElementDataUtil = require("../../../../../../../../utils/htElementDataUtil");
15
-
16
14
  var _htElementUtils = require("../../../../../../../../utils/htElementUtils");
17
15
 
18
16
  function sortResourcesByName(resources) {
@@ -30,7 +28,9 @@ function useGroupRelateResource(props) {
30
28
  } : _props$useGroupSortRe; // const [resources, setResources] = useState([]);
31
29
  // 过滤出资源
32
30
 
33
- var resourceNodes = (0, _htElementDataUtil.getGroupChildrenResourceElements)(group); // 资源按名称排序
31
+ var resourceNodes = (0, _htElementUtils.getGroupChildren)(group).filter(function (item) {
32
+ return !!item.getTag();
33
+ }); // 资源按名称排序
34
34
 
35
35
  var useSortNodes = useGroupSortResources || ((_topo$options$editor = topo.options.editor) === null || _topo$options$editor === void 0 ? void 0 : _topo$options$editor.sortResources) || sortResourcesByName;
36
36
  var data = useSortNodes(resourceNodes.map(function (node) {
@@ -0,0 +1,111 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+
5
+ exports.__esModule = true;
6
+ exports["default"] = BindIpInput;
7
+
8
+ var _button = _interopRequireDefault(require("@alifd/next/lib/button"));
9
+
10
+ var _input = _interopRequireDefault(require("@alifd/next/lib/input"));
11
+
12
+ var _form = _interopRequireDefault(require("@alifd/next/lib/form"));
13
+
14
+ var _react = _interopRequireWildcard(require("react"));
15
+
16
+ var _exitLinkUtil = require("../../../../../../../networkTopo/utils/exitLinkUtil");
17
+
18
+ function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
19
+
20
+ function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { "default": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj["default"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
21
+
22
+ var FormItem = _form["default"].Item;
23
+ /**
24
+ * @return {React.ReactNode | null}
25
+ */
26
+
27
+ function BindIpInput(props) {
28
+ var _values$attrObjectBi;
29
+
30
+ var nodeElement = props.nodeElement,
31
+ topo = props.topo,
32
+ topoEditApi = props.topoEditApi,
33
+ values = props.values,
34
+ onChange = props.onChange,
35
+ fieldItem = props.fieldItem; // const currentResId = node.tag;
36
+ // console.log(
37
+ // "nodeElement, topo, topoEditApi, node",
38
+ // nodeElement,
39
+ // topo,
40
+ // topoEditApi,
41
+ // values
42
+ // );
43
+
44
+ var _useState = (0, _react.useState)(""),
45
+ error = _useState[0],
46
+ setError = _useState[1];
47
+
48
+ var _useState2 = (0, _react.useState)((_values$attrObjectBi = values["attrObject.bindIp"]) !== null && _values$attrObjectBi !== void 0 ? _values$attrObjectBi : ""),
49
+ txtValue = _useState2[0],
50
+ setTxtValue = _useState2[1];
51
+
52
+ var saveIp = function saveIp(v) {
53
+ fieldItem.validate(function (errors, vals) {
54
+ if (errors) {
55
+ console.error("saveIp-error", errors, vals);
56
+ } else {
57
+ setError("");
58
+ onChange(txtValue);
59
+ topoEditApi.relateNodeIp(txtValue, nodeElement);
60
+ }
61
+ });
62
+ };
63
+
64
+ (0, _react.useEffect)(function () {
65
+ fieldItem.reset();
66
+ setTxtValue(values["attrObject.bindIp"]);
67
+ }, [values]);
68
+
69
+ var inputChange = function inputChange(v) {
70
+ setTxtValue(v); // onChange(v);
71
+ }; // 图片节点验证ip唯一性
72
+
73
+
74
+ var checkIp = function checkIp(rule, value, callback) {
75
+ var dm = topo.getDataModel();
76
+ var isUnique = (0, _exitLinkUtil.isUniqueIp)(dm, value, nodeElement); // console.log("checkIp", isUnique);
77
+
78
+ if (!isUnique) {
79
+ return callback("ip不能重复");
80
+ } else {
81
+ return callback();
82
+ }
83
+ };
84
+
85
+ return /*#__PURE__*/_react["default"].createElement("div", {
86
+ style: {
87
+ display: "flex"
88
+ }
89
+ }, /*#__PURE__*/_react["default"].createElement(FormItem, {
90
+ label: "\u5173\u8054IP",
91
+ pattern: /^((25[0-5]|2[0-4]\d|((1\d{2})|([1-9]?\d)))\.){3}(25[0-5]|2[0-4]\d|((1\d{2})|([1-9]?\d)))$/,
92
+ patternTrigger: "onBlur",
93
+ patternMessage: "IP\u5730\u5740\u683C\u5F0F\u4E0D\u6B63\u786E",
94
+ validator: checkIp
95
+ }, /*#__PURE__*/_react["default"].createElement(_input["default"], {
96
+ placeholder: "\u8BF7\u8F93\u5165Ip\u5730\u5740",
97
+ name: "attrObject.bindIp",
98
+ state: error,
99
+ value: txtValue,
100
+ maxLength: 128,
101
+ onChange: inputChange
102
+ })), /*#__PURE__*/_react["default"].createElement(_button["default"], {
103
+ type: "primary",
104
+ text: true,
105
+ onClick: saveIp,
106
+ style: {
107
+ marginLeft: 10,
108
+ marginTop: 27
109
+ }
110
+ }, "\u4FDD\u5B58"));
111
+ }
@@ -27,6 +27,10 @@ var _NodeRelateResourceButton = _interopRequireDefault(require("./NodeRelateReso
27
27
 
28
28
  var _PlatformDisplay = _interopRequireDefault(require("./PlatformDisplay"));
29
29
 
30
+ var _BindIpInput = _interopRequireDefault(require("./BindIpInput"));
31
+
32
+ var _exitLinkUtil = require("../../../../../../../networkTopo/utils/exitLinkUtil");
33
+
30
34
  function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
31
35
 
32
36
  function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { "default": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj["default"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
@@ -37,20 +41,21 @@ var CollapsePanel = _collapse["default"].Panel;
37
41
  function parseValues(values) {
38
42
  return (0, _extends2["default"])({}, values, {
39
43
  "attrObject.customName": values["attrObject.customName"] || values["attrObject.name"],
40
- "attrObject.bindTopo": values["attrObject.bindTopo"] || "" // 解决切换节点时关联拓扑选项未重置
41
-
44
+ "attrObject.bindTopo": values["attrObject.bindTopo"] || "",
45
+ // 解决切换节点时关联拓扑选项未重置
46
+ "attrObject.bindIp": values["attrObject.bindIp"] || ""
42
47
  });
43
48
  }
44
49
 
45
50
  function getBindType(values) {
46
- if (values.tag) {
47
- return "resource";
48
- }
49
-
50
51
  if (values.attrObject.bindType) {
51
52
  return values.attrObject.bindType;
52
53
  }
53
54
 
55
+ if (values.tag && !values.tag.startsWith("ip:")) {
56
+ return "resource";
57
+ }
58
+
54
59
  return "none";
55
60
  }
56
61
 
@@ -61,15 +66,20 @@ function Data(props) {
61
66
  values = props.values,
62
67
  _onChange = props.onChange,
63
68
  editorProps = props.editorProps;
64
- var bindType = getBindType(values);
69
+ var bindType = getBindType(values); // console.log("node, values", node, values);
65
70
 
66
71
  var field = _field["default"].useField({
67
72
  autoUnmount: false,
68
73
  values: parseValues(values),
69
74
  onChange: function onChange(name, value) {
70
- var newValues = field.getValues();
75
+ field.validate(function (errors, vals) {
76
+ if (errors) {// console.error("field-Data", errors, vals);
77
+ } else {
78
+ var newValues = field.getValues();
71
79
 
72
- _onChange(name, value, newValues);
80
+ _onChange(name, value, newValues);
81
+ }
82
+ });
73
83
  }
74
84
  });
75
85
 
@@ -129,7 +139,7 @@ function Data(props) {
129
139
  }, /*#__PURE__*/_react["default"].createElement(_form["default"], {
130
140
  field: field,
131
141
  labelAlign: "top"
132
- }, !values.tag && /*#__PURE__*/_react["default"].createElement(_form["default"].Item, {
142
+ }, (!values.tag || bindType === "ip") && /*#__PURE__*/_react["default"].createElement(_form["default"].Item, {
133
143
  label: "\u5173\u8054\u7C7B\u578B"
134
144
  }, /*#__PURE__*/_react["default"].createElement(_select["default"], {
135
145
  name: "bindType",
@@ -143,7 +153,9 @@ function Data(props) {
143
153
  value: "none"
144
154
  }, "\u672A\u5173\u8054"), /*#__PURE__*/_react["default"].createElement(Option, {
145
155
  value: "resource"
146
- }, "\u5173\u8054\u8D44\u6E90"), RelateTopoTree && /*#__PURE__*/_react["default"].createElement(Option, {
156
+ }, "\u5173\u8054\u8D44\u6E90"), /*#__PURE__*/_react["default"].createElement(Option, {
157
+ value: "ip"
158
+ }, "\u5173\u8054IP"), RelateTopoTree && /*#__PURE__*/_react["default"].createElement(Option, {
147
159
  value: "topo"
148
160
  }, "\u5173\u8054\u62D3\u6251"))), bindType === "resource" && /*#__PURE__*/_react["default"].createElement(_form["default"].Item, {
149
161
  label: "\u5173\u8054\u8D44\u6E90"
@@ -157,7 +169,7 @@ function Data(props) {
157
169
  flex: 1,
158
170
  paddingRight: 16,
159
171
  color: "#4D6277",
160
- lineHeight: '20px'
172
+ lineHeight: "20px"
161
173
  },
162
174
  title: values.tag ? values.name : null
163
175
  }, values.tag ? values.name : "—"), /*#__PURE__*/_react["default"].createElement(_NodeRelateResourceButton["default"], {
@@ -166,13 +178,35 @@ function Data(props) {
166
178
  topo: topo,
167
179
  topoEditApi: topoEditApi,
168
180
  nodeBindResourceDrawerComponent: editorProps.nodeBindResourceDrawerComponent
169
- }))), bindType === "topo" && RelateTopoTree && /*#__PURE__*/_react["default"].createElement(_form["default"].Item, {
181
+ }))), bindType === "ip" &&
182
+ /*#__PURE__*/
183
+ // <Form.Item
184
+ // label="关联IP"
185
+ // // style={{ display: "flex" }}
186
+ // pattern={
187
+ // /^((25[0-5]|2[0-4]\d|((1\d{2})|([1-9]?\d)))\.){3}(25[0-5]|2[0-4]\d|((1\d{2})|([1-9]?\d)))$/
188
+ // }
189
+ // patternTrigger="onBlur"
190
+ // patternMessage="IP地址格式不正确"
191
+ // >
192
+ _react["default"].createElement(_BindIpInput["default"], {
193
+ nodeElement: node,
194
+ values: values,
195
+ topo: topo,
196
+ fieldItem: field,
197
+ topoEditApi: topoEditApi,
198
+ placeholder: "\u8BF7\u8F93\u5165",
199
+ name: "attrObject.bindIp",
200
+ onChange: _onChange,
201
+ maxLength: 128
202
+ }) // </Form.Item>
203
+ , bindType === "topo" && RelateTopoTree && /*#__PURE__*/_react["default"].createElement(_form["default"].Item, {
170
204
  label: "\u5173\u8054\u62D3\u6251"
171
205
  }, /*#__PURE__*/_react["default"].createElement(RelateTopoTree, {
172
206
  name: "attrObject.bindTopo",
173
207
  topo: topo,
174
208
  onChange: handleBindTopoChange
175
- })), (editorProps === null || editorProps === void 0 ? void 0 : editorProps.topoType) === 'cmpTopo' && node.getTag() && /*#__PURE__*/_react["default"].createElement(_form["default"].Item, {
209
+ })), (editorProps === null || editorProps === void 0 ? void 0 : editorProps.topoType) === "cmpTopo" && node.getTag() && /*#__PURE__*/_react["default"].createElement(_form["default"].Item, {
176
210
  label: "\u6240\u5C5E\u5E73\u53F0"
177
211
  }, /*#__PURE__*/_react["default"].createElement(_PlatformDisplay["default"], props)))));
178
212
  }
@@ -30,7 +30,9 @@ var baseLightTheme = {
30
30
  'group.title.color': '#4D6277',
31
31
  // 标题文字颜色
32
32
  'group.background': 'rgba(255, 255, 255, 0.9)',
33
- 'group.border.color': '#E4E9EE' // 边框颜色
33
+ 'group.border.color': '#E4E9EE',
34
+ // 边框颜色
35
+ 'group.splitLine': false // 标题底部边框
34
36
 
35
37
  }
36
38
  },
@@ -92,7 +94,56 @@ var THEMES = [(0, _extends2["default"])({}, baseLightTheme, {
92
94
  'group.title.color': '#FFFFFF',
93
95
  // 标题文字颜色
94
96
  'group.background': 'rgba(29,55,113,0.6)',
95
- 'group.border.color': 'rgba(8,165,244,0.8)' // 边框颜色
97
+ 'group.border.color': 'rgba(8,165,244,0.8)',
98
+ // 边框颜色
99
+ 'group.splitLine': false // 标题底部边框
100
+
101
+ }
102
+ },
103
+ cluster: {
104
+ style: {
105
+ 'group.title.color': '#FFFFFF',
106
+ // 标题文字颜色
107
+ 'group.title.background': 'rgba(14,44,69,1)',
108
+ // 标题背景颜色 #0E2C45
109
+ 'group.background': 'rgba(14,44,69,1)',
110
+ // #0E2C45
111
+ 'group.border.color': '#08A5F4',
112
+ // 边框颜色
113
+ 'group.border.radius': 3
114
+ }
115
+ }
116
+ }, {
117
+ name: 'poly',
118
+ label: 'Poly',
119
+ toolsTheme: 'black',
120
+ backgroundImage: '/img/topo/themes/poly.png',
121
+ backgroundImageThumbnail: '/img/topo/themes/poly_thumbnail.png',
122
+ globalNodeLabelStyle: {
123
+ color: '#ffffff'
124
+ },
125
+ globalEdgeTagStyle: {
126
+ color: '#E4E9EE',
127
+ background: 'rgba(6, 54, 88, 1)',
128
+ // 背景色,不传使用默认内置 @V1.2 index.js:1 #063658
129
+ borderColor: '#08A5F4' // 边框颜色,不传使用默认内置。用于主题切换 @V1.2
130
+
131
+ },
132
+ text: {
133
+ color: '#ffffff'
134
+ },
135
+ group: {
136
+ style: {
137
+ 'group.title.background': 'rgba(0,0,0,0.01)',
138
+ // 标题背景颜色 #08A5F4
139
+ 'group.title.color': '#8FECFF',
140
+ // 标题文字颜色
141
+ 'group.title.border.color': '#ffffff',
142
+ // 边框颜色
143
+ 'group.background': 'rgba(0,0,0,0.01)',
144
+ 'group.border.color': '#ffffff',
145
+ // 边框颜色
146
+ 'group.splitLine': true // 标题底部边框
96
147
 
97
148
  }
98
149
  },
@@ -0,0 +1,27 @@
1
+ "use strict";
2
+
3
+ exports.__esModule = true;
4
+ exports.createTopoEventListener = createTopoEventListener;
5
+ var n = 0;
6
+
7
+ function createTopoEventListener(type, onMessage) {
8
+ var eventListenerName = "topo_" + n++;
9
+ var EE = window.EE;
10
+
11
+ if (EE) {
12
+ EE.on('topo', eventListenerName, function (data) {
13
+ if (data.type === type) {
14
+ onMessage(data.data);
15
+ }
16
+ });
17
+ }
18
+
19
+ return {
20
+ eventListenerName: eventListenerName,
21
+ close: function close() {
22
+ if (EE) {
23
+ window.EE.removeListener('topo', eventListenerName);
24
+ }
25
+ }
26
+ };
27
+ }
@@ -11,10 +11,10 @@ var _react = require("react");
11
11
 
12
12
  var _rlog = _interopRequireDefault(require("@riil-frontend/component-topology-utils/es/rlog"));
13
13
 
14
- var _componentRiilEventEmitter = require("@riil-frontend/component-riil-event-emitter");
15
-
16
14
  var _useGraphAlarmDisplay = _interopRequireDefault(require("./useGraphAlarmDisplay"));
17
15
 
16
+ var _useTopoEventListener = _interopRequireDefault(require("./useTopoEventListener"));
17
+
18
18
  /**
19
19
  *
20
20
  *
@@ -117,20 +117,27 @@ function useAlarm(options) {
117
117
  received: data,
118
118
  all: relateTopoAlarm
119
119
  });
120
- };
120
+ }; // 订阅消息
121
121
 
122
- (0, _componentRiilEventEmitter.useCbbEventListener)("topo", {
123
- name: "topo",
122
+
123
+ (0, _useTopoEventListener["default"])({
124
+ type: 'alarm',
124
125
  onMessage: function onMessage(data) {
125
126
  _rlog["default"].debug("Topoget--AlertMesage------------", topo, data);
126
127
 
127
- if (data.type === "alarm") {
128
- topo.alarm.handleAlarmEvent(data.data);
129
- } else if (data.type === "risk") {
130
- handleRiskData(data.data);
131
- } else if (data.type === "relateTopoAlarm") {
132
- handleRelateTopoAlarm(data.data);
133
- }
128
+ topo.alarm.handleAlarmEvent(data);
129
+ }
130
+ });
131
+ (0, _useTopoEventListener["default"])({
132
+ type: 'risk',
133
+ onMessage: function onMessage(data) {
134
+ handleRiskData(data);
135
+ }
136
+ });
137
+ (0, _useTopoEventListener["default"])({
138
+ type: 'relateTopoAlarm',
139
+ onMessage: function onMessage(data) {
140
+ handleRelateTopoAlarm(data);
134
141
  }
135
142
  });
136
143
  }
@@ -17,7 +17,7 @@ var themeMap = [{
17
17
  name: 'white',
18
18
  label: '白色',
19
19
  color: null,
20
- toolsTheme: 'lightgrayblue'
20
+ toolsTheme: 'white'
21
21
  }, {
22
22
  name: 'lightblue',
23
23
  label: '蓝色',
@@ -35,7 +35,12 @@ var themeMap = [{
35
35
  name: 'dark',
36
36
  label: '深色',
37
37
  color: '#031425',
38
- toolsTheme: 'black'
38
+ toolsTheme: 'dark'
39
+ }, {
40
+ name: 'poly',
41
+ label: 'Poly',
42
+ toolsTheme: 'dark',
43
+ backgroundImage: '/img/topo/themes/poly.png'
39
44
  }].reduce(function (map, item) {
40
45
  var _extends2;
41
46
 
@@ -52,12 +57,13 @@ function useCanvasTheme(props) {
52
57
 
53
58
  var themeConfig = themeMap[themeName || 'white'];
54
59
  var canvasColor = hideBackgroundColor ? null : themeConfig.color;
60
+ var canvasbackgroundImage = hideBackgroundColor ? null : themeConfig.backgroundImage;
55
61
  (0, _react.useEffect)(function () {
56
62
  // 设置
57
63
  if (graphLoaded && themeConfig) {
58
64
  try {
59
65
  topo.getHtTopo().setTheme(themeName);
60
- topo.getHtTopo().setToolsTheme(themeName);
66
+ topo.getHtTopo().setToolsTheme(themeConfig.toolsTheme);
61
67
  } catch (error) {
62
68
  console.error('切换主题失败', error);
63
69
  }
@@ -68,12 +74,14 @@ function useCanvasTheme(props) {
68
74
  if (graphLoaded) {
69
75
  try {
70
76
  topo.getHtTopo().getGraphView().dm().setBackground(canvasColor);
77
+ topo.getHtTopo().getGraphView().dm().setBackground(canvasbackgroundImage);
71
78
  } catch (error) {
72
79
  console.error('切换主题失败', error);
73
80
  }
74
81
  }
75
82
  }, [graphLoaded, canvasColor]);
76
83
  return {
77
- canvasColor: canvasColor
84
+ canvasColor: canvasColor,
85
+ canvasbackgroundImage: canvasbackgroundImage
78
86
  };
79
87
  }
@@ -59,7 +59,8 @@ function _default(props) {
59
59
  resources: config.resources,
60
60
  groups: config.groups,
61
61
  exportLinkIdList: config.exportLinkIdList,
62
- relateTopoIdList: config.relateTopoIdList
62
+ relateTopoIdList: config.relateTopoIdList //linkIps: config.linkIps,
63
+
63
64
  };
64
65
  };
65
66