@riil-frontend/component-topology 10.0.28 → 10.0.30
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 +1 -1
- package/es/core/hooks/ht/useHtDataPropertyChangeListener.js +2 -2
- package/es/core/models/AttributeMetricDisplay.js +1 -1
- package/es/core/models/TopoApp.js +1 -1
- package/es/core/store/models/viewer/resourceDetail.js +7 -0
- package/es/core/utils/linkUtil.js +12 -0
- package/es/core/viewer/components/plugins/ElementDetailDrawer/hooks/useElementDetailManager.js +4 -4
- package/es/core/viewer/components/plugins/ResourceDetail/ResourceDetailDrawer.js +2 -1
- package/es/core/viewer/components/plugins/ResourceDetail/components/DrawerTitle.js +3 -1
- package/es/core/viewer/contextmenu/buildLinkContextmenu.js +1 -1
- package/es/core/viewer/contextmenu/buildNodeContextmenu.js +4 -4
- package/es/networkTopo/utils/edgeGroupTagUtil.js +33 -4
- package/es/networkTopo/utils/resourcePermissionUtil.js +2 -22
- package/es/utils/clusterUtil.js +3 -1
- package/es/utils/topoData.js +3 -1
- package/lib/core/hooks/ht/useHtDataPropertyChangeListener.js +2 -2
- package/lib/core/models/AttributeMetricDisplay.js +1 -1
- package/lib/core/models/TopoApp.js +1 -1
- package/lib/core/store/models/viewer/resourceDetail.js +7 -0
- package/lib/core/utils/linkUtil.js +17 -0
- package/lib/core/viewer/components/plugins/ElementDetailDrawer/hooks/useElementDetailManager.js +4 -4
- package/lib/core/viewer/components/plugins/ResourceDetail/ResourceDetailDrawer.js +2 -1
- package/lib/core/viewer/components/plugins/ResourceDetail/components/DrawerTitle.js +3 -1
- package/lib/core/viewer/contextmenu/buildLinkContextmenu.js +1 -1
- package/lib/core/viewer/contextmenu/buildNodeContextmenu.js +4 -4
- package/lib/networkTopo/utils/edgeGroupTagUtil.js +35 -4
- package/lib/networkTopo/utils/resourcePermissionUtil.js +2 -22
- package/lib/utils/clusterUtil.js +3 -1
- package/lib/utils/topoData.js +3 -1
- package/package.json +2 -2
@@ -12,13 +12,13 @@ export default function useHtDataPropertyChangeListener(props) {
|
|
12
12
|
var dm = topo.getDataModel();
|
13
13
|
var inited = false;
|
14
14
|
|
15
|
-
if (
|
15
|
+
if (dm) {
|
16
16
|
dm.addDataPropertyChangeListener(onChange);
|
17
17
|
inited = true;
|
18
18
|
}
|
19
19
|
|
20
20
|
return function () {
|
21
|
-
if (inited) {
|
21
|
+
if (inited && dm) {
|
22
22
|
dm.removeDataPropertyChangeListener(onChange);
|
23
23
|
}
|
24
24
|
};
|
@@ -144,7 +144,7 @@ var AttributeMetricDisplay = /*#__PURE__*/function () {
|
|
144
144
|
_proto.filterCiFiledConfigItems = function filterCiFiledConfigItems(data, ciTypeItemConfigs) {
|
145
145
|
// 无权限不显示标注、悬浮框
|
146
146
|
var filterByPermission = function filterByPermission(resource, items) {
|
147
|
-
return resource.
|
147
|
+
return resource.permission.readable ? items : [];
|
148
148
|
};
|
149
149
|
|
150
150
|
var list = filterByPermission(data, ciTypeItemConfigs); // 未监控不显示指标
|
@@ -24,7 +24,7 @@ import ElementTagTipConfig from "./tagstips/ElementTagTipConfig";
|
|
24
24
|
import SelectionModel from "./SelectionModel";
|
25
25
|
import CiCache from "./cache/CiCache"; // eslint-disable-next-line no-undef
|
26
26
|
|
27
|
-
var version = typeof "10.0.
|
27
|
+
var version = typeof "10.0.30" === 'string' ? "10.0.30" : null;
|
28
28
|
console.info("\u62D3\u6251\u7248\u672C: " + version);
|
29
29
|
/**
|
30
30
|
* 拓扑显示和编辑
|
@@ -0,0 +1,12 @@
|
|
1
|
+
/**
|
2
|
+
*
|
3
|
+
* @param {Array} links
|
4
|
+
* @param {Array} ids1
|
5
|
+
* @param {Array} ids2
|
6
|
+
* @returns
|
7
|
+
*/
|
8
|
+
export function getLinksInNodes(links, ids1, ids2) {
|
9
|
+
return links.filter(function (link) {
|
10
|
+
return ids1.includes(link.source) && ids2.includes(link.target) || ids2.includes(link.source) && ids1.includes(link.target);
|
11
|
+
});
|
12
|
+
}
|
package/es/core/viewer/components/plugins/ElementDetailDrawer/hooks/useElementDetailManager.js
CHANGED
@@ -62,8 +62,9 @@ function useElementDetailManager(props) {
|
|
62
62
|
}
|
63
63
|
|
64
64
|
function openByHtElement(htElement) {
|
65
|
+
var isEdgeGroupAgent = htElement instanceof ht.Edge && htElement.isEdgeGroupAgent() && !htElement.s('edge.expanded');
|
65
66
|
open({
|
66
|
-
id: htElement.getTag()
|
67
|
+
id: isEdgeGroupAgent || !htElement.getTag() ? "ht:" + htElement.getId() : htElement.getTag(),
|
67
68
|
htElement: htElement
|
68
69
|
});
|
69
70
|
}
|
@@ -140,10 +141,9 @@ function useElementDetailManager(props) {
|
|
140
141
|
var resourceData = topo.dataModel.getDataById(id); // 如果是资源/链路,没有权限不显示
|
141
142
|
|
142
143
|
if (resourceData) {
|
143
|
-
var
|
144
|
-
permission = resourceData.permission;
|
144
|
+
var permission = resourceData.permission;
|
145
145
|
|
146
|
-
if (!
|
146
|
+
if (!(permission !== null && permission !== void 0 && permission.readable)) {
|
147
147
|
return;
|
148
148
|
}
|
149
149
|
} // 自定义显示方法
|
@@ -42,10 +42,11 @@ function ResourceDetailDrawer(props) {
|
|
42
42
|
detailManager: detailManager
|
43
43
|
}),
|
44
44
|
onClose: detailManager.close
|
45
|
-
}, visible && /*#__PURE__*/React.createElement(Content, _extends({}, props, {
|
45
|
+
}, visible && Content && /*#__PURE__*/React.createElement(Content, _extends({}, props, {
|
46
46
|
topo: topo,
|
47
47
|
id: id,
|
48
48
|
htElement: htElement,
|
49
|
+
detailManager: detailManager,
|
49
50
|
viewerProps: viewerProps,
|
50
51
|
onClose: detailManager.close
|
51
52
|
})));
|
@@ -46,9 +46,11 @@ function NodeDrawerTitle(_ref) {
|
|
46
46
|
return detailManager.openByDataId(key);
|
47
47
|
}
|
48
48
|
}, isAvailableArray(filterNodes) && filterNodes.length ? filterNodes.map(function (item) {
|
49
|
+
var _item$permission;
|
50
|
+
|
49
51
|
return /*#__PURE__*/React.createElement(_MenuButton.Item, {
|
50
52
|
key: item.id,
|
51
|
-
disabled: !item.
|
53
|
+
disabled: !((_item$permission = item.permission) !== null && _item$permission !== void 0 && _item$permission.readable)
|
52
54
|
}, item.name);
|
53
55
|
}) : /*#__PURE__*/React.createElement("div", {
|
54
56
|
className: styles['not-data']
|
@@ -6,7 +6,7 @@ export default function buildContextMenu(topoApp) {
|
|
6
6
|
// id: 'Resource.detail',
|
7
7
|
// icon: '/img/topo/contextmenu/Topology_resources_menu_icon_overview.svg',
|
8
8
|
// visible: (data) => {
|
9
|
-
// return !!data.
|
9
|
+
// return !!data.permission?.readable;
|
10
10
|
// }
|
11
11
|
// },
|
12
12
|
// { label: '监控策略', id: 'monitoring_strategy' },
|
@@ -10,14 +10,14 @@ export default function buildNodeContextmenu(topoApp) {
|
|
10
10
|
// id: 'Resource.detail',
|
11
11
|
// icon: '/img/topo/contextmenu/Topology_resources_menu_icon_overview.svg',
|
12
12
|
// visible: (data) => {
|
13
|
-
// return isResource(data) && !!data.
|
13
|
+
// return isResource(data) && !!data.permission?.readable;
|
14
14
|
// }
|
15
15
|
// },
|
16
16
|
// {
|
17
17
|
// label: 'Web控制台',
|
18
18
|
// icon: '/img/topo/contextmenu/Topology_resources_menu_icon_webconsole.svg',
|
19
19
|
// visible: (data) => {
|
20
|
-
// return isResource(data) && !!data.
|
20
|
+
// return isResource(data) && !!data.permission?.readable;
|
21
21
|
// },
|
22
22
|
// items: [
|
23
23
|
// {
|
@@ -47,7 +47,7 @@ export default function buildNodeContextmenu(topoApp) {
|
|
47
47
|
// const {domain} = ciMeta;
|
48
48
|
// // 是否有该页签,与资源详情保持一致
|
49
49
|
// const hasTab = domain === 'network' || domain === 'server';
|
50
|
-
// return !!data.
|
50
|
+
// return !!data.permission?.readable && hasTab;
|
51
51
|
// }
|
52
52
|
// },
|
53
53
|
// {
|
@@ -66,7 +66,7 @@ export default function buildNodeContextmenu(topoApp) {
|
|
66
66
|
// const {domain} = ciMeta;
|
67
67
|
// // 是否有该页签,与资源详情保持一致
|
68
68
|
// const hasTab = domain === 'network' || domain === 'server';
|
69
|
-
// return !!data.
|
69
|
+
// return !!data.permission?.readable && hasTab;
|
70
70
|
// }
|
71
71
|
// },
|
72
72
|
// { label: '打开属性设置', id: 'openSet' },
|
@@ -1,9 +1,38 @@
|
|
1
|
-
|
2
|
-
|
3
|
-
|
1
|
+
import { getLinksInNodes } from "../../core/utils/linkUtil";
|
2
|
+
/**
|
3
|
+
* 查询节点/区域及子节点
|
4
|
+
* @param {*} nodes
|
5
|
+
* @returns
|
6
|
+
*/
|
7
|
+
|
8
|
+
var getChildrenNodes = function getChildrenNodes(nodes) {
|
9
|
+
var allNodes = [].concat(nodes);
|
10
|
+
nodes.forEach(function (node) {
|
11
|
+
if (node instanceof ht.Group) {
|
12
|
+
var children = node.getChildren().toArray();
|
13
|
+
allNodes.push.apply(allNodes, getChildrenNodes(children));
|
14
|
+
}
|
15
|
+
});
|
16
|
+
return allNodes;
|
17
|
+
};
|
18
|
+
/**
|
19
|
+
* 查询连线两端节点间的链路列表
|
20
|
+
* @param {*} topo
|
21
|
+
* @param {*} edgeGroup
|
22
|
+
* @returns
|
23
|
+
*/
|
24
|
+
|
25
|
+
|
26
|
+
export function getLinksByEdgeGroup(topo, edgeGroup) {
|
4
27
|
var sourceId = edgeGroup.getSource().getTag();
|
5
28
|
var targetId = edgeGroup.getTarget().getTag();
|
6
|
-
var links = topo.dataModel.
|
29
|
+
var links = getLinksInNodes(topo.dataModel.getEdges(), [sourceId], [targetId]);
|
30
|
+
return links;
|
31
|
+
} // 获得连线组标注配置的链路id。无配置时取默认链路
|
32
|
+
|
33
|
+
export function getEdgeGroupLinkIdConfig(edgeGroup, topo) {
|
34
|
+
// const { } = options
|
35
|
+
var links = getLinksByEdgeGroup(topo, edgeGroup);
|
7
36
|
|
8
37
|
if (!links.length) {
|
9
38
|
return null;
|
@@ -12,6 +12,7 @@ export function parseBasicPermission(operation) {
|
|
12
12
|
}
|
13
13
|
/**
|
14
14
|
* 获得链路权限
|
15
|
+
* 关键链路使用权限中心配置,普通链路根据两端权限计算
|
15
16
|
*
|
16
17
|
* @param {*} link
|
17
18
|
* @param {*} source
|
@@ -20,28 +21,7 @@ export function parseBasicPermission(operation) {
|
|
20
21
|
*/
|
21
22
|
|
22
23
|
export function getLinkPermission(link, source, target) {
|
23
|
-
|
24
|
-
if (isCrucialLink(link)) {
|
25
|
-
return parseBasicPermission(link === null || link === void 0 ? void 0 : link.operation);
|
26
|
-
}
|
27
|
-
|
28
|
-
var deviceNodes = target ? [source, target] : [source];
|
29
|
-
|
30
|
-
var isWriteable = function isWriteable() {
|
31
|
-
return deviceNodes.filter(function (node) {
|
32
|
-
return ['write', 'delete'].indexOf(node === null || node === void 0 ? void 0 : node.operation) !== -1;
|
33
|
-
}).length === deviceNodes.length;
|
34
|
-
};
|
35
|
-
|
36
|
-
return {
|
37
|
-
readable: !!(source !== null && source !== void 0 && source.operation) || !!(target !== null && target !== void 0 && target.operation),
|
38
|
-
// 一端设备有权限可查看
|
39
|
-
writeable: isWriteable(),
|
40
|
-
// 两端设备都有编辑权限可编辑(出口链路仅验证一端)
|
41
|
-
deleteable: deviceNodes.filter(function (node) {
|
42
|
-
return ['write', 'delete'].includes(node === null || node === void 0 ? void 0 : node.operation);
|
43
|
-
}).length >= 1
|
44
|
-
};
|
24
|
+
return parseBasicPermission(link === null || link === void 0 ? void 0 : link.operation);
|
45
25
|
}
|
46
26
|
/**
|
47
27
|
* 适配接口
|
package/es/utils/clusterUtil.js
CHANGED
@@ -21,13 +21,15 @@ export function processCluster(topoData) {
|
|
21
21
|
}
|
22
22
|
export function buildClusterGroups(nodes) {
|
23
23
|
return findClusters(nodes).map(function (n) {
|
24
|
+
var _n$permission;
|
25
|
+
|
24
26
|
return _extends({
|
25
27
|
tag: null,
|
26
28
|
parentId: n.groupId,
|
27
29
|
parentTag: n.groupTag
|
28
30
|
}, n, {
|
29
31
|
elementTemplate: 'cluster',
|
30
|
-
expandable: !!n.
|
32
|
+
expandable: !!((_n$permission = n.permission) !== null && _n$permission !== void 0 && _n$permission.readable),
|
31
33
|
// 无权限禁用展开折叠
|
32
34
|
styles: {
|
33
35
|
showExpanded: false // 是否默认展开
|
package/es/utils/topoData.js
CHANGED
@@ -77,8 +77,10 @@ function updateNodeInfo(topoEngine, topoData) {
|
|
77
77
|
|
78
78
|
|
79
79
|
var tfLink = function tfLink(engine, link) {
|
80
|
+
var _link$permission;
|
81
|
+
|
80
82
|
return _extends({}, link, {
|
81
|
-
name: link.
|
83
|
+
name: (_link$permission = link.permission) !== null && _link$permission !== void 0 && _link$permission.readable ? link.name : "未知",
|
82
84
|
metrics: [],
|
83
85
|
attributes: []
|
84
86
|
});
|
@@ -21,13 +21,13 @@ function useHtDataPropertyChangeListener(props) {
|
|
21
21
|
var dm = topo.getDataModel();
|
22
22
|
var inited = false;
|
23
23
|
|
24
|
-
if (
|
24
|
+
if (dm) {
|
25
25
|
dm.addDataPropertyChangeListener(onChange);
|
26
26
|
inited = true;
|
27
27
|
}
|
28
28
|
|
29
29
|
return function () {
|
30
|
-
if (inited) {
|
30
|
+
if (inited && dm) {
|
31
31
|
dm.removeDataPropertyChangeListener(onChange);
|
32
32
|
}
|
33
33
|
};
|
@@ -161,7 +161,7 @@ var AttributeMetricDisplay = /*#__PURE__*/function () {
|
|
161
161
|
_proto.filterCiFiledConfigItems = function filterCiFiledConfigItems(data, ciTypeItemConfigs) {
|
162
162
|
// 无权限不显示标注、悬浮框
|
163
163
|
var filterByPermission = function filterByPermission(resource, items) {
|
164
|
-
return resource.
|
164
|
+
return resource.permission.readable ? items : [];
|
165
165
|
};
|
166
166
|
|
167
167
|
var list = filterByPermission(data, ciTypeItemConfigs); // 未监控不显示指标
|
@@ -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.30" === 'string' ? "10.0.30" : null;
|
60
60
|
console.info("\u62D3\u6251\u7248\u672C: " + version);
|
61
61
|
/**
|
62
62
|
* 拓扑显示和编辑
|
@@ -0,0 +1,17 @@
|
|
1
|
+
"use strict";
|
2
|
+
|
3
|
+
exports.__esModule = true;
|
4
|
+
exports.getLinksInNodes = getLinksInNodes;
|
5
|
+
|
6
|
+
/**
|
7
|
+
*
|
8
|
+
* @param {Array} links
|
9
|
+
* @param {Array} ids1
|
10
|
+
* @param {Array} ids2
|
11
|
+
* @returns
|
12
|
+
*/
|
13
|
+
function getLinksInNodes(links, ids1, ids2) {
|
14
|
+
return links.filter(function (link) {
|
15
|
+
return ids1.includes(link.source) && ids2.includes(link.target) || ids2.includes(link.source) && ids1.includes(link.target);
|
16
|
+
});
|
17
|
+
}
|
package/lib/core/viewer/components/plugins/ElementDetailDrawer/hooks/useElementDetailManager.js
CHANGED
@@ -74,8 +74,9 @@ function useElementDetailManager(props) {
|
|
74
74
|
}
|
75
75
|
|
76
76
|
function openByHtElement(htElement) {
|
77
|
+
var isEdgeGroupAgent = htElement instanceof ht.Edge && htElement.isEdgeGroupAgent() && !htElement.s('edge.expanded');
|
77
78
|
open({
|
78
|
-
id: htElement.getTag()
|
79
|
+
id: isEdgeGroupAgent || !htElement.getTag() ? "ht:" + htElement.getId() : htElement.getTag(),
|
79
80
|
htElement: htElement
|
80
81
|
});
|
81
82
|
}
|
@@ -152,10 +153,9 @@ function useElementDetailManager(props) {
|
|
152
153
|
var resourceData = topo.dataModel.getDataById(id); // 如果是资源/链路,没有权限不显示
|
153
154
|
|
154
155
|
if (resourceData) {
|
155
|
-
var
|
156
|
-
permission = resourceData.permission;
|
156
|
+
var permission = resourceData.permission;
|
157
157
|
|
158
|
-
if (!
|
158
|
+
if (!(permission !== null && permission !== void 0 && permission.readable)) {
|
159
159
|
return;
|
160
160
|
}
|
161
161
|
} // 自定义显示方法
|
@@ -58,10 +58,11 @@ function ResourceDetailDrawer(props) {
|
|
58
58
|
detailManager: detailManager
|
59
59
|
}),
|
60
60
|
onClose: detailManager.close
|
61
|
-
}, visible && /*#__PURE__*/_react["default"].createElement(Content, (0, _extends2["default"])({}, props, {
|
61
|
+
}, visible && Content && /*#__PURE__*/_react["default"].createElement(Content, (0, _extends2["default"])({}, props, {
|
62
62
|
topo: topo,
|
63
63
|
id: id,
|
64
64
|
htElement: htElement,
|
65
|
+
detailManager: detailManager,
|
65
66
|
viewerProps: viewerProps,
|
66
67
|
onClose: detailManager.close
|
67
68
|
})));
|
@@ -61,9 +61,11 @@ function NodeDrawerTitle(_ref) {
|
|
61
61
|
return detailManager.openByDataId(key);
|
62
62
|
}
|
63
63
|
}, (0, _utils.isAvailableArray)(filterNodes) && filterNodes.length ? filterNodes.map(function (item) {
|
64
|
+
var _item$permission;
|
65
|
+
|
64
66
|
return /*#__PURE__*/_react["default"].createElement(_menuButton["default"].Item, {
|
65
67
|
key: item.id,
|
66
|
-
disabled: !item.
|
68
|
+
disabled: !((_item$permission = item.permission) !== null && _item$permission !== void 0 && _item$permission.readable)
|
67
69
|
}, item.name);
|
68
70
|
}) : /*#__PURE__*/_react["default"].createElement("div", {
|
69
71
|
className: _indexModule["default"]['not-data']
|
@@ -11,7 +11,7 @@ function buildContextMenu(topoApp) {
|
|
11
11
|
// id: 'Resource.detail',
|
12
12
|
// icon: '/img/topo/contextmenu/Topology_resources_menu_icon_overview.svg',
|
13
13
|
// visible: (data) => {
|
14
|
-
// return !!data.
|
14
|
+
// return !!data.permission?.readable;
|
15
15
|
// }
|
16
16
|
// },
|
17
17
|
// { label: '监控策略', id: 'monitoring_strategy' },
|
@@ -15,14 +15,14 @@ function buildNodeContextmenu(topoApp) {
|
|
15
15
|
// id: 'Resource.detail',
|
16
16
|
// icon: '/img/topo/contextmenu/Topology_resources_menu_icon_overview.svg',
|
17
17
|
// visible: (data) => {
|
18
|
-
// return isResource(data) && !!data.
|
18
|
+
// return isResource(data) && !!data.permission?.readable;
|
19
19
|
// }
|
20
20
|
// },
|
21
21
|
// {
|
22
22
|
// label: 'Web控制台',
|
23
23
|
// icon: '/img/topo/contextmenu/Topology_resources_menu_icon_webconsole.svg',
|
24
24
|
// visible: (data) => {
|
25
|
-
// return isResource(data) && !!data.
|
25
|
+
// return isResource(data) && !!data.permission?.readable;
|
26
26
|
// },
|
27
27
|
// items: [
|
28
28
|
// {
|
@@ -52,7 +52,7 @@ function buildNodeContextmenu(topoApp) {
|
|
52
52
|
// const {domain} = ciMeta;
|
53
53
|
// // 是否有该页签,与资源详情保持一致
|
54
54
|
// const hasTab = domain === 'network' || domain === 'server';
|
55
|
-
// return !!data.
|
55
|
+
// return !!data.permission?.readable && hasTab;
|
56
56
|
// }
|
57
57
|
// },
|
58
58
|
// {
|
@@ -71,7 +71,7 @@ function buildNodeContextmenu(topoApp) {
|
|
71
71
|
// const {domain} = ciMeta;
|
72
72
|
// // 是否有该页签,与资源详情保持一致
|
73
73
|
// const hasTab = domain === 'network' || domain === 'server';
|
74
|
-
// return !!data.
|
74
|
+
// return !!data.permission?.readable && hasTab;
|
75
75
|
// }
|
76
76
|
// },
|
77
77
|
// { label: '打开属性设置', id: 'openSet' },
|
@@ -4,13 +4,44 @@ exports.__esModule = true;
|
|
4
4
|
exports.getEdgeGroupConfigId = getEdgeGroupConfigId;
|
5
5
|
exports.getEdgeGroupLinkConfig = getEdgeGroupLinkConfig;
|
6
6
|
exports.getEdgeGroupLinkIdConfig = getEdgeGroupLinkIdConfig;
|
7
|
+
exports.getLinksByEdgeGroup = getLinksByEdgeGroup;
|
7
8
|
|
8
|
-
|
9
|
-
|
10
|
-
|
9
|
+
var _linkUtil = require("../../core/utils/linkUtil");
|
10
|
+
|
11
|
+
/**
|
12
|
+
* 查询节点/区域及子节点
|
13
|
+
* @param {*} nodes
|
14
|
+
* @returns
|
15
|
+
*/
|
16
|
+
var getChildrenNodes = function getChildrenNodes(nodes) {
|
17
|
+
var allNodes = [].concat(nodes);
|
18
|
+
nodes.forEach(function (node) {
|
19
|
+
if (node instanceof ht.Group) {
|
20
|
+
var children = node.getChildren().toArray();
|
21
|
+
allNodes.push.apply(allNodes, getChildrenNodes(children));
|
22
|
+
}
|
23
|
+
});
|
24
|
+
return allNodes;
|
25
|
+
};
|
26
|
+
/**
|
27
|
+
* 查询连线两端节点间的链路列表
|
28
|
+
* @param {*} topo
|
29
|
+
* @param {*} edgeGroup
|
30
|
+
* @returns
|
31
|
+
*/
|
32
|
+
|
33
|
+
|
34
|
+
function getLinksByEdgeGroup(topo, edgeGroup) {
|
11
35
|
var sourceId = edgeGroup.getSource().getTag();
|
12
36
|
var targetId = edgeGroup.getTarget().getTag();
|
13
|
-
var links = topo.dataModel.
|
37
|
+
var links = (0, _linkUtil.getLinksInNodes)(topo.dataModel.getEdges(), [sourceId], [targetId]);
|
38
|
+
return links;
|
39
|
+
} // 获得连线组标注配置的链路id。无配置时取默认链路
|
40
|
+
|
41
|
+
|
42
|
+
function getEdgeGroupLinkIdConfig(edgeGroup, topo) {
|
43
|
+
// const { } = options
|
44
|
+
var links = getLinksByEdgeGroup(topo, edgeGroup);
|
14
45
|
|
15
46
|
if (!links.length) {
|
16
47
|
return null;
|
@@ -26,6 +26,7 @@ function parseBasicPermission(operation) {
|
|
26
26
|
}
|
27
27
|
/**
|
28
28
|
* 获得链路权限
|
29
|
+
* 关键链路使用权限中心配置,普通链路根据两端权限计算
|
29
30
|
*
|
30
31
|
* @param {*} link
|
31
32
|
* @param {*} source
|
@@ -35,28 +36,7 @@ function parseBasicPermission(operation) {
|
|
35
36
|
|
36
37
|
|
37
38
|
function getLinkPermission(link, source, target) {
|
38
|
-
|
39
|
-
if ((0, _linkUtils.isCrucialLink)(link)) {
|
40
|
-
return parseBasicPermission(link === null || link === void 0 ? void 0 : link.operation);
|
41
|
-
}
|
42
|
-
|
43
|
-
var deviceNodes = target ? [source, target] : [source];
|
44
|
-
|
45
|
-
var isWriteable = function isWriteable() {
|
46
|
-
return deviceNodes.filter(function (node) {
|
47
|
-
return ['write', 'delete'].indexOf(node === null || node === void 0 ? void 0 : node.operation) !== -1;
|
48
|
-
}).length === deviceNodes.length;
|
49
|
-
};
|
50
|
-
|
51
|
-
return {
|
52
|
-
readable: !!(source !== null && source !== void 0 && source.operation) || !!(target !== null && target !== void 0 && target.operation),
|
53
|
-
// 一端设备有权限可查看
|
54
|
-
writeable: isWriteable(),
|
55
|
-
// 两端设备都有编辑权限可编辑(出口链路仅验证一端)
|
56
|
-
deleteable: deviceNodes.filter(function (node) {
|
57
|
-
return ['write', 'delete'].includes(node === null || node === void 0 ? void 0 : node.operation);
|
58
|
-
}).length >= 1
|
59
|
-
};
|
39
|
+
return parseBasicPermission(link === null || link === void 0 ? void 0 : link.operation);
|
60
40
|
}
|
61
41
|
/**
|
62
42
|
* 适配接口
|
package/lib/utils/clusterUtil.js
CHANGED
@@ -43,13 +43,15 @@ function processCluster(topoData) {
|
|
43
43
|
|
44
44
|
function buildClusterGroups(nodes) {
|
45
45
|
return findClusters(nodes).map(function (n) {
|
46
|
+
var _n$permission;
|
47
|
+
|
46
48
|
return (0, _extends2["default"])({
|
47
49
|
tag: null,
|
48
50
|
parentId: n.groupId,
|
49
51
|
parentTag: n.groupTag
|
50
52
|
}, n, {
|
51
53
|
elementTemplate: 'cluster',
|
52
|
-
expandable: !!n.
|
54
|
+
expandable: !!((_n$permission = n.permission) !== null && _n$permission !== void 0 && _n$permission.readable),
|
53
55
|
// 无权限禁用展开折叠
|
54
56
|
styles: {
|
55
57
|
showExpanded: false // 是否默认展开
|
package/lib/utils/topoData.js
CHANGED
@@ -115,8 +115,10 @@ function updateNodeInfo(topoEngine, topoData) {
|
|
115
115
|
|
116
116
|
|
117
117
|
var tfLink = function tfLink(engine, link) {
|
118
|
+
var _link$permission;
|
119
|
+
|
118
120
|
return (0, _extends2["default"])({}, link, {
|
119
|
-
name: link.
|
121
|
+
name: (_link$permission = link.permission) !== null && _link$permission !== void 0 && _link$permission.readable ? link.name : "未知",
|
120
122
|
metrics: [],
|
121
123
|
attributes: []
|
122
124
|
});
|
package/package.json
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
{
|
2
2
|
"name": "@riil-frontend/component-topology",
|
3
|
-
"version": "10.0.
|
3
|
+
"version": "10.0.30",
|
4
4
|
"description": "拓扑",
|
5
5
|
"scripts": {
|
6
6
|
"start": "build-scripts start",
|
@@ -116,6 +116,6 @@
|
|
116
116
|
"access": "public"
|
117
117
|
},
|
118
118
|
"license": "MIT",
|
119
|
-
"homepage": "https://unpkg.com/@riil-frontend/component-topology@10.0.
|
119
|
+
"homepage": "https://unpkg.com/@riil-frontend/component-topology@10.0.30/build/index.html",
|
120
120
|
"gitHead": "2da19ffccbb7ca60a8acf396e39f542c68bb33f5"
|
121
121
|
}
|