@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.
@@ -55,6 +55,10 @@ export var HistoryManager = /*#__PURE__*/function () {
55
55
  var items = [{
56
56
  modelName: 'topoMod',
57
57
  property: 'data'
58
+ }, // 拓扑类型
59
+ {
60
+ modelName: 'topoMod',
61
+ property: 'type'
58
62
  }, {
59
63
  modelName: 'displayConfig',
60
64
  property: 'expandAllEdges'
@@ -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.21" === 'string' ? "5.0.0-alpha.21" : null;
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 _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, 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
- canShow = props.canShow;
19
-
20
- var _topo$store$useModel = topo.store.useModel('topoBaseInfoOverview'),
21
- topoState = _topo$store$useModel[0],
22
- topoDispatchers = _topo$store$useModel[1];
23
-
24
- var _topo$store$useModelS = topo.store.useModelState('topoMod'),
25
- topoId = _topo$store$useModelS.topoId,
26
- topoModData = _topo$store$useModelS.data;
27
-
28
- var _topo$store$useModelS2 = topo.store.useModelState("lock"),
29
- lock = _topo$store$useModelS2.lock;
30
-
31
- var _useState = useState(false),
32
- visible = _useState[0],
33
- setVisible = _useState[1];
34
-
35
- var _useState2 = useState({
36
- id: '',
37
- name: '',
38
- type: '',
39
- // 类型: node、link
40
- ciType: '',
41
- ciName: ''
42
- }),
43
- activeData = _useState2[0],
44
- setActiveData = _useState2[1];
45
-
46
- var _useState3 = useState(''),
47
- userId = _useState3[0],
48
- setUserId = _useState3[1];
49
-
50
- var resourceData = topo.dataModel.useDataById(activeData.id);
51
- useEffect(function () {
52
- var notifier = topo.view.topoClient.notifier;
53
- notifier.on(TopoEvent.EVENT_DOUBLE_CLICK, openOverview);
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
- var renderContent = function renderContent() {
185
- var _topo$viewProps, _topo$viewProps$viewe, _topo$viewProps$viewe2;
186
-
187
- // {/* <Tab.Item title="操作" key="2">操作</Tab.Item>
188
- // <Tab.Item title="网络信息表" key="3">网络信息表</Tab.Item>
189
- // <Tab.Item title="Web工作台" key="4">Web工作台</Tab.Item> */}
190
- var tabBodys = [{
191
- title: '资源概览',
192
- content: /*#__PURE__*/React.createElement(ResourceOverview, _extends({}, props, activeData, {
193
- userId: userId
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 ResourceDetail from "./ResourceDetail";
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(ResourceDetail, _extends({}, props, resourceDetailProps));
14
+ return /*#__PURE__*/React.createElement(ResourceDetailDrawer, _extends({}, props, resourceDetailProps));
15
15
  }
16
16
 
17
17
  export default ResourceDetailPlugin;