@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.
- package/build/index.css +1 -1
- package/build/index.js +27 -27
- package/demo/1/345/237/272/346/234/254/usage.md +4 -0
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- package/demo/{2 → 3}/346/213/223/346/211/221/344/270/255/345/277/203/js/TopoFull.jsx +1 -2
- package/demo/{2 → 3}/346/213/223/346/211/221/344/270/255/345/277/203/js/TopoViewer.jsx +0 -0
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- package/demo/3/346/213/223/346/211/221/344/270/255/345/277/203/js/request.js +7 -0
- 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
- 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
- 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
- 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
- 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
- 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
- package/demo/API/API.md +11 -6
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- package/es/components/{TopoView/settings/GroupNodeList → ResourceSelect}/SelectResource/index.js +0 -0
- package/es/components/{TopoView/settings/GroupNodeList → ResourceSelect}/SelectResource/index.module.scss +0 -0
- package/es/components/TopoView/settings/GroupNodeList/ResourceList.js +1 -1
- package/es/components/TopoView/settings/LayerSettingsForm.js +4 -1
- package/es/components/TopoView/topoView.js +2 -1
- package/lib/components/{TopoView/settings/GroupNodeList → ResourceSelect}/SelectResource/index.js +0 -0
- package/lib/components/{TopoView/settings/GroupNodeList → ResourceSelect}/SelectResource/index.module.scss +0 -0
- package/lib/components/TopoView/settings/GroupNodeList/ResourceList.js +1 -1
- package/lib/components/TopoView/settings/LayerSettingsForm.js +4 -1
- package/lib/components/TopoView/topoView.js +3 -1
- package/package.json +3 -3
- package/demo/1/345/237/272/346/234/254/src/ShowAttributeDemo.jsx +0 -14
- package/demo/2/346/213/223/346/211/221/344/270/255/345/277/203/js/request.js +0 -7
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- package/demo/createMockRequest.js +0 -45
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
package/es/components/{TopoView/settings/GroupNodeList → ResourceSelect}/SelectResource/index.js
RENAMED
|
File without changes
|
|
File without changes
|
|
@@ -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 '
|
|
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);
|
package/lib/components/{TopoView/settings/GroupNodeList → ResourceSelect}/SelectResource/index.js
RENAMED
|
File without changes
|
|
File without changes
|
|
@@ -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("
|
|
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.
|
|
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.
|
|
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,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}/>
|
|
88
|
-
<Button type="primary" onClick={createAndEnterEdit} title="新建并进入编辑模式">新建</Button>
|
|
89
|
-
</div>
|
|
90
|
-
<SearchWidget topo={topo}/>
|
|
91
|
-
<Button type="primary" onClick={enterEditMode}>编辑</Button>
|
|
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>
|
|
160
|
-
<Button type="primary" onClick={onTriggerSaveEvent}>保存</Button>
|
|
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>
|
|
68
|
-
</div>
|
|
69
|
-
<Button type="primary" onClick={() => { topo.triggerSaveEvent() }}>保存</Button>
|
|
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;
|