@riil-frontend/component-topology 2.1.4 → 2.1.6

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 (96) hide show
  1. package/build/index.css +1 -1
  2. package/build/index.js +27 -27
  3. package/demo/1/345/237/272/346/234/254/usage.md +4 -0
  4. package/demo/{3/344/270/232/345/212/241/347/233/221/346/216/247/346/213/223/346/211/221 → 1/345/237/272/346/234/254}//345/221/212/350/255/246/346/216/250/351/200/201.md +1 -1
  5. package/demo/{3/344/270/232/345/212/241/347/233/221/346/216/247/346/213/223/346/211/221 → 1/345/237/272/346/234/254}//350/207/252/345/256/232/344/271/211/345/233/276/346/240/207.md +1 -1
  6. package/demo/{3/344/270/232/345/212/241/347/233/221/346/216/247/346/213/223/346/211/221 → 1/345/237/272/346/234/254}//350/207/252/345/256/232/344/271/211/345/261/236/346/200/247/345/222/214/346/214/207/346/240/207.md +1 -1
  7. package/demo/{3/344/270/232/345/212/241/347/233/221/346/216/247/346/213/223/346/211/221 → 2/347/274/226/350/276/221/346/250/241/345/274/217}//346/226/260/345/273/272/350/277/233/345/205/245/347/274/226/350/276/221/346/250/241/345/274/217.md +1 -1
  8. package/demo/2/347/274/226/350/276/221/346/250/241/345/274/217//346/233/277/346/215/242/350/212/202/347/202/271.md +14 -0
  9. package/demo/{3/344/270/232/345/212/241/347/233/221/346/216/247/346/213/223/346/211/221 → 2/347/274/226/350/276/221/346/250/241/345/274/217}//347/246/201/347/224/250/345/205/263/350/201/224/350/265/204/346/272/220.md +1 -1
  10. package/demo/{3/344/270/232/345/212/241/347/233/221/346/216/247/346/213/223/346/211/221 → 2/347/274/226/350/276/221/346/250/241/345/274/217}//347/274/226/350/276/221/346/250/241/345/274/217/345/217/263/351/224/256/350/217/234/345/215/225.md +1 -1
  11. package/demo/{2 → 3}/346/213/223/346/211/221/344/270/255/345/277/203/js/TopoFull.jsx +1 -2
  12. package/demo/{2 → 3}/346/213/223/346/211/221/344/270/255/345/277/203/js/TopoViewer.jsx +0 -0
  13. package/demo/{2 → 3}/346/213/223/346/211/221/344/270/255/345/277/203/js/mock/authorization/v1/api/authority/check/checkFuncAuthentication +0 -0
  14. package/demo/{2 → 3}/346/213/223/346/211/221/344/270/255/345/277/203/js/mock/authorization/v1/api/authority/check/checkFuncAuthentication.json +0 -0
  15. package/demo/3/{344/270/232/345/212/241/347/233/221/346/216/247/346/213/223/346/211/221/src → 346/213/223/346/211/221/344/270/255/345/277/203/js}/mock/model/v1/api/getAllDict +0 -0
  16. package/demo/3/{344/270/232/345/212/241/347/233/221/346/216/247/346/213/223/346/211/221/src → 346/213/223/346/211/221/344/270/255/345/277/203/js}/mock/topo/v1/api/alarm +0 -0
  17. package/demo/3/{344/270/232/345/212/241/347/233/221/346/216/247/346/213/223/346/211/221/src → 346/213/223/346/211/221/344/270/255/345/277/203/js}/mock/topo/v1/api/alarm.json +0 -0
  18. package/demo/{2 → 3}/346/213/223/346/211/221/344/270/255/345/277/203/js/mock/topo/v1/api/attributes/once +0 -0
  19. package/demo/{2 → 3}/346/213/223/346/211/221/344/270/255/345/277/203/js/mock/topo/v1/api/attributes/once.json +0 -0
  20. package/demo/{2 → 3}/346/213/223/346/211/221/344/270/255/345/277/203/js/mock/topo/v1/api/attributes/polling +0 -0
  21. package/demo/{2 → 3}/346/213/223/346/211/221/344/270/255/345/277/203/js/mock/topo/v1/api/attributes/polling.json +0 -0
  22. package/demo/3/{344/270/232/345/212/241/347/233/221/346/216/247/346/213/223/346/211/221/src → 346/213/223/346/211/221/344/270/255/345/277/203/js}/mock/topo/v1/api/auth/permission/2 +0 -0
  23. package/demo/3/{344/270/232/345/212/241/347/233/221/346/216/247/346/213/223/346/211/221/src → 346/213/223/346/211/221/344/270/255/345/277/203/js}/mock/topo/v1/api/auth/permission/2.json +0 -0
  24. package/demo/3/{344/270/232/345/212/241/347/233/221/346/216/247/346/213/223/346/211/221/src → 346/213/223/346/211/221/344/270/255/345/277/203/js}/mock/topo/v1/api/menu +0 -0
  25. package/demo/3/{344/270/232/345/212/241/347/233/221/346/216/247/346/213/223/346/211/221/src → 346/213/223/346/211/221/344/270/255/345/277/203/js}/mock/topo/v1/api/menu.json +0 -0
  26. package/demo/3/{344/270/232/345/212/241/347/233/221/346/216/247/346/213/223/346/211/221/src → 346/213/223/346/211/221/344/270/255/345/277/203/js}/mock/topo/v1/api/shape +0 -0
  27. package/demo/3/{344/270/232/345/212/241/347/233/221/346/216/247/346/213/223/346/211/221/src → 346/213/223/346/211/221/344/270/255/345/277/203/js}/mock/topo/v1/api/shape.json +0 -0
  28. package/demo/{2 → 3}/346/213/223/346/211/221/344/270/255/345/277/203/js/mock/topo/v1/api/structure/both/2 +0 -0
  29. package/demo/{2 → 3}/346/213/223/346/211/221/344/270/255/345/277/203/js/mock/topo/v1/api/structure/both/2.json +0 -0
  30. package/demo/{2 → 3}/346/213/223/346/211/221/344/270/255/345/277/203/js/mock/topo/v1/api/structure/relationList +0 -0
  31. package/demo/{2 → 3}/346/213/223/346/211/221/344/270/255/345/277/203/js/mock/topo/v1/api/structure/relationList.json +0 -0
  32. package/demo/3/{344/270/232/345/212/241/347/233/221/346/216/247/346/213/223/346/211/221/src → 346/213/223/346/211/221/344/270/255/345/277/203/js}/mock/topo/v1/api/webUrl/list +0 -0
  33. package/demo/3/{344/270/232/345/212/241/347/233/221/346/216/247/346/213/223/346/211/221/src → 346/213/223/346/211/221/344/270/255/345/277/203/js}/mock/topo/v1/api/webUrl/list.json +0 -0
  34. package/demo/3/346/213/223/346/211/221/344/270/255/345/277/203/js/request.js +7 -0
  35. package/demo/{2 → 3}/346/213/223/346/211/221/344/270/255/345/277/203//345/256/214/346/225/264/346/250/241/345/274/217.md +0 -0
  36. package/demo/{2 → 3}/346/213/223/346/211/221/344/270/255/345/277/203//346/230/276/347/244/272/346/250/241/345/274/217.md +0 -0
  37. package/demo/{3 → 4}/344/270/232/345/212/241/347/233/221/346/216/247/346/213/223/346/211/221//345/272/224/347/224/250/351/203/250/347/275/262/346/213/223/346/211/221.md +1 -1
  38. package/demo/{3 → 4}/344/270/232/345/212/241/347/233/221/346/216/247/346/213/223/346/211/221//346/225/260/346/215/256/346/265/201/346/213/223/346/211/221.md +1 -1
  39. package/demo/5/345/205/266/344/273/226/347/273/204/344/273/266//351/200/211/346/213/251/350/265/204/346/272/220/346/214/211/351/222/256.md +12 -0
  40. package/demo/5/345/205/266/344/273/226/347/273/204/344/273/266//351/200/211/346/213/251/350/265/204/346/272/220/347/273/204/344/273/266.md +12 -0
  41. package/demo/API/API.md +11 -6
  42. package/{demo/3/344/270/232/345/212/241/347/233/221/346/216/247/346/213/223/346/211/221/src/mock → demo-mock/basic}/cmdb/v1/api/authority/ci/commonQuery +0 -0
  43. package/{demo/2/346/213/223/346/211/221/344/270/255/345/277/203/js/mock → demo-mock/basic}/model/v1/api/getAllDict +0 -0
  44. package/{demo/3/344/270/232/345/212/241/347/233/221/346/216/247/346/213/223/346/211/221/src/mock → demo-mock/basic}/model/v1/api/modelTree +0 -0
  45. package/{demo/2/346/213/223/346/211/221/344/270/255/345/277/203/js/mock → demo-mock/basic}/topo/v1/api/alarm +0 -0
  46. package/{demo/2/346/213/223/346/211/221/344/270/255/345/277/203/js/mock → demo-mock/basic}/topo/v1/api/alarm.json +0 -0
  47. package/{demo/3/344/270/232/345/212/241/347/233/221/346/216/247/346/213/223/346/211/221/src/mock → demo-mock/basic}/topo/v1/api/attributes/once +1237 -618
  48. package/{demo/3/344/270/232/345/212/241/347/233/221/346/216/247/346/213/223/346/211/221/src/mock → demo-mock/basic}/topo/v1/api/attributes/once.json +1858 -621
  49. package/{demo/3/344/270/232/345/212/241/347/233/221/346/216/247/346/213/223/346/211/221/src/mock → demo-mock/basic}/topo/v1/api/attributes/polling +0 -0
  50. package/{demo/3/344/270/232/345/212/241/347/233/221/346/216/247/346/213/223/346/211/221/src/mock → demo-mock/basic}/topo/v1/api/attributes/polling.json +0 -0
  51. package/{demo/2/346/213/223/346/211/221/344/270/255/345/277/203/js/mock → demo-mock/basic}/topo/v1/api/auth/permission/2 +0 -0
  52. package/{demo/2/346/213/223/346/211/221/344/270/255/345/277/203/js/mock → demo-mock/basic}/topo/v1/api/auth/permission/2.json +0 -0
  53. package/{demo/2/346/213/223/346/211/221/344/270/255/345/277/203/js/mock → demo-mock/basic}/topo/v1/api/menu +0 -0
  54. package/{demo/2/346/213/223/346/211/221/344/270/255/345/277/203/js/mock → demo-mock/basic}/topo/v1/api/menu.json +0 -0
  55. package/{demo/2/346/213/223/346/211/221/344/270/255/345/277/203/js/mock → demo-mock/basic}/topo/v1/api/shape +0 -0
  56. package/{demo/2/346/213/223/346/211/221/344/270/255/345/277/203/js/mock → demo-mock/basic}/topo/v1/api/shape.json +0 -0
  57. package/{demo/3/344/270/232/345/212/241/347/233/221/346/216/247/346/213/223/346/211/221/src/mock → demo-mock/basic}/topo/v1/api/structure/both/1 +0 -0
  58. package/{demo/3/344/270/232/345/212/241/347/233/221/346/216/247/346/213/223/346/211/221/src/mock → demo-mock/basic}/topo/v1/api/structure/both/2 +0 -0
  59. package/{demo/3/344/270/232/345/212/241/347/233/221/346/216/247/346/213/223/346/211/221/src/mock → demo-mock/basic}/topo/v1/api/structure/both/3 +0 -0
  60. package/{demo/3/344/270/232/345/212/241/347/233/221/346/216/247/346/213/223/346/211/221/src/mock → demo-mock/basic}/topo/v1/api/structure/byCondition/2 +0 -0
  61. package/{demo/3/344/270/232/345/212/241/347/233/221/346/216/247/346/213/223/346/211/221/src/mock → demo-mock/basic}/topo/v1/api/structure/relationList +0 -0
  62. package/{demo/2/346/213/223/346/211/221/344/270/255/345/277/203/js/mock → demo-mock/basic}/topo/v1/api/webUrl/list +0 -0
  63. package/{demo/2/346/213/223/346/211/221/344/270/255/345/277/203/js/mock → demo-mock/basic}/topo/v1/api/webUrl/list.json +0 -0
  64. package/es/components/{TopoView/settings/GroupNodeList → ResourceSelect}/SelectResource/index.js +0 -0
  65. package/es/components/{TopoView/settings/GroupNodeList → ResourceSelect}/SelectResource/index.module.scss +0 -0
  66. package/es/components/TopoView/settings/GroupNodeList/ResourceList.js +1 -1
  67. package/es/components/TopoView/settings/LayerSettingsForm.js +4 -1
  68. package/es/components/TopoView/topoView.js +2 -1
  69. package/lib/components/{TopoView/settings/GroupNodeList → ResourceSelect}/SelectResource/index.js +0 -0
  70. package/lib/components/{TopoView/settings/GroupNodeList → ResourceSelect}/SelectResource/index.module.scss +0 -0
  71. package/lib/components/TopoView/settings/GroupNodeList/ResourceList.js +1 -1
  72. package/lib/components/TopoView/settings/LayerSettingsForm.js +4 -1
  73. package/lib/components/TopoView/topoView.js +3 -1
  74. package/package.json +3 -3
  75. package/demo/1/345/237/272/346/234/254/src/ShowAttributeDemo.jsx +0 -14
  76. package/demo/2/346/213/223/346/211/221/344/270/255/345/277/203/js/request.js +0 -7
  77. package/demo/3/344/270/232/345/212/241/347/233/221/346/216/247/346/213/223/346/211/221/src/AppInstallTopo.jsx +0 -220
  78. package/demo/3/344/270/232/345/212/241/347/233/221/346/216/247/346/213/223/346/211/221/src/CreateTopo.jsx +0 -88
  79. package/demo/3/344/270/232/345/212/241/347/233/221/346/216/247/346/213/223/346/211/221/src/CustomAlarm.jsx +0 -110
  80. package/demo/3/344/270/232/345/212/241/347/233/221/346/216/247/346/213/223/346/211/221/src/CustomAttrAndMetric.jsx +0 -303
  81. package/demo/3/344/270/232/345/212/241/347/233/221/346/216/247/346/213/223/346/211/221/src/CustomNodeIcon.jsx +0 -124
  82. package/demo/3/344/270/232/345/212/241/347/233/221/346/216/247/346/213/223/346/211/221/src/DataStreamTopo.jsx +0 -188
  83. package/demo/3/344/270/232/345/212/241/347/233/221/346/216/247/346/213/223/346/211/221/src/DisableNodeRelateResource.jsx +0 -74
  84. package/demo/3/344/270/232/345/212/241/347/233/221/346/216/247/346/213/223/346/211/221/src/EditorContextMenu.jsx +0 -106
  85. package/demo/3/344/270/232/345/212/241/347/233/221/346/216/247/346/213/223/346/211/221/src/Metric.jsx +0 -106
  86. package/demo/3/344/270/232/345/212/241/347/233/221/346/216/247/346/213/223/346/211/221/src/data/appInstall/data1.json +0 -140
  87. package/demo/3/344/270/232/345/212/241/347/233/221/346/216/247/346/213/223/346/211/221/src/data/appInstall/data2.json +0 -240
  88. package/demo/3/344/270/232/345/212/241/347/233/221/346/216/247/346/213/223/346/211/221/src/data/appInstall/icon.js +0 -6
  89. package/demo/3/344/270/232/345/212/241/347/233/221/346/216/247/346/213/223/346/211/221/src/data/appInstall/index.js +0 -19
  90. package/demo/3/344/270/232/345/212/241/347/233/221/346/216/247/346/213/223/346/211/221/src/data/dataStream/data1.json +0 -145
  91. package/demo/3/344/270/232/345/212/241/347/233/221/346/216/247/346/213/223/346/211/221/src/data/dataStream/data2.json +0 -106
  92. package/demo/3/344/270/232/345/212/241/347/233/221/346/216/247/346/213/223/346/211/221/src/data/dataStream/icon.js +0 -6
  93. package/demo/3/344/270/232/345/212/241/347/233/221/346/216/247/346/213/223/346/211/221/src/data/dataStream/index.js +0 -19
  94. package/demo/3/344/270/232/345/212/241/347/233/221/346/216/247/346/213/223/346/211/221/src/mock/a.js +0 -0
  95. package/demo/3/344/270/232/345/212/241/347/233/221/346/216/247/346/213/223/346/211/221/src/request.js +0 -7
  96. package/demo/createMockRequest.js +0 -45
@@ -2,7 +2,7 @@ import _Button from "@alifd/next/es/button";
2
2
  import _List from "@alifd/next/es/list";
3
3
  import _Avatar from "@alifd/next/es/avatar";
4
4
  import React, { useState, useEffect, useRef, useCallback } from 'react';
5
- import SelectResource from './SelectResource';
5
+ import SelectResource from '../../../ResourceSelect/SelectResource';
6
6
  import styles from './ResourceList.module.scss';
7
7
 
8
8
  function ResourceList(props) {
@@ -121,7 +121,10 @@ export default function LayerSettingsForm(props) {
121
121
  style: {
122
122
  flex: 1
123
123
  }
124
- }, "\u5173\u8054\u8D44\u6E90"), /*#__PURE__*/React.createElement(ResourceList.Select, null))
124
+ }, "\u5173\u8054\u8D44\u6E90"), /*#__PURE__*/React.createElement(ResourceList.Select, null)),
125
+ onClick: function onClick(e) {
126
+ console.error(111, e);
127
+ }
125
128
  }, /*#__PURE__*/React.createElement(GroupNodeList, {
126
129
  topo: topo,
127
130
  group: values
@@ -115,9 +115,10 @@ var TopoView = function TopoView(props) {
115
115
  }, []);
116
116
  var onLoaded = useCallback(function () {
117
117
  if (topoApp.alarms) {
118
+ rlog.info('TopoView.onLoaded', topoData, topoApp.alarms);
118
119
  topoApp.loadAlarm(topoApp.alarms);
119
120
  }
120
- }, []); // TODO 之后把事件方法都转移出去
121
+ }, [topoData]); // TODO 之后把事件方法都转移出去
121
122
 
122
123
  var rightEventHandle = function rightEventHandle(event) {
123
124
  rlog.debug('右键事件', event);
@@ -13,7 +13,7 @@ var _avatar = _interopRequireDefault(require("@alifd/next/lib/avatar"));
13
13
 
14
14
  var _react = _interopRequireWildcard(require("react"));
15
15
 
16
- var _SelectResource = _interopRequireDefault(require("./SelectResource"));
16
+ var _SelectResource = _interopRequireDefault(require("../../../ResourceSelect/SelectResource"));
17
17
 
18
18
  var _ResourceListModule = _interopRequireDefault(require("./ResourceList.module.scss"));
19
19
 
@@ -147,7 +147,10 @@ function LayerSettingsForm(props) {
147
147
  style: {
148
148
  flex: 1
149
149
  }
150
- }, "\u5173\u8054\u8D44\u6E90"), /*#__PURE__*/_react["default"].createElement(_ResourceList["default"].Select, null))
150
+ }, "\u5173\u8054\u8D44\u6E90"), /*#__PURE__*/_react["default"].createElement(_ResourceList["default"].Select, null)),
151
+ onClick: function onClick(e) {
152
+ console.error(111, e);
153
+ }
151
154
  }, /*#__PURE__*/_react["default"].createElement(_GroupNodeList["default"], {
152
155
  topo: topo,
153
156
  group: values
@@ -145,9 +145,11 @@ var TopoView = function TopoView(props) {
145
145
  }, []);
146
146
  var onLoaded = (0, _react.useCallback)(function () {
147
147
  if (topoApp.alarms) {
148
+ _rlog["default"].info('TopoView.onLoaded', topoData, topoApp.alarms);
149
+
148
150
  topoApp.loadAlarm(topoApp.alarms);
149
151
  }
150
- }, []); // TODO 之后把事件方法都转移出去
152
+ }, [topoData]); // TODO 之后把事件方法都转移出去
151
153
 
152
154
  var rightEventHandle = function rightEventHandle(event) {
153
155
  _rlog["default"].debug('右键事件', event);
package/package.json CHANGED
@@ -1,13 +1,13 @@
1
1
  {
2
2
  "name": "@riil-frontend/component-topology",
3
- "version": "2.1.4",
3
+ "version": "2.1.6",
4
4
  "description": "拓扑",
5
5
  "files": [
6
6
  "demo/",
7
+ "demo-mock/",
7
8
  "lib/",
8
9
  "es/",
9
10
  "build/",
10
- "3rd/",
11
11
  "public/"
12
12
  ],
13
13
  "main": "lib/index.js",
@@ -96,5 +96,5 @@
96
96
  "access": "public"
97
97
  },
98
98
  "license": "MIT",
99
- "homepage": "https://unpkg.com/@riil-frontend/component-topology@2.1.4/build/index.html"
99
+ "homepage": "https://unpkg.com/@riil-frontend/component-topology@2.1.6/build/index.html"
100
100
  }
@@ -1,14 +0,0 @@
1
- import React, {useState, useEffect, useRef, useCallback} from 'react';
2
-
3
- // import {createTopo, Topology, TitleBar, SearchWidget} from '@riil-frontend/component-topology';
4
- import {createTopo, Topology, TitleBar, SearchWidget} from '../../../src';
5
-
6
- export default function ShowAttributeDemo(props) {
7
-
8
-
9
- return (
10
- <div>
11
-
12
- </div>
13
- );
14
- };
@@ -1,7 +0,0 @@
1
- import createMockRequest from "../../createMockRequest";
2
-
3
- const request = createMockRequest({
4
- baseURL: '/demo/2拓扑中心/js/mock'
5
- });
6
-
7
- export default request;
@@ -1,220 +0,0 @@
1
- import React, {useState, useEffect, useRef, useCallback, useMemo} from 'react';
2
- import {Radio, Loading, Button} from '@alifd/next';
3
-
4
- // import {createTopo, Topology, TitleBar, SearchWidget} from '@riil-frontend/component-topology';
5
- import {createTopo, Topology, TitleBar, SearchWidget} from '../../../src';
6
-
7
- import request from './request';
8
- import {topoList, getData} from "./data/appInstall";
9
- import createTopoData from './data/appInstall/data1';
10
-
11
- function TopoDemo(props) {
12
-
13
- const [topoId, setTopoId] = useState('1');
14
- const [loading, setLoading] = useState(false);
15
-
16
- const topo = useMemo(() => {
17
- return createTopo({
18
- request,
19
- enableDefaultAlarmLoader: false, // 关闭内置告警推送
20
- enableDefaultMetricLoader: false, // 关闭内置指标推送
21
- ciTypes: {
22
- aaa: {
23
- tag: [
24
- { code: 'cpuRate', type: 'metric' },
25
- { code: 'memRate', type: 'metric' },
26
- ],
27
- tip: [
28
- { code: 'ipAddress', type: 'attribute' },
29
- { code: 'macAddress', type: 'attribute' },
30
- { code: 'assetState', type: 'attribute' },
31
- ],
32
- },
33
- },
34
- editor: {
35
- enableRelateResource: false, // 禁用左侧资源链路页签、禁用手工添加的节点关联资源
36
- },
37
- });
38
- }, []);
39
-
40
- const Provider = topo.Provider;
41
-
42
- // API:
43
-
44
- // 加载拓扑图数据
45
- const loadTopo = async (id) => {
46
- setLoading(true);
47
- // TODO 查询拓扑图,转换格式
48
- const data = await getData(id);
49
- await topo.load(data);
50
- setLoading(false)
51
- };
52
-
53
- // 初始化
54
- useEffect(async () => {
55
- await loadTopo(topoId);
56
- return () => {
57
- topo.exit();
58
- }
59
- }, []);
60
-
61
- // 创建拓扑图进入编辑模式
62
- const createAndEnterEdit = async () => {
63
- setLoading(true);
64
- // TODO 转换格式
65
- const data = createTopoData;
66
- await topo.load(data, {
67
- mode: 'edit'
68
- });
69
- setLoading(false)
70
- };
71
-
72
- // 进入编辑模式
73
- const enterEditMode = useCallback(async () => {
74
- setLoading(true);
75
- await topo.enterEditMode();
76
- setLoading(false)
77
- }, []);
78
-
79
- const renderViewerTitleBar = () => {
80
- const onSelect = async (id) => {
81
- setTopoId(id);
82
- await loadTopo(id);
83
- };
84
- return (
85
- <div style={{display: 'flex', alignItems: 'center'}}>
86
- <div style={{flex: 1}}>
87
- <Radio.Group dataSource={topoList} shape="button" size="small" value={topoId} onChange={onSelect}/> &nbsp; &nbsp;
88
- <Button type="primary" onClick={createAndEnterEdit} title="新建并进入编辑模式">新建</Button>
89
- </div>
90
- <SearchWidget topo={topo}/> &nbsp; &nbsp;
91
- <Button type="primary" onClick={enterEditMode}>编辑</Button> &nbsp; &nbsp;
92
- <Button onClick={() => { topo.exportImage() }}>导出拓扑图</Button>
93
- </div>
94
- )
95
- };
96
-
97
-
98
- // 退出编辑模式
99
- const onExitEditMode = useCallback(async () => {
100
- setLoading(true);
101
-
102
- await topo.exitEditMode();
103
- // 重新加载拓扑
104
- await loadTopo(topoId);
105
-
106
- setLoading(false)
107
- }, [topoId]);
108
-
109
- // 触发保存事件
110
- const onTriggerSaveEvent = useCallback(async () => {
111
- await topo.triggerSaveEvent()
112
- }, []);
113
- // 保存
114
- const onSave = useCallback(async (ctx) => {
115
- setLoading(true);
116
-
117
- const {saveConfig} = ctx;
118
- // 保存节点位置、样式、配置
119
- await saveConfig();
120
-
121
- // 获取拓扑图 业务节点和连线、自定义节点和连线
122
- const data = topo.getData();
123
- console.error('获取拓扑图数据', data);
124
- // TODO 保存业务信息,
125
-
126
- setLoading(false)
127
- }, [topoId]);
128
-
129
- // 更新分层数据
130
- const updateData = async () => {
131
- await topo.updateData({
132
- groups: [
133
- {
134
- "id": 20,
135
- "name": "业务层"
136
- },
137
- {
138
- "id": 19,
139
- "name": "工具层"
140
- },
141
- ],
142
- nodes: [
143
- {
144
- "id": "000000004e2f8f55",
145
- "name": "HuiJu166.2_20002",
146
- "ciType": "ruijieSwitch",
147
- "groupId": 20,
148
- "operation": "delete"
149
- },
150
- ],
151
- lines: [],
152
- })
153
- };
154
-
155
- const renderEditorTitleBar = () => {
156
- return (
157
- <div style={{display: 'flex', alignItems: 'center'}}>
158
- <div style={{flex: 1}}>拓扑图标题</div>
159
- <Button onClick={updateData}>修改分层数据</Button> &nbsp; &nbsp;
160
- <Button type="primary" onClick={onTriggerSaveEvent}>保存</Button> &nbsp; &nbsp;
161
- <Button onClick={onExitEditMode}>退出</Button>
162
- </div>
163
- )
164
- };
165
-
166
- // 编辑器参数
167
- const editorProps = {
168
- // 选择资源
169
- layerSelectResource: {
170
- ciTypes: [], // 类型过滤
171
- getTableData: async (params) => {
172
- const {
173
- current = 1,
174
- pageSize = 20,
175
- sortBy = 'displayName',
176
- sortOrder = 'asc',
177
- like,
178
- typeCode,
179
- } = params;
180
- // 从拓扑图查询已有资源列表
181
- // TODO 查询数据
182
- return {
183
- dataSource: [],
184
- total: 100,
185
- current: 1,
186
- pageSize,
187
- }
188
- },
189
- onOk: async (selected) => {
190
- // 查询、合并数据、全量更新拓扑图数据
191
-
192
- }
193
- }
194
- };
195
-
196
- return (
197
- <Loading visible={loading} style={{width: '100%'}}>
198
- <Provider>
199
- <TitleBar
200
- topo={topo}
201
- render={({isEditMode}) => isEditMode ? renderEditorTitleBar() : renderViewerTitleBar()}
202
- />
203
- <br/>
204
-
205
- <div style={{width: '100%', height: '500px', background: 'white'}}>
206
- <Topology
207
- topo={topo}
208
- titleBar={false}
209
- editorProps={editorProps}
210
- onRefresh={() => {loadTopo(topoId)}}
211
- onSave={onSave}
212
- onRemoveElements={() => {}}
213
- />
214
- </div>
215
- </Provider>
216
- </Loading>
217
- );
218
- }
219
-
220
- export default TopoDemo;
@@ -1,88 +0,0 @@
1
- import React, {useCallback, useEffect, useMemo} from 'react';
2
- import {Button} from '@alifd/next';
3
-
4
- // import {createTopo, Topology, TitleBar, SearchWidget} from '@riil-frontend/component-topology';
5
- import {createTopo, Topology} from '../../../src';
6
-
7
- import request from './request';
8
- import topoData from './data/appInstall/data2';
9
-
10
- function TopoEditorDemo(props) {
11
-
12
- const topo = useMemo(() => {
13
- return createTopo({
14
- request,
15
- enableDefaultAlarmLoader: false,
16
- enableDefaultMetricLoader: false,
17
- icons: [{
18
- id: 'biz.1', // 如果以ciType.开头,节点无图标时默认按ciType匹配
19
- name: '图标1',
20
- url: 'public/icons/c_b_server.svg', // 图片地址
21
- jsonUrl: null, // ht 拓扑使用
22
- }]
23
- });
24
- }, []);
25
-
26
- const Provider = topo.Provider;
27
-
28
- // API:
29
-
30
- // 创建拓扑图进入编辑模式
31
- const createAndEnterEdit = async () => {
32
- // TODO 转换格式
33
- const data = {...topoData};
34
- await topo.load(data, {
35
- mode: 'edit'
36
- });
37
- };
38
-
39
- // 初始化
40
- useEffect(async () => {
41
- await createAndEnterEdit();
42
- return () => {
43
- topo.exit();
44
- }
45
- }, []);
46
-
47
- // 保存
48
- const onSave = useCallback(async (ctx) => {
49
- const {data, saveConfig} = ctx;
50
- const {id, config, global, serialize} = data;
51
- // 保存
52
- await saveConfig();
53
- }, []);
54
-
55
- // 退出编辑模式
56
- const onExitEditMode = useCallback(async () => {
57
- await topo.exitEditMode();
58
- // 重新加载拓扑
59
- const data = {...topoData};
60
- await topo.load(data);
61
- }, []);
62
-
63
- return (
64
- <div style={{width: '100%'}}>
65
- <div style={{display: 'flex', alignItems: 'center', paddingBottom: 16}}>
66
- <div style={{flex: 1}}>
67
- <Button type="primary" onClick={createAndEnterEdit} title="新建并进入编辑模式">新建</Button> &nbsp; &nbsp;
68
- </div>
69
- <Button type="primary" onClick={() => { topo.triggerSaveEvent() }}>保存</Button> &nbsp; &nbsp;
70
- <Button onClick={onExitEditMode}>退出</Button>
71
- </div>
72
-
73
- <div style={{width: '100%', height: '500px', background: 'white'}}>
74
- <Provider>
75
- <Topology
76
- topo={topo}
77
- defaultEnterEditMode
78
- titleBar={false}
79
- onSave={onSave}
80
- />
81
- </Provider>
82
- </div>
83
- </div>
84
- );
85
- }
86
-
87
-
88
- export default TopoEditorDemo;
@@ -1,110 +0,0 @@
1
- import React, {useCallback, useEffect, useMemo} from 'react';
2
- import {Button} from '@alifd/next';
3
-
4
- // import {createTopo, Topology, TitleBar, SearchWidget} from '@riil-frontend/component-topology';
5
- import {createTopo, Topology, ViewerTools} from '../../../src';
6
-
7
- import request from './request';
8
-
9
- const data = {
10
- config: {
11
- id: 2,
12
- name: "自定义告警",
13
- showType: "auto",
14
- layout: "circular",
15
- },
16
- nodes: [
17
- {
18
- id: "1",
19
- name: "111",
20
- ciType: "aaa",
21
- operation: "delete"
22
- },
23
- {
24
- id: "2",
25
- name: "2222",
26
- ciType: "ruijieSwitch",
27
- operation: "delete",
28
- },
29
- ],
30
- };
31
-
32
- function TopoDemo(props) {
33
-
34
- const topo = useMemo(() => {
35
- return createTopo({
36
- request,
37
- enableDefaultAlarmLoader: false,
38
- enableDefaultMetricLoader: false,
39
- });
40
- }, []);
41
-
42
- const Provider = topo.Provider;
43
-
44
- // 初始化
45
- useEffect(async () => {
46
- await topo.load(data);
47
- await topo.loadAlarm([
48
- {
49
- id:'1',
50
- level: 1,
51
- info:'告警信息'
52
- }
53
- ]);
54
- return () => {
55
- topo.exit();
56
- }
57
- }, []);
58
-
59
- const loadAlarms1 = () => {
60
- topo.loadAlarm([
61
- {
62
- id: '1',
63
- level: 1,
64
- info:'告警信息'
65
- },
66
- {
67
- id: '2',
68
- level: 3,
69
- info:'告警信息'
70
- }
71
- ]);
72
- };
73
-
74
- const loadAlarms2 = () => {
75
- topo.loadAlarm([
76
- {
77
- id:'1',
78
- level: 1,
79
- info:'告警信息'
80
- }
81
- ]);
82
- };
83
-
84
- const loadAlarms3 = () => {
85
- topo.loadAlarm([
86
- ]);
87
- };
88
-
89
- return (
90
- <div style={{width: '100%', height: '500px', background: 'white'}}>
91
- <Provider>
92
- <div style={{display: 'flex', alignItems: 'center'}}>
93
- <div style={{flex: 1}}>
94
- <Button onClick={loadAlarms1}>加载告警1</Button>
95
- <Button onClick={loadAlarms2}>加载告警2</Button>
96
- <Button onClick={loadAlarms3}>清空告警</Button>
97
- </div>
98
- <ViewerTools topo={topo} showEditButton={false}/>
99
- </div>
100
- <Topology
101
- topo={topo}
102
- titleBar={false}
103
- />
104
- </Provider>
105
- </div>
106
- );
107
- }
108
-
109
-
110
- export default TopoDemo;