@riil-frontend/component-topology 5.0.0-alpha.21 → 5.0.0-alpha.22
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.js +12 -12
- package/es/core/hooks/useTopoEdit.js +205 -153
- package/es/core/models/HistoryManager.js +4 -0
- package/es/core/models/TopoApp.js +1 -1
- package/es/core/viewer/components/plugins/ResourceDetail/ResourceDetail.js +51 -249
- package/es/core/viewer/components/plugins/ResourceDetail/ResourceDetailDrawer.js +256 -0
- package/es/core/viewer/components/plugins/ResourceDetail/ResourceDetailPlugin.js +2 -2
- package/es/core/viewer/components/plugins/ResourceDetail/components/ResourceOverview/ResourceOverview.js +37 -21
- package/es/core/viewer/components/plugins/ResourceDetail/components/ResourceOverview/components/LinkTopo/LinkTopo.js +40 -2
- package/lib/core/hooks/useTopoEdit.js +204 -152
- package/lib/core/models/HistoryManager.js +4 -0
- package/lib/core/models/TopoApp.js +1 -1
- package/lib/core/viewer/components/plugins/ResourceDetail/ResourceDetail.js +51 -261
- package/lib/core/viewer/components/plugins/ResourceDetail/ResourceDetailDrawer.js +283 -0
- package/lib/core/viewer/components/plugins/ResourceDetail/ResourceDetailPlugin.js +2 -2
- package/lib/core/viewer/components/plugins/ResourceDetail/components/ResourceOverview/ResourceOverview.js +37 -21
- package/lib/core/viewer/components/plugins/ResourceDetail/components/ResourceOverview/components/LinkTopo/LinkTopo.js +41 -2
- package/package.json +2 -2
|
@@ -21,7 +21,7 @@ import PluginManager from "./PluginManager";
|
|
|
21
21
|
import topoFactory from "./topoFactory";
|
|
22
22
|
import ElementTagTipConfig from "./tagstips/ElementTagTipConfig"; // eslint-disable-next-line no-undef
|
|
23
23
|
|
|
24
|
-
var version = typeof "5.0.0-alpha.
|
|
24
|
+
var version = typeof "5.0.0-alpha.22" === 'string' ? "5.0.0-alpha.22" : null;
|
|
25
25
|
console.info("\u62D3\u6251\u7248\u672C: " + version);
|
|
26
26
|
/**
|
|
27
27
|
* 拓扑显示和编辑
|
|
@@ -1,259 +1,61 @@
|
|
|
1
|
-
import _Drawer from "@alifd/next/es/drawer";
|
|
2
1
|
import _extends from "@babel/runtime/helpers/extends";
|
|
3
|
-
import
|
|
4
|
-
import _regeneratorRuntime from "@babel/runtime/regenerator";
|
|
5
|
-
import { TopoEvent } from '@riil-frontend/component-topology-graph';
|
|
6
|
-
import PropTypes from 'prop-types';
|
|
7
|
-
import React, { useEffect, useState } from 'react';
|
|
2
|
+
import React from 'react';
|
|
8
3
|
import Tab from "../../../../../components/FullheightTab";
|
|
9
|
-
import service from "../../../../services/overview";
|
|
10
4
|
import ClusterMemberTable from "./components/ClusterMemberTable";
|
|
11
|
-
import Title from "./components/DrawerTitle";
|
|
12
5
|
import ResourceOverview from "./components/ResourceOverview";
|
|
13
6
|
import WebConsole from "./components/WebConsole/WebConsoleContainer";
|
|
14
|
-
import styles from "./index.module.scss";
|
|
7
|
+
import styles from "./index.module.scss";
|
|
8
|
+
export default function ResourceDetail(props) {
|
|
9
|
+
var _topo$viewProps, _topo$viewProps$viewe, _topo$viewProps$viewe2;
|
|
15
10
|
|
|
16
|
-
function ResourceDetail(props) {
|
|
17
11
|
var topo = props.topo,
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
var
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
notifier.on('topo_element_click', changeOverview);
|
|
55
|
-
return function () {
|
|
56
|
-
notifier.off(TopoEvent.EVENT_DOUBLE_CLICK, openOverview);
|
|
57
|
-
notifier.off('topo_element_click', changeOverview); // 清除数据
|
|
58
|
-
|
|
59
|
-
topoDispatchers.update({
|
|
60
|
-
id: '',
|
|
61
|
-
metricCodes: []
|
|
62
|
-
});
|
|
63
|
-
};
|
|
64
|
-
}, [lock]); // 解决切换拓扑图隐藏概览
|
|
65
|
-
|
|
66
|
-
useEffect(function () {
|
|
67
|
-
setVisible(false); // TODO 其他数据重置
|
|
68
|
-
}, [topoId]);
|
|
69
|
-
|
|
70
|
-
function getUser() {
|
|
71
|
-
return _getUser.apply(this, arguments);
|
|
72
|
-
} // select切换
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
function _getUser() {
|
|
76
|
-
_getUser = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee2() {
|
|
77
|
-
return _regeneratorRuntime.wrap(function _callee2$(_context2) {
|
|
78
|
-
while (1) {
|
|
79
|
-
switch (_context2.prev = _context2.next) {
|
|
80
|
-
case 0:
|
|
81
|
-
setUserId(function (prev) {
|
|
82
|
-
console.log('获取用户id', prev); // 如果已经获取过,就不再重新获取
|
|
83
|
-
|
|
84
|
-
if (!prev) {
|
|
85
|
-
_asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee() {
|
|
86
|
-
var res;
|
|
87
|
-
return _regeneratorRuntime.wrap(function _callee$(_context) {
|
|
88
|
-
while (1) {
|
|
89
|
-
switch (_context.prev = _context.next) {
|
|
90
|
-
case 0:
|
|
91
|
-
_context.next = 2;
|
|
92
|
-
return service.getUserId();
|
|
93
|
-
|
|
94
|
-
case 2:
|
|
95
|
-
res = _context.sent;
|
|
96
|
-
setUserId((res === null || res === void 0 ? void 0 : res.user_id) || '');
|
|
97
|
-
|
|
98
|
-
case 4:
|
|
99
|
-
case "end":
|
|
100
|
-
return _context.stop();
|
|
101
|
-
}
|
|
102
|
-
}
|
|
103
|
-
}, _callee);
|
|
104
|
-
}))();
|
|
105
|
-
}
|
|
106
|
-
|
|
107
|
-
return prev;
|
|
108
|
-
});
|
|
109
|
-
|
|
110
|
-
case 1:
|
|
111
|
-
case "end":
|
|
112
|
-
return _context2.stop();
|
|
113
|
-
}
|
|
114
|
-
}
|
|
115
|
-
}, _callee2);
|
|
12
|
+
userId = props.userId,
|
|
13
|
+
activeData = props.activeData,
|
|
14
|
+
resourceData = props.resourceData; // {/* <Tab.Item title="操作" key="2">操作</Tab.Item>
|
|
15
|
+
// <Tab.Item title="网络信息表" key="3">网络信息表</Tab.Item>
|
|
16
|
+
// <Tab.Item title="Web工作台" key="4">Web工作台</Tab.Item> */}
|
|
17
|
+
|
|
18
|
+
var tabBodys = [{
|
|
19
|
+
title: '资源概览',
|
|
20
|
+
content: /*#__PURE__*/React.createElement(ResourceOverview, _extends({}, props, activeData, {
|
|
21
|
+
userId: userId
|
|
22
|
+
}))
|
|
23
|
+
}, {
|
|
24
|
+
title: '集群成员',
|
|
25
|
+
content: /*#__PURE__*/React.createElement(ClusterMemberTable, {
|
|
26
|
+
data: resourceData,
|
|
27
|
+
topo: topo
|
|
28
|
+
}),
|
|
29
|
+
visible: !!resourceData.cluster
|
|
30
|
+
}, {
|
|
31
|
+
title: 'Web工作台',
|
|
32
|
+
content: /*#__PURE__*/React.createElement(WebConsole, {
|
|
33
|
+
data: resourceData,
|
|
34
|
+
topo: topo
|
|
35
|
+
}),
|
|
36
|
+
visible: activeData.type === 'node' && ((_topo$viewProps = topo.viewProps) === null || _topo$viewProps === void 0 ? void 0 : (_topo$viewProps$viewe = _topo$viewProps.viewerProps) === null || _topo$viewProps$viewe === void 0 ? void 0 : (_topo$viewProps$viewe2 = _topo$viewProps$viewe.topoContext) === null || _topo$viewProps$viewe2 === void 0 ? void 0 : _topo$viewProps$viewe2.isNetworkTopo)
|
|
37
|
+
}].filter(function (item) {
|
|
38
|
+
return item.visible !== false;
|
|
39
|
+
});
|
|
40
|
+
|
|
41
|
+
if (tabBodys.length === 1) {
|
|
42
|
+
return /*#__PURE__*/React.createElement(ResourceOverview, _extends({}, props, activeData, {
|
|
43
|
+
userId: userId,
|
|
44
|
+
style: {
|
|
45
|
+
overflowY: 'auto',
|
|
46
|
+
height: '100%'
|
|
47
|
+
}
|
|
116
48
|
}));
|
|
117
|
-
return _getUser.apply(this, arguments);
|
|
118
|
-
}
|
|
119
|
-
|
|
120
|
-
function onChangeActive(activeNode) {
|
|
121
|
-
activeNode && init(_extends({}, activeNode, {
|
|
122
|
-
type: 'node'
|
|
123
|
-
}), 'select');
|
|
124
|
-
} // 单击切换
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
function changeOverview(node) {
|
|
128
|
-
var data = node.getAttrObject();
|
|
129
|
-
init(data, 'click');
|
|
130
|
-
}
|
|
131
|
-
|
|
132
|
-
function openOverviewByHtElement(element) {
|
|
133
|
-
openOverview(element.getAttrObject());
|
|
134
|
-
} // 双击打开
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
function openOverview(data) {
|
|
138
|
-
if (lock) {
|
|
139
|
-
init(data, 'doubleClick');
|
|
140
|
-
}
|
|
141
|
-
}
|
|
142
|
-
|
|
143
|
-
function init(data, targetType) {
|
|
144
|
-
console.log('初始化基本信息', data, targetType);
|
|
145
|
-
var id = data.id,
|
|
146
|
-
name = data.name,
|
|
147
|
-
type = data.type,
|
|
148
|
-
ciType = data.ciType,
|
|
149
|
-
ciName = data.ciName; // 仅展示资源和链路的概览
|
|
150
|
-
|
|
151
|
-
var resourceData = topo.dataModel.getDataById(id);
|
|
152
|
-
|
|
153
|
-
if (!resourceData) {
|
|
154
|
-
return;
|
|
155
|
-
}
|
|
156
|
-
|
|
157
|
-
var operation = resourceData.operation,
|
|
158
|
-
permission = resourceData.permission;
|
|
159
|
-
if ( // 没有权限不显示
|
|
160
|
-
!operation && !(permission !== null && permission !== void 0 && permission.readable) || // 没有citype不显示
|
|
161
|
-
!ciType) return;
|
|
162
|
-
var htElement = topo.getDataModel().getDataByTag(id);
|
|
163
|
-
|
|
164
|
-
if (!canShow(htElement)) {
|
|
165
|
-
return;
|
|
166
|
-
}
|
|
167
|
-
|
|
168
|
-
setActiveData({
|
|
169
|
-
id: id,
|
|
170
|
-
name: name,
|
|
171
|
-
type: {
|
|
172
|
-
linkGroup: 'link',
|
|
173
|
-
group: 'node'
|
|
174
|
-
}[type] || type,
|
|
175
|
-
ciType: ciType,
|
|
176
|
-
ciName: ciName
|
|
177
|
-
}); // 显示隐藏
|
|
178
|
-
|
|
179
|
-
targetType === 'doubleClick' && setVisible(true); // userId
|
|
180
|
-
|
|
181
|
-
getUser();
|
|
182
49
|
}
|
|
183
50
|
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
}, {
|
|
196
|
-
title: '集群成员',
|
|
197
|
-
content: /*#__PURE__*/React.createElement(ClusterMemberTable, {
|
|
198
|
-
data: resourceData,
|
|
199
|
-
topo: topo
|
|
200
|
-
}),
|
|
201
|
-
visible: resourceData.cluster
|
|
202
|
-
}, {
|
|
203
|
-
title: 'Web工作台',
|
|
204
|
-
content: /*#__PURE__*/React.createElement(WebConsole, {
|
|
205
|
-
data: resourceData,
|
|
206
|
-
topo: topo
|
|
207
|
-
}),
|
|
208
|
-
visible: activeData.type === 'node' && ((_topo$viewProps = topo.viewProps) === null || _topo$viewProps === void 0 ? void 0 : (_topo$viewProps$viewe = _topo$viewProps.viewerProps) === null || _topo$viewProps$viewe === void 0 ? void 0 : (_topo$viewProps$viewe2 = _topo$viewProps$viewe.topoContext) === null || _topo$viewProps$viewe2 === void 0 ? void 0 : _topo$viewProps$viewe2.isNetworkTopo)
|
|
209
|
-
}].filter(function (item) {
|
|
210
|
-
return item.visible !== false;
|
|
211
|
-
});
|
|
212
|
-
|
|
213
|
-
if (tabBodys.length === 1) {
|
|
214
|
-
return /*#__PURE__*/React.createElement(ResourceOverview, _extends({}, props, activeData, {
|
|
215
|
-
userId: userId,
|
|
216
|
-
style: {
|
|
217
|
-
overflowY: 'auto',
|
|
218
|
-
height: '100%'
|
|
219
|
-
}
|
|
220
|
-
}));
|
|
221
|
-
}
|
|
222
|
-
|
|
223
|
-
return /*#__PURE__*/React.createElement("div", {
|
|
224
|
-
className: styles.tabContainer
|
|
225
|
-
}, /*#__PURE__*/React.createElement(Tab, {
|
|
226
|
-
className: styles.tab
|
|
227
|
-
}, tabBodys.map(function (item, key) {
|
|
228
|
-
return /*#__PURE__*/React.createElement(Tab.Item, {
|
|
229
|
-
title: item.title,
|
|
230
|
-
key: item.title
|
|
231
|
-
}, item.content);
|
|
232
|
-
})));
|
|
233
|
-
};
|
|
234
|
-
|
|
235
|
-
return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(_Drawer, {
|
|
236
|
-
className: styles.baseInfo,
|
|
237
|
-
closeMode: ['close', 'esc'],
|
|
238
|
-
visible: visible,
|
|
239
|
-
title: /*#__PURE__*/React.createElement(Title, _extends({}, activeData, {
|
|
240
|
-
topo: topo,
|
|
241
|
-
onChange: onChangeActive
|
|
242
|
-
})),
|
|
243
|
-
width: 580,
|
|
244
|
-
hasMask: false,
|
|
245
|
-
onClose: function onClose() {
|
|
246
|
-
return setVisible(false);
|
|
247
|
-
}
|
|
248
|
-
}, visible && resourceData && renderContent()));
|
|
249
|
-
}
|
|
250
|
-
|
|
251
|
-
ResourceDetail.propTypes = {
|
|
252
|
-
canShow: PropTypes.func
|
|
253
|
-
};
|
|
254
|
-
ResourceDetail.defaultProps = {
|
|
255
|
-
canShow: function canShow(htElement) {
|
|
256
|
-
return true;
|
|
257
|
-
}
|
|
258
|
-
};
|
|
259
|
-
export default ResourceDetail;
|
|
51
|
+
return /*#__PURE__*/React.createElement("div", {
|
|
52
|
+
className: styles.tabContainer
|
|
53
|
+
}, /*#__PURE__*/React.createElement(Tab, {
|
|
54
|
+
className: styles.tab
|
|
55
|
+
}, tabBodys.map(function (item, key) {
|
|
56
|
+
return /*#__PURE__*/React.createElement(Tab.Item, {
|
|
57
|
+
title: item.title,
|
|
58
|
+
key: item.title
|
|
59
|
+
}, item.content);
|
|
60
|
+
})));
|
|
61
|
+
}
|
|
@@ -0,0 +1,256 @@
|
|
|
1
|
+
import _Drawer from "@alifd/next/es/drawer";
|
|
2
|
+
import _extends from "@babel/runtime/helpers/extends";
|
|
3
|
+
import _asyncToGenerator from "@babel/runtime/helpers/asyncToGenerator";
|
|
4
|
+
import _regeneratorRuntime from "@babel/runtime/regenerator";
|
|
5
|
+
import { TopoEvent } from '@riil-frontend/component-topology-graph';
|
|
6
|
+
import PropTypes from 'prop-types';
|
|
7
|
+
import React, { useEffect, useId, useState } from 'react';
|
|
8
|
+
import Tab from "../../../../../components/FullheightTab";
|
|
9
|
+
import service from "../../../../services/overview";
|
|
10
|
+
import ClusterMemberTable from "./components/ClusterMemberTable";
|
|
11
|
+
import Title from "./components/DrawerTitle";
|
|
12
|
+
import ResourceOverview from "./components/ResourceOverview";
|
|
13
|
+
import WebConsole from "./components/WebConsole/WebConsoleContainer";
|
|
14
|
+
import styles from "./index.module.scss";
|
|
15
|
+
import ResourceDetail from "./ResourceDetail"; // 基本信息
|
|
16
|
+
|
|
17
|
+
function ResourceDetailDrawer(props) {
|
|
18
|
+
var topo = props.topo,
|
|
19
|
+
canShow = props.canShow;
|
|
20
|
+
|
|
21
|
+
var _topo$store$useModel = topo.store.useModel('topoBaseInfoOverview'),
|
|
22
|
+
topoState = _topo$store$useModel[0],
|
|
23
|
+
topoDispatchers = _topo$store$useModel[1];
|
|
24
|
+
|
|
25
|
+
var _topo$store$useModelS = topo.store.useModelState('topoMod'),
|
|
26
|
+
topoId = _topo$store$useModelS.topoId,
|
|
27
|
+
topoModData = _topo$store$useModelS.data;
|
|
28
|
+
|
|
29
|
+
var _topo$store$useModelS2 = topo.store.useModelState("lock"),
|
|
30
|
+
lock = _topo$store$useModelS2.lock;
|
|
31
|
+
|
|
32
|
+
var _useState = useState(false),
|
|
33
|
+
visible = _useState[0],
|
|
34
|
+
setVisible = _useState[1];
|
|
35
|
+
|
|
36
|
+
var _useState2 = useState({
|
|
37
|
+
id: '',
|
|
38
|
+
name: '',
|
|
39
|
+
type: '',
|
|
40
|
+
// 类型: node、link
|
|
41
|
+
ciType: '',
|
|
42
|
+
ciName: ''
|
|
43
|
+
}),
|
|
44
|
+
activeData = _useState2[0],
|
|
45
|
+
setActiveData = _useState2[1];
|
|
46
|
+
|
|
47
|
+
var _useState3 = useState(''),
|
|
48
|
+
userId = _useState3[0],
|
|
49
|
+
setUserId = _useState3[1];
|
|
50
|
+
|
|
51
|
+
var resourceData = topo.dataModel.useDataById(activeData.id);
|
|
52
|
+
useEffect(function () {
|
|
53
|
+
var notifier = topo.view.topoClient.notifier;
|
|
54
|
+
notifier.on(TopoEvent.EVENT_DOUBLE_CLICK, openOverview);
|
|
55
|
+
notifier.on('topo_element_click', changeOverview);
|
|
56
|
+
return function () {
|
|
57
|
+
notifier.off(TopoEvent.EVENT_DOUBLE_CLICK, openOverview);
|
|
58
|
+
notifier.off('topo_element_click', changeOverview); // 清除数据
|
|
59
|
+
|
|
60
|
+
topoDispatchers.update({
|
|
61
|
+
id: '',
|
|
62
|
+
metricCodes: []
|
|
63
|
+
});
|
|
64
|
+
};
|
|
65
|
+
}, [lock]); // 解决切换拓扑图隐藏概览
|
|
66
|
+
|
|
67
|
+
useEffect(function () {
|
|
68
|
+
setVisible(false); // TODO 其他数据重置
|
|
69
|
+
}, [topoId]);
|
|
70
|
+
|
|
71
|
+
function getUser() {
|
|
72
|
+
return _getUser.apply(this, arguments);
|
|
73
|
+
} // select切换
|
|
74
|
+
|
|
75
|
+
|
|
76
|
+
function _getUser() {
|
|
77
|
+
_getUser = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee2() {
|
|
78
|
+
return _regeneratorRuntime.wrap(function _callee2$(_context2) {
|
|
79
|
+
while (1) {
|
|
80
|
+
switch (_context2.prev = _context2.next) {
|
|
81
|
+
case 0:
|
|
82
|
+
setUserId(function (prev) {
|
|
83
|
+
console.log('获取用户id', prev); // 如果已经获取过,就不再重新获取
|
|
84
|
+
|
|
85
|
+
if (!prev) {
|
|
86
|
+
_asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee() {
|
|
87
|
+
var res;
|
|
88
|
+
return _regeneratorRuntime.wrap(function _callee$(_context) {
|
|
89
|
+
while (1) {
|
|
90
|
+
switch (_context.prev = _context.next) {
|
|
91
|
+
case 0:
|
|
92
|
+
_context.next = 2;
|
|
93
|
+
return service.getUserId();
|
|
94
|
+
|
|
95
|
+
case 2:
|
|
96
|
+
res = _context.sent;
|
|
97
|
+
setUserId((res === null || res === void 0 ? void 0 : res.user_id) || '');
|
|
98
|
+
|
|
99
|
+
case 4:
|
|
100
|
+
case "end":
|
|
101
|
+
return _context.stop();
|
|
102
|
+
}
|
|
103
|
+
}
|
|
104
|
+
}, _callee);
|
|
105
|
+
}))();
|
|
106
|
+
}
|
|
107
|
+
|
|
108
|
+
return prev;
|
|
109
|
+
});
|
|
110
|
+
|
|
111
|
+
case 1:
|
|
112
|
+
case "end":
|
|
113
|
+
return _context2.stop();
|
|
114
|
+
}
|
|
115
|
+
}
|
|
116
|
+
}, _callee2);
|
|
117
|
+
}));
|
|
118
|
+
return _getUser.apply(this, arguments);
|
|
119
|
+
}
|
|
120
|
+
|
|
121
|
+
function onChangeActive(activeNode) {
|
|
122
|
+
activeNode && init(_extends({}, activeNode, {
|
|
123
|
+
type: 'node'
|
|
124
|
+
}), 'select');
|
|
125
|
+
} // 单击切换
|
|
126
|
+
|
|
127
|
+
|
|
128
|
+
function changeOverview(node) {
|
|
129
|
+
var data = node.getAttrObject();
|
|
130
|
+
init(data, 'click');
|
|
131
|
+
}
|
|
132
|
+
|
|
133
|
+
function openOverviewByHtElement(element) {
|
|
134
|
+
openOverview(element.getAttrObject());
|
|
135
|
+
} // 双击打开
|
|
136
|
+
|
|
137
|
+
|
|
138
|
+
function openOverview(data) {
|
|
139
|
+
if (lock) {
|
|
140
|
+
init(data, 'doubleClick');
|
|
141
|
+
}
|
|
142
|
+
}
|
|
143
|
+
|
|
144
|
+
function init(data, targetType) {
|
|
145
|
+
console.log('初始化基本信息', data, targetType);
|
|
146
|
+
var id = data.id,
|
|
147
|
+
name = data.name,
|
|
148
|
+
type = data.type,
|
|
149
|
+
ciType = data.ciType,
|
|
150
|
+
ciName = data.ciName; // 仅展示资源和链路的概览
|
|
151
|
+
|
|
152
|
+
var resourceData = topo.dataModel.getDataById(id);
|
|
153
|
+
|
|
154
|
+
if (!resourceData) {
|
|
155
|
+
return;
|
|
156
|
+
}
|
|
157
|
+
|
|
158
|
+
var operation = resourceData.operation,
|
|
159
|
+
permission = resourceData.permission;
|
|
160
|
+
if ( // 没有权限不显示
|
|
161
|
+
!operation && !(permission !== null && permission !== void 0 && permission.readable) || // 没有citype不显示
|
|
162
|
+
!ciType) return;
|
|
163
|
+
var htElement = topo.getDataModel().getDataByTag(id);
|
|
164
|
+
|
|
165
|
+
if (!canShow(htElement)) {
|
|
166
|
+
return;
|
|
167
|
+
}
|
|
168
|
+
|
|
169
|
+
setActiveData({
|
|
170
|
+
id: id,
|
|
171
|
+
name: name,
|
|
172
|
+
type: {
|
|
173
|
+
linkGroup: 'link',
|
|
174
|
+
group: 'node'
|
|
175
|
+
}[type] || type,
|
|
176
|
+
ciType: ciType,
|
|
177
|
+
ciName: ciName
|
|
178
|
+
}); // 显示隐藏
|
|
179
|
+
|
|
180
|
+
targetType === 'doubleClick' && setVisible(true); // userId
|
|
181
|
+
|
|
182
|
+
getUser();
|
|
183
|
+
}
|
|
184
|
+
|
|
185
|
+
var renderContent = function renderContent() {
|
|
186
|
+
var _topo$viewProps, _topo$viewProps$viewe, _topo$viewProps$viewe2;
|
|
187
|
+
|
|
188
|
+
// {/* <Tab.Item title="操作" key="2">操作</Tab.Item>
|
|
189
|
+
// <Tab.Item title="网络信息表" key="3">网络信息表</Tab.Item>
|
|
190
|
+
// <Tab.Item title="Web工作台" key="4">Web工作台</Tab.Item> */}
|
|
191
|
+
var tabBodys = [{
|
|
192
|
+
title: '资源概览',
|
|
193
|
+
content: /*#__PURE__*/React.createElement(ResourceOverview, _extends({}, props, activeData, {
|
|
194
|
+
userId: userId
|
|
195
|
+
}))
|
|
196
|
+
}, {
|
|
197
|
+
title: '集群成员',
|
|
198
|
+
content: /*#__PURE__*/React.createElement(ClusterMemberTable, {
|
|
199
|
+
data: resourceData,
|
|
200
|
+
topo: topo
|
|
201
|
+
}),
|
|
202
|
+
visible: resourceData.cluster
|
|
203
|
+
}, {
|
|
204
|
+
title: 'Web工作台',
|
|
205
|
+
content: /*#__PURE__*/React.createElement(WebConsole, {
|
|
206
|
+
data: resourceData,
|
|
207
|
+
topo: topo
|
|
208
|
+
}),
|
|
209
|
+
visible: activeData.type === 'node' && ((_topo$viewProps = topo.viewProps) === null || _topo$viewProps === void 0 ? void 0 : (_topo$viewProps$viewe = _topo$viewProps.viewerProps) === null || _topo$viewProps$viewe === void 0 ? void 0 : (_topo$viewProps$viewe2 = _topo$viewProps$viewe.topoContext) === null || _topo$viewProps$viewe2 === void 0 ? void 0 : _topo$viewProps$viewe2.isNetworkTopo)
|
|
210
|
+
}].filter(function (item) {
|
|
211
|
+
return item.visible !== false;
|
|
212
|
+
});
|
|
213
|
+
|
|
214
|
+
if (tabBodys.length === 1) {
|
|
215
|
+
return /*#__PURE__*/React.createElement(ResourceOverview, _extends({}, props, activeData, {
|
|
216
|
+
userId: userId,
|
|
217
|
+
style: {
|
|
218
|
+
overflowY: 'auto',
|
|
219
|
+
height: '100%'
|
|
220
|
+
}
|
|
221
|
+
}));
|
|
222
|
+
}
|
|
223
|
+
|
|
224
|
+
return /*#__PURE__*/React.createElement(ResourceDetail, _extends({}, props, {
|
|
225
|
+
topo: topo,
|
|
226
|
+
userId: useId,
|
|
227
|
+
activeData: activeData,
|
|
228
|
+
resourceData: resourceData
|
|
229
|
+
}));
|
|
230
|
+
};
|
|
231
|
+
|
|
232
|
+
return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(_Drawer, {
|
|
233
|
+
className: styles.baseInfo,
|
|
234
|
+
closeMode: ['close', 'esc'],
|
|
235
|
+
visible: visible,
|
|
236
|
+
title: /*#__PURE__*/React.createElement(Title, _extends({}, activeData, {
|
|
237
|
+
topo: topo,
|
|
238
|
+
onChange: onChangeActive
|
|
239
|
+
})),
|
|
240
|
+
width: 580,
|
|
241
|
+
hasMask: false,
|
|
242
|
+
onClose: function onClose() {
|
|
243
|
+
return setVisible(false);
|
|
244
|
+
}
|
|
245
|
+
}, visible && resourceData && renderContent()));
|
|
246
|
+
}
|
|
247
|
+
|
|
248
|
+
ResourceDetailDrawer.propTypes = {
|
|
249
|
+
canShow: PropTypes.func
|
|
250
|
+
};
|
|
251
|
+
ResourceDetailDrawer.defaultProps = {
|
|
252
|
+
canShow: function canShow(htElement) {
|
|
253
|
+
return true;
|
|
254
|
+
}
|
|
255
|
+
};
|
|
256
|
+
export default ResourceDetailDrawer;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import _extends from "@babel/runtime/helpers/extends";
|
|
2
2
|
import React from 'react';
|
|
3
|
-
import
|
|
3
|
+
import ResourceDetailDrawer from "./ResourceDetailDrawer";
|
|
4
4
|
|
|
5
5
|
function ResourceDetailPlugin(props) {
|
|
6
6
|
var viewerProps = props.viewerProps;
|
|
@@ -11,7 +11,7 @@ function ResourceDetailPlugin(props) {
|
|
|
11
11
|
return null;
|
|
12
12
|
}
|
|
13
13
|
|
|
14
|
-
return /*#__PURE__*/React.createElement(
|
|
14
|
+
return /*#__PURE__*/React.createElement(ResourceDetailDrawer, _extends({}, props, resourceDetailProps));
|
|
15
15
|
}
|
|
16
16
|
|
|
17
17
|
export default ResourceDetailPlugin;
|