@riil-frontend/component-topology 10.0.18 → 10.0.20
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/1.js +2 -2
- package/build/2.js +1 -1
- package/build/index.css +1 -1
- package/build/index.js +19 -19
- package/es/core/editor/components/Toolbar/widgets/BoxBackgroundButton/BoxBackgroundSetting.js +2 -2
- package/es/core/editor/components/Toolbar/widgets/BoxBackgroundButton/BoxBackgroundUtil.js +1 -1
- package/es/core/editor/config/themes.js +11 -11
- package/es/core/models/TopoApp.js +1 -1
- package/es/core/viewer/components/plugins/ElementDetailDrawer/components/DetailDrawer.js +15 -0
- package/es/core/viewer/components/plugins/ElementDetailDrawer/components/DetailDrawer.module.scss +16 -0
- package/es/core/viewer/components/plugins/ElementDetailDrawer/hooks/useElementDetailManager.js +197 -0
- package/es/core/viewer/components/plugins/ResourceDetail/DefaultDetailContent.js +63 -0
- package/es/core/viewer/components/plugins/ResourceDetail/ResourceDetailDrawer.js +31 -217
- package/es/core/viewer/components/plugins/ResourceDetail/components/DrawerTitle.js +67 -49
- package/es/core/viewer/components/plugins/ResourceDetail/hooks/useUserId.js +66 -0
- package/es/style.js +1 -1
- package/lib/core/editor/components/Toolbar/widgets/BoxBackgroundButton/BoxBackgroundSetting.js +2 -2
- package/lib/core/editor/components/Toolbar/widgets/BoxBackgroundButton/BoxBackgroundUtil.js +1 -1
- package/lib/core/editor/config/themes.js +11 -11
- package/lib/core/models/TopoApp.js +1 -1
- package/lib/core/viewer/components/plugins/ElementDetailDrawer/components/DetailDrawer.js +26 -0
- package/lib/core/viewer/components/plugins/ElementDetailDrawer/components/DetailDrawer.module.scss +16 -0
- package/lib/core/viewer/components/plugins/ElementDetailDrawer/hooks/useElementDetailManager.js +211 -0
- package/lib/core/viewer/components/plugins/ResourceDetail/DefaultDetailContent.js +79 -0
- package/lib/core/viewer/components/plugins/ResourceDetail/ResourceDetailDrawer.js +31 -223
- package/lib/core/viewer/components/plugins/ResourceDetail/components/DrawerTitle.js +69 -51
- package/lib/core/viewer/components/plugins/ResourceDetail/hooks/useUserId.js +81 -0
- package/lib/style.js +1 -1
- package/package.json +2 -2
@@ -4,62 +4,80 @@ import { dataSearch, isAvailableArray } from '@riil-frontend/utils';
|
|
4
4
|
import React, { useState } from 'react';
|
5
5
|
import styles from "../index.module.scss";
|
6
6
|
|
7
|
-
function
|
7
|
+
function NodeDrawerTitle(_ref) {
|
8
8
|
var id = _ref.id,
|
9
|
-
name = _ref.name,
|
10
|
-
type = _ref.type,
|
11
9
|
onChange = _ref.onChange,
|
12
10
|
topo = _ref.topo;
|
13
11
|
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
setKeyword = _useState[1];
|
12
|
+
var _useState = useState(''),
|
13
|
+
keyword = _useState[0],
|
14
|
+
setKeyword = _useState[1];
|
18
15
|
|
19
|
-
|
16
|
+
var resourceData = topo.dataModel.useDataById(id);
|
17
|
+
var name = resourceData === null || resourceData === void 0 ? void 0 : resourceData.name;
|
18
|
+
var nodes = topo.store.getModelState('topoMod').data.nodes; // 查询资源列表
|
20
19
|
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
className: styles['drawer-title']
|
45
|
-
}, name),
|
46
|
-
onItemClick: function onItemClick(key) {
|
47
|
-
return onChange(nodes.find(function (item) {
|
48
|
-
return item.id === key;
|
49
|
-
}) || '');
|
50
|
-
}
|
51
|
-
}, isAvailableArray(filterNodes) && filterNodes.length ? filterNodes.map(function (item) {
|
52
|
-
return /*#__PURE__*/React.createElement(_MenuButton.Item, {
|
53
|
-
key: item.id,
|
54
|
-
disabled: !item.operation
|
55
|
-
}, item.name);
|
56
|
-
}) : /*#__PURE__*/React.createElement("div", {
|
57
|
-
className: styles['not-data']
|
58
|
-
}, "\u6682\u65E0\u6570\u636E"));
|
59
|
-
} else {
|
60
|
-
return /*#__PURE__*/React.createElement("div", {
|
20
|
+
nodes = nodes.filter(function (item) {
|
21
|
+
return item.id !== id;
|
22
|
+
});
|
23
|
+
if (!nodes.length) return name;
|
24
|
+
var filterNodes = dataSearch(nodes, ['name'], keyword);
|
25
|
+
return /*#__PURE__*/React.createElement(_MenuButton, {
|
26
|
+
text: true,
|
27
|
+
autoWidth: false,
|
28
|
+
size: "large",
|
29
|
+
popupClassName: styles['title-popup'],
|
30
|
+
menuProps: {
|
31
|
+
header: /*#__PURE__*/React.createElement(_Search, {
|
32
|
+
shape: "simple",
|
33
|
+
placeholder: "\u8BF7\u8F93\u5165\u5173\u952E\u5B57",
|
34
|
+
className: styles.search,
|
35
|
+
hasClear: true,
|
36
|
+
onChange: function onChange(val) {
|
37
|
+
return !val && setKeyword(val);
|
38
|
+
},
|
39
|
+
onSearch: setKeyword
|
40
|
+
})
|
41
|
+
},
|
42
|
+
label: /*#__PURE__*/React.createElement("div", {
|
61
43
|
className: styles['drawer-title']
|
62
|
-
},
|
44
|
+
}, name),
|
45
|
+
onItemClick: function onItemClick(key) {
|
46
|
+
return onChange({
|
47
|
+
id: key
|
48
|
+
});
|
49
|
+
}
|
50
|
+
}, isAvailableArray(filterNodes) && filterNodes.length ? filterNodes.map(function (item) {
|
51
|
+
return /*#__PURE__*/React.createElement(_MenuButton.Item, {
|
52
|
+
key: item.id,
|
53
|
+
disabled: !item.operation
|
54
|
+
}, item.name);
|
55
|
+
}) : /*#__PURE__*/React.createElement("div", {
|
56
|
+
className: styles['not-data']
|
57
|
+
}, "\u6682\u65E0\u6570\u636E"));
|
58
|
+
}
|
59
|
+
|
60
|
+
function LinkDrawerTitle(_ref2) {
|
61
|
+
var id = _ref2.id,
|
62
|
+
onChange = _ref2.onChange,
|
63
|
+
topo = _ref2.topo;
|
64
|
+
return /*#__PURE__*/React.createElement("div", {
|
65
|
+
className: styles['drawer-title']
|
66
|
+
}, "\u94FE\u8DEF\u8BE6\u60C5");
|
67
|
+
}
|
68
|
+
|
69
|
+
function Title(props) {
|
70
|
+
var id = props.id,
|
71
|
+
data = props.data,
|
72
|
+
onChange = props.onChange,
|
73
|
+
topo = props.topo;
|
74
|
+
|
75
|
+
if (!id) {
|
76
|
+
return null;
|
77
|
+
} else if ((data === null || data === void 0 ? void 0 : data.type) === 'node') {
|
78
|
+
return /*#__PURE__*/React.createElement(NodeDrawerTitle, props);
|
79
|
+
} else {
|
80
|
+
return /*#__PURE__*/React.createElement(LinkDrawerTitle, props);
|
63
81
|
}
|
64
82
|
}
|
65
83
|
|
@@ -0,0 +1,66 @@
|
|
1
|
+
import _asyncToGenerator from "@babel/runtime/helpers/asyncToGenerator";
|
2
|
+
import _regeneratorRuntime from "@babel/runtime/regenerator";
|
3
|
+
import React, { useState } from 'react';
|
4
|
+
import service from "../../../../../services/overview";
|
5
|
+
|
6
|
+
function useUserId(props) {
|
7
|
+
var _useState = useState(''),
|
8
|
+
userId = _useState[0],
|
9
|
+
setUserId = _useState[1];
|
10
|
+
|
11
|
+
function fetchUserId() {
|
12
|
+
return _fetchUserId.apply(this, arguments);
|
13
|
+
}
|
14
|
+
|
15
|
+
function _fetchUserId() {
|
16
|
+
_fetchUserId = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee2() {
|
17
|
+
return _regeneratorRuntime.wrap(function _callee2$(_context2) {
|
18
|
+
while (1) {
|
19
|
+
switch (_context2.prev = _context2.next) {
|
20
|
+
case 0:
|
21
|
+
setUserId(function (prev) {
|
22
|
+
// console.log('获取用户id', prev);
|
23
|
+
// 如果已经获取过,就不再重新获取
|
24
|
+
if (!prev) {
|
25
|
+
_asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee() {
|
26
|
+
var res;
|
27
|
+
return _regeneratorRuntime.wrap(function _callee$(_context) {
|
28
|
+
while (1) {
|
29
|
+
switch (_context.prev = _context.next) {
|
30
|
+
case 0:
|
31
|
+
_context.next = 2;
|
32
|
+
return service.getUserId();
|
33
|
+
|
34
|
+
case 2:
|
35
|
+
res = _context.sent;
|
36
|
+
setUserId((res === null || res === void 0 ? void 0 : res.user_id) || '');
|
37
|
+
|
38
|
+
case 4:
|
39
|
+
case "end":
|
40
|
+
return _context.stop();
|
41
|
+
}
|
42
|
+
}
|
43
|
+
}, _callee);
|
44
|
+
}))();
|
45
|
+
}
|
46
|
+
|
47
|
+
return prev;
|
48
|
+
});
|
49
|
+
|
50
|
+
case 1:
|
51
|
+
case "end":
|
52
|
+
return _context2.stop();
|
53
|
+
}
|
54
|
+
}
|
55
|
+
}, _callee2);
|
56
|
+
}));
|
57
|
+
return _fetchUserId.apply(this, arguments);
|
58
|
+
}
|
59
|
+
|
60
|
+
return {
|
61
|
+
fetchUserId: fetchUserId,
|
62
|
+
userId: userId
|
63
|
+
};
|
64
|
+
}
|
65
|
+
|
66
|
+
export default useUserId;
|
package/es/style.js
CHANGED
@@ -4,9 +4,9 @@ import '@alifd/next/es/message/style';
|
|
4
4
|
import '@riil-frontend/component-topology-utils/es/style';
|
5
5
|
import '@riil-frontend/component-riil-event-emitter/es/style';
|
6
6
|
import '@riil-frontend/utils/es/style';
|
7
|
-
import '@alifd/next/es/drawer/style';
|
8
7
|
import '@alifd/next/es/menu-button/style';
|
9
8
|
import '@alifd/next/es/search/style';
|
9
|
+
import '@alifd/next/es/drawer/style';
|
10
10
|
import '@alifd/next/es/tab/style';
|
11
11
|
import '@alifd/next/es/table/style';
|
12
12
|
import '@riil-frontend/component-table-layout/es/style';
|
package/lib/core/editor/components/Toolbar/widgets/BoxBackgroundButton/BoxBackgroundSetting.js
CHANGED
@@ -201,7 +201,7 @@ function BoxBackgroundSetting(props) {
|
|
201
201
|
}, /*#__PURE__*/_react["default"].createElement("span", null, "\u8FB9\u6846"), /*#__PURE__*/_react["default"].createElement("div", {
|
202
202
|
className: _BoxbackgroundSettingsModule["default"].borderWidth
|
203
203
|
}, /*#__PURE__*/_react["default"].createElement("img", {
|
204
|
-
src: "/img/topo/editor/toolbar/\u80CC\u666F\u586B\u5145\u53CA\u8FB9\u6846/\
|
204
|
+
src: "/img/topo/editor/toolbar/\u80CC\u666F\u586B\u5145\u53CA\u8FB9\u6846/\u8FB9\u6846.svg"
|
205
205
|
}), /*#__PURE__*/_react["default"].createElement(_FontColorRange["default"], {
|
206
206
|
max: 10,
|
207
207
|
min: 1,
|
@@ -212,7 +212,7 @@ function BoxBackgroundSetting(props) {
|
|
212
212
|
})), /*#__PURE__*/_react["default"].createElement("div", {
|
213
213
|
className: _BoxbackgroundSettingsModule["default"].backOpacity
|
214
214
|
}, /*#__PURE__*/_react["default"].createElement("img", {
|
215
|
-
src: "/img/topo/editor/toolbar/\u80CC\u666F\u586B\u5145\u53CA\u8FB9\u6846/\
|
215
|
+
src: "/img/topo/editor/toolbar/\u80CC\u666F\u586B\u5145\u53CA\u8FB9\u6846/\u80CC\u666F\u586B\u5145.svg"
|
216
216
|
}), /*#__PURE__*/_react["default"].createElement(_FontColorRange["default"], {
|
217
217
|
max: 100,
|
218
218
|
min: 0,
|
@@ -142,7 +142,7 @@ function setGroupStyle(element, style, tagStyle) {
|
|
142
142
|
} else {
|
143
143
|
borderCurrentColor = {
|
144
144
|
background: prevStyle.background,
|
145
|
-
opacity: style.
|
145
|
+
opacity: style.borderOpacity === undefined ? 1 : style.borderOpacity
|
146
146
|
};
|
147
147
|
}
|
148
148
|
|
@@ -9,9 +9,9 @@ var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends")
|
|
9
9
|
|
10
10
|
var baseLightTheme = {
|
11
11
|
color: '#FFFFFF',
|
12
|
-
globalNodeLabelColor: '
|
12
|
+
globalNodeLabelColor: 'rgba(0, 0, 0, 0.75)',
|
13
13
|
globalNodeLabelStyle: {
|
14
|
-
color: '
|
14
|
+
color: 'rgba(0, 0, 0, 0.75)'
|
15
15
|
},
|
16
16
|
globalEdgeTagStyle: {
|
17
17
|
color: '#777B9A',
|
@@ -21,16 +21,16 @@ var baseLightTheme = {
|
|
21
21
|
|
22
22
|
},
|
23
23
|
text: {
|
24
|
-
color: '
|
24
|
+
color: 'rgba(0, 0, 0, 0.75)'
|
25
25
|
},
|
26
26
|
group: {
|
27
27
|
style: {
|
28
|
-
'group.title.background': '
|
28
|
+
'group.title.background': '#3E6BB3',
|
29
29
|
// 标题背景颜色 #E4E9EE
|
30
|
-
'group.title.color': '#
|
30
|
+
'group.title.color': '#FFFFFF',
|
31
31
|
// 标题文字颜色
|
32
|
-
'group.background': 'rgba(255, 255, 255, 0.
|
33
|
-
'group.border.color': '
|
32
|
+
'group.background': 'rgba(255, 255, 255, 0.50)',
|
33
|
+
'group.border.color': 'rgba(255, 255, 255, 0.50)',
|
34
34
|
// 边框颜色
|
35
35
|
'group.splitLine': false // 标题底部边框
|
36
36
|
|
@@ -89,12 +89,12 @@ var THEMES = [(0, _extends2["default"])({}, baseLightTheme, {
|
|
89
89
|
},
|
90
90
|
group: {
|
91
91
|
style: {
|
92
|
-
'group.title.background': 'rgba(
|
92
|
+
'group.title.background': 'rgba(0, 85, 214, 0.60)',
|
93
93
|
// 标题背景颜色 #08A5F4
|
94
94
|
'group.title.color': '#FFFFFF',
|
95
95
|
// 标题文字颜色
|
96
|
-
'group.background': 'rgba(
|
97
|
-
'group.border.color': 'rgba(
|
96
|
+
'group.background': 'rgba(0, 0, 0, 0.30)',
|
97
|
+
'group.border.color': 'rgba(0, 0, 0, 0.30)',
|
98
98
|
// 边框颜色
|
99
99
|
'group.splitLine': false // 标题底部边框
|
100
100
|
|
@@ -136,7 +136,7 @@ var THEMES = [(0, _extends2["default"])({}, baseLightTheme, {
|
|
136
136
|
style: {
|
137
137
|
'group.title.background': 'rgba(0,0,0,0.01)',
|
138
138
|
// 标题背景颜色 #08A5F4
|
139
|
-
'group.title.color': '
|
139
|
+
'group.title.color': 'rgba(143, 236, 255, 1)',
|
140
140
|
// 标题文字颜色
|
141
141
|
'group.title.border.color': '#ffffff',
|
142
142
|
// 边框颜色
|
@@ -56,7 +56,7 @@ var _SelectionModel = _interopRequireDefault(require("./SelectionModel"));
|
|
56
56
|
var _CiCache = _interopRequireDefault(require("./cache/CiCache"));
|
57
57
|
|
58
58
|
// eslint-disable-next-line no-undef
|
59
|
-
var version = typeof "10.0.
|
59
|
+
var version = typeof "10.0.20" === 'string' ? "10.0.20" : null;
|
60
60
|
console.info("\u62D3\u6251\u7248\u672C: " + version);
|
61
61
|
/**
|
62
62
|
* 拓扑显示和编辑
|
@@ -0,0 +1,26 @@
|
|
1
|
+
"use strict";
|
2
|
+
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
4
|
+
|
5
|
+
exports.__esModule = true;
|
6
|
+
exports["default"] = void 0;
|
7
|
+
|
8
|
+
var _drawer = _interopRequireDefault(require("@alifd/next/lib/drawer"));
|
9
|
+
|
10
|
+
var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
|
11
|
+
|
12
|
+
var _react = _interopRequireDefault(require("react"));
|
13
|
+
|
14
|
+
var _DetailDrawerModule = _interopRequireDefault(require("./DetailDrawer.module.scss"));
|
15
|
+
|
16
|
+
function DetailDrawer(props) {
|
17
|
+
return /*#__PURE__*/_react["default"].createElement(_drawer["default"], (0, _extends2["default"])({
|
18
|
+
className: _DetailDrawerModule["default"].baseInfo,
|
19
|
+
closeMode: ['close', 'esc'],
|
20
|
+
width: 580,
|
21
|
+
hasMask: false
|
22
|
+
}, props));
|
23
|
+
}
|
24
|
+
|
25
|
+
var _default = DetailDrawer;
|
26
|
+
exports["default"] = _default;
|
package/lib/core/viewer/components/plugins/ElementDetailDrawer/components/DetailDrawer.module.scss
ADDED
@@ -0,0 +1,16 @@
|
|
1
|
+
@import '~@alifd/next/variables.scss';
|
2
|
+
|
3
|
+
.baseInfo {
|
4
|
+
box-shadow: 0px 0px 6px 1px #F2F7FD;
|
5
|
+
.drawer-title{
|
6
|
+
font-size: 16px;
|
7
|
+
font-weight: 500;
|
8
|
+
color: #4D6277;
|
9
|
+
}
|
10
|
+
:global {
|
11
|
+
.#{$css-prefix}drawer-body {
|
12
|
+
height: calc(100% - 49px);
|
13
|
+
padding: 0 24px;
|
14
|
+
}
|
15
|
+
}
|
16
|
+
}
|
package/lib/core/viewer/components/plugins/ElementDetailDrawer/hooks/useElementDetailManager.js
ADDED
@@ -0,0 +1,211 @@
|
|
1
|
+
"use strict";
|
2
|
+
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
4
|
+
|
5
|
+
exports.__esModule = true;
|
6
|
+
exports["default"] = void 0;
|
7
|
+
|
8
|
+
var _react = _interopRequireWildcard(require("react"));
|
9
|
+
|
10
|
+
var _componentTopologyGraph = require("@riil-frontend/component-topology-graph");
|
11
|
+
|
12
|
+
var _DefaultDetailContent = _interopRequireDefault(require("../../ResourceDetail/DefaultDetailContent"));
|
13
|
+
|
14
|
+
function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
|
15
|
+
|
16
|
+
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { "default": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj["default"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
17
|
+
|
18
|
+
function useElementDetailManager(props) {
|
19
|
+
var topo = props.topo,
|
20
|
+
canShow = props.canShow,
|
21
|
+
resourceDetailProps = props.resourceDetailProps;
|
22
|
+
|
23
|
+
var _topo$store$useModel = topo.store.useModel('resourceDetail'),
|
24
|
+
resourceDetailState = _topo$store$useModel[0],
|
25
|
+
resourceDetailDispatchers = _topo$store$useModel[1];
|
26
|
+
|
27
|
+
var visible = resourceDetailState.visible,
|
28
|
+
id = resourceDetailState.id;
|
29
|
+
var resourceData = topo.dataModel.useDataById(id);
|
30
|
+
var currentHtElementRef = (0, _react.useRef)(null);
|
31
|
+
|
32
|
+
function init() {
|
33
|
+
var notifier = topo.view.topoClient.notifier;
|
34
|
+
notifier.on('topo_element_double_click', handleDblClick);
|
35
|
+
notifier.on('topo_element_click', handleClick);
|
36
|
+
}
|
37
|
+
|
38
|
+
function destroy() {
|
39
|
+
var notifier = topo.view.topoClient.notifier;
|
40
|
+
notifier.off('topo_element_double_click', handleDblClick);
|
41
|
+
notifier.off('topo_element_click', handleClick); // 清除数据
|
42
|
+
|
43
|
+
currentHtElementRef.current = null;
|
44
|
+
resourceDetailDispatchers.reset();
|
45
|
+
var topoDispatchers = topo.store.getModelDispatchers('topoBaseInfoOverview');
|
46
|
+
topoDispatchers.update({
|
47
|
+
id: '',
|
48
|
+
metricCodes: []
|
49
|
+
});
|
50
|
+
} // 打开
|
51
|
+
|
52
|
+
/**
|
53
|
+
*
|
54
|
+
* @param {{id: string, htElement?}} data
|
55
|
+
* @returns
|
56
|
+
*/
|
57
|
+
|
58
|
+
|
59
|
+
function open(data) {
|
60
|
+
var id = data.id;
|
61
|
+
var resourceData = topo.dataModel.getDataById(id);
|
62
|
+
var htElement = data.htElement || topo.getDataModel().getDataByTag(id); // 如果是资源/链路,没有权限不显示
|
63
|
+
|
64
|
+
if (resourceData) {
|
65
|
+
var operation = resourceData.operation,
|
66
|
+
permission = resourceData.permission;
|
67
|
+
|
68
|
+
if (!operation && !(permission !== null && permission !== void 0 && permission.readable)) {
|
69
|
+
return;
|
70
|
+
}
|
71
|
+
} // 自定义显示方法
|
72
|
+
|
73
|
+
|
74
|
+
if (!canShow(htElement)) {
|
75
|
+
return;
|
76
|
+
}
|
77
|
+
|
78
|
+
var content = getDetailContent({
|
79
|
+
id: id
|
80
|
+
});
|
81
|
+
|
82
|
+
if (content) {
|
83
|
+
resourceDetailDispatchers.update({
|
84
|
+
visible: true,
|
85
|
+
id: id
|
86
|
+
});
|
87
|
+
}
|
88
|
+
}
|
89
|
+
|
90
|
+
function change(data) {
|
91
|
+
open(data);
|
92
|
+
} // 重置
|
93
|
+
|
94
|
+
|
95
|
+
function reset() {
|
96
|
+
currentHtElementRef.current = null;
|
97
|
+
resourceDetailDispatchers.reset();
|
98
|
+
var topoDispatchers = topo.store.getModelDispatchers('topoBaseInfoOverview');
|
99
|
+
topoDispatchers.update({
|
100
|
+
id: '',
|
101
|
+
metricCodes: []
|
102
|
+
});
|
103
|
+
} // 关闭
|
104
|
+
|
105
|
+
|
106
|
+
function close() {
|
107
|
+
currentHtElementRef.current = null;
|
108
|
+
resourceDetailDispatchers.update({
|
109
|
+
visible: false
|
110
|
+
});
|
111
|
+
} // 处理双击元素事件
|
112
|
+
|
113
|
+
|
114
|
+
function handleDblClick(htElement) {
|
115
|
+
var _topo$store$getModelS = topo.store.getModelState("lock"),
|
116
|
+
lock = _topo$store$getModelS.lock;
|
117
|
+
|
118
|
+
if (lock) {
|
119
|
+
open({
|
120
|
+
id: htElement.getTag() || "ht:" + htElement.getId(),
|
121
|
+
htElement: htElement
|
122
|
+
});
|
123
|
+
}
|
124
|
+
} // 单击切换
|
125
|
+
|
126
|
+
|
127
|
+
function handleClick(htElement) {
|
128
|
+
var resourceDetailState = topo.store.getModelState('resourceDetail');
|
129
|
+
var visible = resourceDetailState.visible;
|
130
|
+
|
131
|
+
if (!visible) {
|
132
|
+
return;
|
133
|
+
}
|
134
|
+
|
135
|
+
var data = htElement.getAttrObject();
|
136
|
+
open({
|
137
|
+
id: data.id,
|
138
|
+
htElement: htElement
|
139
|
+
});
|
140
|
+
}
|
141
|
+
|
142
|
+
function getDefaultDetailContent(_ref) {
|
143
|
+
var resourceData = _ref.resourceData,
|
144
|
+
htElement = _ref.htElement;
|
145
|
+
|
146
|
+
// 仅展示资源和链路的概览
|
147
|
+
if (!resourceData) {
|
148
|
+
return;
|
149
|
+
}
|
150
|
+
|
151
|
+
var ciType = resourceData.ciType; // 没有citype不显示
|
152
|
+
|
153
|
+
if (!ciType) return;
|
154
|
+
return _DefaultDetailContent["default"];
|
155
|
+
}
|
156
|
+
|
157
|
+
function getDetailContent(_ref2) {
|
158
|
+
var id = _ref2.id;
|
159
|
+
|
160
|
+
if (!id) {
|
161
|
+
return null;
|
162
|
+
}
|
163
|
+
|
164
|
+
var resourceData = topo.dataModel.getDataById(id);
|
165
|
+
var htElement = topo.getDataModel().getDataByTag(id);
|
166
|
+
var widget; // 支持自定义概览
|
167
|
+
|
168
|
+
var _ref3 = resourceDetailProps || {},
|
169
|
+
getCustomDetailContent = _ref3.getCustomDetailContent;
|
170
|
+
|
171
|
+
if (getCustomDetailContent) {
|
172
|
+
widget = getCustomDetailContent({
|
173
|
+
id: id,
|
174
|
+
resourceData: resourceData,
|
175
|
+
htElement: htElement
|
176
|
+
});
|
177
|
+
} // 无自定义使用默认
|
178
|
+
|
179
|
+
|
180
|
+
if (!widget) {
|
181
|
+
widget = getDefaultDetailContent({
|
182
|
+
resourceData: resourceData,
|
183
|
+
htElement: htElement
|
184
|
+
});
|
185
|
+
}
|
186
|
+
|
187
|
+
return widget;
|
188
|
+
}
|
189
|
+
|
190
|
+
var Content = visible && id ? getDetailContent({
|
191
|
+
id: id
|
192
|
+
}) : null;
|
193
|
+
var elementDetailManager = {
|
194
|
+
visible: visible,
|
195
|
+
id: id,
|
196
|
+
resourceData: resourceData,
|
197
|
+
Content: Content,
|
198
|
+
init: init,
|
199
|
+
destroy: destroy,
|
200
|
+
open: open,
|
201
|
+
change: change,
|
202
|
+
reset: reset,
|
203
|
+
close: close,
|
204
|
+
handleDblClick: handleDblClick,
|
205
|
+
handleClick: handleClick
|
206
|
+
};
|
207
|
+
return elementDetailManager;
|
208
|
+
}
|
209
|
+
|
210
|
+
var _default = useElementDetailManager;
|
211
|
+
exports["default"] = _default;
|
@@ -0,0 +1,79 @@
|
|
1
|
+
"use strict";
|
2
|
+
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
4
|
+
|
5
|
+
exports.__esModule = true;
|
6
|
+
exports["default"] = DefaultDetailContent;
|
7
|
+
|
8
|
+
var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
|
9
|
+
|
10
|
+
var _propTypes = _interopRequireDefault(require("prop-types"));
|
11
|
+
|
12
|
+
var _react = _interopRequireWildcard(require("react"));
|
13
|
+
|
14
|
+
var _ResourceDetail = _interopRequireDefault(require("./ResourceDetail"));
|
15
|
+
|
16
|
+
var _useUserId2 = _interopRequireDefault(require("./hooks/useUserId"));
|
17
|
+
|
18
|
+
function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
|
19
|
+
|
20
|
+
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { "default": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj["default"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
21
|
+
|
22
|
+
function DefaultDetailContent(props) {
|
23
|
+
var topo = props.topo,
|
24
|
+
id = props.id,
|
25
|
+
viewerProps = props.viewerProps,
|
26
|
+
onChangeActive = props.onChangeActive,
|
27
|
+
onClose = props.onClose;
|
28
|
+
|
29
|
+
var _useUserId = (0, _useUserId2["default"])(),
|
30
|
+
userId = _useUserId.userId,
|
31
|
+
fetchUserId = _useUserId.fetchUserId;
|
32
|
+
|
33
|
+
var resourceData = topo.dataModel.useDataById(id);
|
34
|
+
var activeData = (0, _react.useMemo)(function () {
|
35
|
+
return resourceData ? {
|
36
|
+
id: resourceData.id,
|
37
|
+
name: resourceData.name,
|
38
|
+
type: resourceData.type === 'node' ? 'node' : 'link',
|
39
|
+
// 类型: node、link
|
40
|
+
ciType: resourceData.ciType,
|
41
|
+
ciName: resourceData.ciName
|
42
|
+
} : {
|
43
|
+
id: '',
|
44
|
+
name: '',
|
45
|
+
type: '',
|
46
|
+
// 类型: node、link
|
47
|
+
ciType: '',
|
48
|
+
ciName: ''
|
49
|
+
};
|
50
|
+
}, [resourceData]);
|
51
|
+
(0, _react.useEffect)(function () {
|
52
|
+
fetchUserId();
|
53
|
+
}, []); // 支持自定义概览
|
54
|
+
|
55
|
+
var _ref = (viewerProps === null || viewerProps === void 0 ? void 0 : viewerProps.resourceDetailProps) || {},
|
56
|
+
getResourceDetail = _ref.getResourceDetail;
|
57
|
+
|
58
|
+
var ResourceDetailWidget;
|
59
|
+
|
60
|
+
if (getResourceDetail) {
|
61
|
+
ResourceDetailWidget = getResourceDetail(resourceData);
|
62
|
+
}
|
63
|
+
|
64
|
+
if (!ResourceDetailWidget) {
|
65
|
+
ResourceDetailWidget = _ResourceDetail["default"];
|
66
|
+
}
|
67
|
+
|
68
|
+
if (!userId) {
|
69
|
+
return null;
|
70
|
+
}
|
71
|
+
|
72
|
+
return /*#__PURE__*/_react["default"].createElement(ResourceDetailWidget, (0, _extends2["default"])({}, props, {
|
73
|
+
topo: topo,
|
74
|
+
userId: userId,
|
75
|
+
activeData: activeData,
|
76
|
+
resourceData: resourceData,
|
77
|
+
onClose: onClose
|
78
|
+
}));
|
79
|
+
}
|