@riil-frontend/component-topology 5.0.1 → 5.0.3
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/components/TopoView/topoView.js +2 -15
- package/es/core/hooks/ht/useHtDataPropertyChangeListener.js +3 -5
- package/es/core/hooks/useSelection.js +55 -21
- package/es/core/hooks/useSelectionListener.js +35 -0
- package/es/core/models/TopoApp.js +1 -1
- package/es/core/viewer/components/plugins/ResourceDetail/components/ClusterMemberTable.js +81 -78
- package/es/core/viewer/components/plugins/ResourceDetail/components/ResourceOverview/ResourceOverviewMetric.js +2 -3
- package/lib/core/components/TopoView/topoView.js +2 -16
- package/lib/core/hooks/ht/useHtDataPropertyChangeListener.js +3 -5
- package/lib/core/hooks/useSelection.js +54 -19
- package/lib/core/hooks/useSelectionListener.js +45 -0
- package/lib/core/models/TopoApp.js +1 -1
- package/lib/core/viewer/components/plugins/ResourceDetail/components/ClusterMemberTable.js +82 -80
- package/lib/core/viewer/components/plugins/ResourceDetail/components/ResourceOverview/ResourceOverviewMetric.js +2 -3
- package/package.json +2 -2
|
@@ -5,7 +5,7 @@ import classnames from 'classnames';
|
|
|
5
5
|
import TopoGraph, { TopoEvent } from '@riil-frontend/component-topology-graph';
|
|
6
6
|
import rlog from '@riil-frontend/component-topology-utils/es/rlog';
|
|
7
7
|
import useTopoEdit from "../../hooks/useTopoEdit";
|
|
8
|
-
import
|
|
8
|
+
import useSelectionListener from "../../hooks/useSelectionListener";
|
|
9
9
|
import showMessage from "../../utils/showMessage";
|
|
10
10
|
import EditorPlugin from "../../editor/components/EditorPlugin";
|
|
11
11
|
import ViewerPlugin from "../../viewer/components/plugins/ViewerPlugin";
|
|
@@ -66,12 +66,7 @@ var Topology = function Topology(props) {
|
|
|
66
66
|
setTData = _useState[1]; // TODO 临时放这里,当前监听内容较多
|
|
67
67
|
|
|
68
68
|
|
|
69
|
-
|
|
70
|
-
topo: topo
|
|
71
|
-
}),
|
|
72
|
-
initSelection = _useSelection.initSelection,
|
|
73
|
-
clearSelection = _useSelection.clearSelection;
|
|
74
|
-
|
|
69
|
+
useSelectionListener(props);
|
|
75
70
|
useRouterAdapter(props);
|
|
76
71
|
var topoEdit = useTopoEdit({
|
|
77
72
|
topo: topo,
|
|
@@ -105,8 +100,6 @@ var Topology = function Topology(props) {
|
|
|
105
100
|
setConfig: null
|
|
106
101
|
});
|
|
107
102
|
}
|
|
108
|
-
|
|
109
|
-
clearSelection();
|
|
110
103
|
}, [topoId, viewState]);
|
|
111
104
|
useEffect(function () {
|
|
112
105
|
// rlog.debug("TopoView.useEffect topoData", topoData);
|
|
@@ -115,13 +108,11 @@ var Topology = function Topology(props) {
|
|
|
115
108
|
useEffect(function () {
|
|
116
109
|
return function () {
|
|
117
110
|
topoDispatchers.reset();
|
|
118
|
-
clearSelection();
|
|
119
111
|
};
|
|
120
112
|
}, []);
|
|
121
113
|
var onGraphCreated = useCallback(function (topoClient) {
|
|
122
114
|
topo.view.onCreatedView(topoClient);
|
|
123
115
|
rlog.info('TopoView.onGraphCreated');
|
|
124
|
-
initSelection();
|
|
125
116
|
|
|
126
117
|
if (onReady) {
|
|
127
118
|
onReady();
|
|
@@ -216,10 +207,6 @@ var Topology = function Topology(props) {
|
|
|
216
207
|
onRefresh(event.data);
|
|
217
208
|
break;
|
|
218
209
|
|
|
219
|
-
case TopoEvent.EVENT_EDIT_ENTER:
|
|
220
|
-
initSelection();
|
|
221
|
-
break;
|
|
222
|
-
|
|
223
210
|
case TopoEvent.EVENT_EDIT_EXIT:
|
|
224
211
|
onExitEdit(event.data);
|
|
225
212
|
break;
|
|
@@ -4,12 +4,10 @@ export default function useHtDataPropertyChangeListener(props) {
|
|
|
4
4
|
var topo = props.topo,
|
|
5
5
|
onChange = props.onChange;
|
|
6
6
|
|
|
7
|
-
var _topo$store$
|
|
8
|
-
|
|
9
|
-
|
|
7
|
+
var _topo$store$useModelS = topo.store.useModelState('topoMod'),
|
|
8
|
+
graphLoaded = _topo$store$useModelS.graphLoaded,
|
|
9
|
+
graphLoaded2 = _topo$store$useModelS.graphLoaded2;
|
|
10
10
|
|
|
11
|
-
var graphLoaded = topoState.graphLoaded,
|
|
12
|
-
graphLoaded2 = topoState.graphLoaded2;
|
|
13
11
|
useEffect(function () {
|
|
14
12
|
var dm = topo.getDataModel();
|
|
15
13
|
var inited = false;
|
|
@@ -1,13 +1,14 @@
|
|
|
1
1
|
import _extends from "@babel/runtime/helpers/extends";
|
|
2
|
-
import { useCallback } from
|
|
3
|
-
import rlog from
|
|
2
|
+
import { useCallback, useRef } from 'react';
|
|
3
|
+
import rlog from '@riil-frontend/component-topology-utils/es/rlog';
|
|
4
4
|
/**
|
|
5
5
|
* Selection
|
|
6
6
|
*/
|
|
7
7
|
|
|
8
8
|
function useSelection(props) {
|
|
9
9
|
var topo = props.topo;
|
|
10
|
-
var selectionDispatchers = topo.store.useModelDispatchers(
|
|
10
|
+
var selectionDispatchers = topo.store.useModelDispatchers('selection');
|
|
11
|
+
var removeListenerRef = useRef(null);
|
|
11
12
|
|
|
12
13
|
var setSelection = function setSelection(selection) {
|
|
13
14
|
selectionDispatchers.update({
|
|
@@ -24,23 +25,22 @@ function useSelection(props) {
|
|
|
24
25
|
|
|
25
26
|
setSelection(selectionArr);
|
|
26
27
|
} catch (e) {
|
|
27
|
-
rlog.error(
|
|
28
|
+
rlog.error('updateSelection error', e);
|
|
28
29
|
}
|
|
29
30
|
}, []);
|
|
30
|
-
var
|
|
31
|
-
rlog.info(
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
selectionModel.addSelectionChangeListener(function (e) {
|
|
36
|
-
rlog.info("selectionChangeListener", e);
|
|
31
|
+
var initListener = useCallback(function () {
|
|
32
|
+
rlog.info('Selection initListener');
|
|
33
|
+
|
|
34
|
+
function handleSelectionChange(e) {
|
|
35
|
+
rlog.info('Selection handleSelectionChange', e);
|
|
37
36
|
updateSelection();
|
|
38
|
-
}
|
|
39
|
-
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
function handleDataPropertyChange(e) {
|
|
40
40
|
var property = e.property,
|
|
41
41
|
data = e.data;
|
|
42
42
|
|
|
43
|
-
if ([
|
|
43
|
+
if (['position', 'childChange', 'a:scale'].indexOf(property) !== -1) {
|
|
44
44
|
return;
|
|
45
45
|
}
|
|
46
46
|
|
|
@@ -52,14 +52,48 @@ function useSelection(props) {
|
|
|
52
52
|
// console.info('PropertyChangeListener', e);
|
|
53
53
|
updateSelection();
|
|
54
54
|
}
|
|
55
|
-
}
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
var dataModel = topo.getDataModel();
|
|
58
|
+
var selectionModel = topo.getSelectionModel();
|
|
59
|
+
selectionModel.addSelectionChangeListener(handleSelectionChange);
|
|
60
|
+
dataModel.addDataPropertyChangeListener(handleDataPropertyChange);
|
|
61
|
+
return function () {
|
|
62
|
+
selectionModel.removeSelectionChangeListener(handleSelectionChange);
|
|
63
|
+
dataModel.removeDataPropertyChangeListener(handleDataPropertyChange);
|
|
64
|
+
};
|
|
65
|
+
}, []);
|
|
66
|
+
var removeListener = useCallback(function (data) {
|
|
67
|
+
rlog.info('Selection removeListener');
|
|
68
|
+
|
|
69
|
+
if (removeListenerRef.current) {
|
|
70
|
+
removeListenerRef.current();
|
|
71
|
+
removeListenerRef.current = null;
|
|
72
|
+
}
|
|
73
|
+
}, []);
|
|
74
|
+
var initSelection = useCallback(function () {
|
|
75
|
+
rlog.info('Selection init');
|
|
76
|
+
|
|
77
|
+
if (removeListenerRef.current) {
|
|
78
|
+
removeListener();
|
|
79
|
+
}
|
|
80
|
+
|
|
81
|
+
updateSelection();
|
|
82
|
+
removeListenerRef.current = initListener();
|
|
83
|
+
}, []);
|
|
84
|
+
var destroySelection = useCallback(function (data) {
|
|
85
|
+
rlog.info('Selection destroy');
|
|
86
|
+
removeListener();
|
|
87
|
+
setSelection([]);
|
|
56
88
|
}, []);
|
|
57
|
-
var
|
|
89
|
+
var resetSelection = useCallback(function (data) {
|
|
90
|
+
rlog.info('Selection reset');
|
|
58
91
|
setSelection([]);
|
|
59
92
|
}, []);
|
|
60
93
|
return {
|
|
61
94
|
initSelection: initSelection,
|
|
62
|
-
|
|
95
|
+
destroySelection: destroySelection,
|
|
96
|
+
resetSelection: resetSelection,
|
|
63
97
|
updateSelection: updateSelection // destroy,
|
|
64
98
|
|
|
65
99
|
};
|
|
@@ -79,15 +113,15 @@ var map = {
|
|
|
79
113
|
styleMap: JSON.parse(JSON.stringify(element.getStyleMap() || {}))
|
|
80
114
|
};
|
|
81
115
|
},
|
|
82
|
-
|
|
116
|
+
'ht.Edge': function htEdge(element) {
|
|
83
117
|
return _extends({}, map.common(element));
|
|
84
118
|
},
|
|
85
|
-
|
|
86
|
-
return _extends({}, map[
|
|
119
|
+
'ht.Group': function htGroup(element) {
|
|
120
|
+
return _extends({}, map['ht.Node'](element), {
|
|
87
121
|
expanded: element.isExpanded()
|
|
88
122
|
});
|
|
89
123
|
},
|
|
90
|
-
|
|
124
|
+
'ht.Node': function htNode(element) {
|
|
91
125
|
return _extends({}, map.common(element), {
|
|
92
126
|
image: element.getImage(),
|
|
93
127
|
width: element.getWidth(),
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import rlog from '@riil-frontend/component-topology-utils/es/rlog';
|
|
2
|
+
import { useEffect } from 'react';
|
|
3
|
+
import useSelection from "./useSelection";
|
|
4
|
+
export default function useSelectionListener(props) {
|
|
5
|
+
var topo = props.topo;
|
|
6
|
+
|
|
7
|
+
var _topo$store$useModelS = topo.store.useModelState('topoMod'),
|
|
8
|
+
graphLoaded = _topo$store$useModelS.graphLoaded,
|
|
9
|
+
graphLoaded2 = _topo$store$useModelS.graphLoaded2,
|
|
10
|
+
viewState = _topo$store$useModelS.viewState;
|
|
11
|
+
|
|
12
|
+
var isEditMode = viewState === 'edit'; // TODO 临时放这里,当前监听内容较多
|
|
13
|
+
|
|
14
|
+
var _useSelection = useSelection({
|
|
15
|
+
topo: topo
|
|
16
|
+
}),
|
|
17
|
+
initSelection = _useSelection.initSelection,
|
|
18
|
+
destroySelection = _useSelection.destroySelection;
|
|
19
|
+
|
|
20
|
+
useEffect(function () {
|
|
21
|
+
var inited = false;
|
|
22
|
+
var loaded = graphLoaded || graphLoaded2;
|
|
23
|
+
|
|
24
|
+
if (isEditMode && loaded) {
|
|
25
|
+
initSelection();
|
|
26
|
+
inited = true;
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
return function () {
|
|
30
|
+
if (inited) {
|
|
31
|
+
destroySelection();
|
|
32
|
+
}
|
|
33
|
+
};
|
|
34
|
+
}, [graphLoaded, graphLoaded2, isEditMode]);
|
|
35
|
+
}
|
|
@@ -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.
|
|
24
|
+
var version = typeof "5.0.3" === 'string' ? "5.0.3" : null;
|
|
25
25
|
console.info("\u62D3\u6251\u7248\u672C: " + version);
|
|
26
26
|
/**
|
|
27
27
|
* 拓扑显示和编辑
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
+
import _asyncToGenerator from "@babel/runtime/helpers/asyncToGenerator";
|
|
1
2
|
import _Table from "@alifd/next/es/table";
|
|
2
3
|
import _extends from "@babel/runtime/helpers/extends";
|
|
3
|
-
import _asyncToGenerator from "@babel/runtime/helpers/asyncToGenerator";
|
|
4
4
|
import _regeneratorRuntime from "@babel/runtime/regenerator";
|
|
5
5
|
import React from 'react';
|
|
6
6
|
import TableLayout from '@riil-frontend/component-table-layout';
|
|
@@ -11,7 +11,80 @@ import { commonQueryCiDataByIds } from "../../../../../services/cmdb";
|
|
|
11
11
|
import { queryLatestMetrics } from "../../../../../services/cmdb/metric";
|
|
12
12
|
import styles from "./ClusterMemberTable.module.scss";
|
|
13
13
|
import Link from "../../../../../../components/Link";
|
|
14
|
-
|
|
14
|
+
|
|
15
|
+
function ClusterMemberTable(props) {
|
|
16
|
+
var tableProps = props.tableProps,
|
|
17
|
+
paginationProps = props.paginationProps; // url 处理,UICBB 的地址需截取前缀
|
|
18
|
+
|
|
19
|
+
function formatUrl(url) {
|
|
20
|
+
var _window, _window$location;
|
|
21
|
+
|
|
22
|
+
var prefix = '/default/pagecenter';
|
|
23
|
+
|
|
24
|
+
if (((_window = window) === null || _window === void 0 ? void 0 : (_window$location = _window.location) === null || _window$location === void 0 ? void 0 : _window$location.pathname.indexOf(prefix)) === 0 && (url === null || url === void 0 ? void 0 : url.indexOf(prefix)) === 0) {
|
|
25
|
+
return url.split(prefix)[1];
|
|
26
|
+
} else {
|
|
27
|
+
return url;
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
/**
|
|
31
|
+
* Table列数据
|
|
32
|
+
*/
|
|
33
|
+
|
|
34
|
+
|
|
35
|
+
var columns = [{
|
|
36
|
+
id: '1',
|
|
37
|
+
title: '显示名称',
|
|
38
|
+
dataIndex: 'attributes.display_name',
|
|
39
|
+
// sortable: true,
|
|
40
|
+
lock: true,
|
|
41
|
+
width: 160,
|
|
42
|
+
cell: function cell(vallue, index, item) {
|
|
43
|
+
var link = "/default/pagecenter/resDetail/view/" + item.id + "?resId=" + item.id + "&domainCode=" + item.typeObject.domain + "&title=" + vallue + "&ciCode=" + item.typeCode; // 资源跳转链接
|
|
44
|
+
|
|
45
|
+
return /*#__PURE__*/React.createElement(Link, {
|
|
46
|
+
title: vallue || "",
|
|
47
|
+
to: formatUrl(link)
|
|
48
|
+
}, vallue || "-");
|
|
49
|
+
}
|
|
50
|
+
}, {
|
|
51
|
+
id: '2',
|
|
52
|
+
title: 'IP地址',
|
|
53
|
+
dataIndex: 'attributes.ipv4_address',
|
|
54
|
+
width: 120
|
|
55
|
+
}, {
|
|
56
|
+
id: '3',
|
|
57
|
+
title: '成员角色',
|
|
58
|
+
dataIndex: 'memberRole',
|
|
59
|
+
width: 120
|
|
60
|
+
}, {
|
|
61
|
+
id: '4',
|
|
62
|
+
title: '资源类型',
|
|
63
|
+
dataIndex: 'typeObject.displayName',
|
|
64
|
+
width: 120
|
|
65
|
+
}];
|
|
66
|
+
return /*#__PURE__*/React.createElement(TableLayout, {
|
|
67
|
+
wrapProps: {
|
|
68
|
+
style: {}
|
|
69
|
+
},
|
|
70
|
+
table: /*#__PURE__*/React.createElement(_Table, _extends({}, tableProps, {
|
|
71
|
+
hasBorder: false,
|
|
72
|
+
fixedHeader: true,
|
|
73
|
+
emptyContent: "\u6682\u65E0\u6570\u636E"
|
|
74
|
+
}), columns.map(function (columnItem) {
|
|
75
|
+
return /*#__PURE__*/React.createElement(_Table.Column, _extends({
|
|
76
|
+
key: columnItem.dataIndex
|
|
77
|
+
}, columnItem));
|
|
78
|
+
})),
|
|
79
|
+
pagination: /*#__PURE__*/React.createElement(Pagination, _extends({}, paginationProps, {
|
|
80
|
+
type: "simple",
|
|
81
|
+
useDefaultConfig: false,
|
|
82
|
+
showChecked: false
|
|
83
|
+
}))
|
|
84
|
+
});
|
|
85
|
+
}
|
|
86
|
+
|
|
87
|
+
export default function ClusterMemberTableContainer(props) {
|
|
15
88
|
var data = props.data,
|
|
16
89
|
topo = props.topo;
|
|
17
90
|
var datas = topo.dataModel.useDatas();
|
|
@@ -56,12 +129,12 @@ export default function ClusterChildrenTable(props) {
|
|
|
56
129
|
});
|
|
57
130
|
return _extends({}, ci, {
|
|
58
131
|
typeObject: ciTypeMap[ci.typeCode],
|
|
59
|
-
memberRole: topo.dictCache.dictObject.member_role[memberRoleMetric.metricValue]
|
|
132
|
+
memberRole: topo.dictCache.dictObject.member_role[memberRoleMetric === null || memberRoleMetric === void 0 ? void 0 : memberRoleMetric.metricValue]
|
|
60
133
|
});
|
|
61
134
|
}),
|
|
62
135
|
total: ciDataResult.totalRecord,
|
|
63
|
-
current:
|
|
64
|
-
pageSize:
|
|
136
|
+
current: ciDataResult.pageIndex,
|
|
137
|
+
pageSize: pageSize
|
|
65
138
|
}
|
|
66
139
|
});
|
|
67
140
|
|
|
@@ -85,81 +158,11 @@ export default function ClusterChildrenTable(props) {
|
|
|
85
158
|
}
|
|
86
159
|
}) // useFilterPlugin(),
|
|
87
160
|
];
|
|
88
|
-
|
|
89
|
-
var _useNextTable = useNextTable(getTableData, {
|
|
161
|
+
var tableProps = useNextTable(getTableData, {
|
|
90
162
|
refreshDeps: [data],
|
|
91
163
|
plugins: plugins
|
|
92
|
-
})
|
|
93
|
-
tableProps = _useNextTable.tableProps,
|
|
94
|
-
paginationProps = _useNextTable.paginationProps; // url 处理,UICBB 的地址需截取前缀
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
function formatUrl(url) {
|
|
98
|
-
var _window, _window$location;
|
|
99
|
-
|
|
100
|
-
var prefix = '/default/pagecenter';
|
|
101
|
-
|
|
102
|
-
if (((_window = window) === null || _window === void 0 ? void 0 : (_window$location = _window.location) === null || _window$location === void 0 ? void 0 : _window$location.pathname.indexOf(prefix)) === 0 && (url === null || url === void 0 ? void 0 : url.indexOf(prefix)) === 0) {
|
|
103
|
-
return url.split(prefix)[1];
|
|
104
|
-
} else {
|
|
105
|
-
return url;
|
|
106
|
-
}
|
|
107
|
-
}
|
|
108
|
-
/**
|
|
109
|
-
* Table列数据
|
|
110
|
-
*/
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
var columns = [{
|
|
114
|
-
id: '1',
|
|
115
|
-
title: '显示名称',
|
|
116
|
-
dataIndex: 'attributes.display_name',
|
|
117
|
-
// sortable: true,
|
|
118
|
-
lock: true,
|
|
119
|
-
width: 160,
|
|
120
|
-
cell: function cell(vallue, index, item) {
|
|
121
|
-
var link = "/default/pagecenter/resDetail/view/" + item.id + "?resId=" + item.id + "&domainCode=" + item.typeObject.domain + "&title=" + vallue + "&ciCode=" + item.typeCode; // 资源跳转链接
|
|
122
|
-
|
|
123
|
-
return /*#__PURE__*/React.createElement(Link, {
|
|
124
|
-
title: vallue || "",
|
|
125
|
-
to: formatUrl(link)
|
|
126
|
-
}, vallue || "-");
|
|
127
|
-
}
|
|
128
|
-
}, {
|
|
129
|
-
id: '2',
|
|
130
|
-
title: 'IP地址',
|
|
131
|
-
dataIndex: 'attributes.ipv4_address',
|
|
132
|
-
width: 120
|
|
133
|
-
}, {
|
|
134
|
-
id: '3',
|
|
135
|
-
title: '成员角色',
|
|
136
|
-
dataIndex: 'memberRole',
|
|
137
|
-
width: 120
|
|
138
|
-
}, {
|
|
139
|
-
id: '4',
|
|
140
|
-
title: '资源类型',
|
|
141
|
-
dataIndex: 'typeObject.displayName',
|
|
142
|
-
width: 120
|
|
143
|
-
}];
|
|
164
|
+
});
|
|
144
165
|
return /*#__PURE__*/React.createElement("div", {
|
|
145
166
|
className: styles.container
|
|
146
|
-
}, /*#__PURE__*/React.createElement(
|
|
147
|
-
wrapProps: {
|
|
148
|
-
style: {}
|
|
149
|
-
},
|
|
150
|
-
table: /*#__PURE__*/React.createElement(_Table, _extends({}, tableProps, {
|
|
151
|
-
hasBorder: false,
|
|
152
|
-
fixedHeader: true,
|
|
153
|
-
emptyContent: "\u6682\u65E0\u6570\u636E"
|
|
154
|
-
}), columns.map(function (columnItem) {
|
|
155
|
-
return /*#__PURE__*/React.createElement(_Table.Column, _extends({
|
|
156
|
-
key: columnItem.dataIndex
|
|
157
|
-
}, columnItem));
|
|
158
|
-
})),
|
|
159
|
-
pagination: /*#__PURE__*/React.createElement(Pagination, _extends({}, paginationProps, {
|
|
160
|
-
type: "simple",
|
|
161
|
-
useDefaultConfig: false,
|
|
162
|
-
showChecked: false
|
|
163
|
-
}))
|
|
164
|
-
}));
|
|
167
|
+
}, /*#__PURE__*/React.createElement(ClusterMemberTable, tableProps));
|
|
165
168
|
}
|
|
@@ -68,7 +68,6 @@ export default function ResourceOverviewMetric(props) {
|
|
|
68
68
|
var code = itemData.code,
|
|
69
69
|
metricItem = itemData.metricItem,
|
|
70
70
|
list = itemData.list;
|
|
71
|
-
console.log('formatValue', itemData);
|
|
72
71
|
var format = metricValueFormat({
|
|
73
72
|
value: (_list = list[list.length - 1]) === null || _list === void 0 ? void 0 : _list.metricValue,
|
|
74
73
|
dataType: metricItem.dataType,
|
|
@@ -90,9 +89,9 @@ export default function ResourceOverviewMetric(props) {
|
|
|
90
89
|
value: item.metricValue == -2 ? null : Number(item.metricValue)
|
|
91
90
|
};
|
|
92
91
|
});
|
|
93
|
-
}
|
|
92
|
+
} // console.log('ResourceOverviewMetric', data);
|
|
93
|
+
|
|
94
94
|
|
|
95
|
-
console.log('ResourceOverviewMetric', data);
|
|
96
95
|
var content;
|
|
97
96
|
|
|
98
97
|
if (data.length) {
|
|
@@ -19,7 +19,7 @@ var _rlog = _interopRequireDefault(require("@riil-frontend/component-topology-ut
|
|
|
19
19
|
|
|
20
20
|
var _useTopoEdit = _interopRequireDefault(require("../../hooks/useTopoEdit"));
|
|
21
21
|
|
|
22
|
-
var
|
|
22
|
+
var _useSelectionListener = _interopRequireDefault(require("../../hooks/useSelectionListener"));
|
|
23
23
|
|
|
24
24
|
var _showMessage = _interopRequireDefault(require("../../utils/showMessage"));
|
|
25
25
|
|
|
@@ -99,12 +99,7 @@ var Topology = function Topology(props) {
|
|
|
99
99
|
setTData = _useState[1]; // TODO 临时放这里,当前监听内容较多
|
|
100
100
|
|
|
101
101
|
|
|
102
|
-
|
|
103
|
-
topo: topo
|
|
104
|
-
}),
|
|
105
|
-
initSelection = _useSelection.initSelection,
|
|
106
|
-
clearSelection = _useSelection.clearSelection;
|
|
107
|
-
|
|
102
|
+
(0, _useSelectionListener["default"])(props);
|
|
108
103
|
(0, _useRouterAdapter["default"])(props);
|
|
109
104
|
var topoEdit = (0, _useTopoEdit["default"])({
|
|
110
105
|
topo: topo,
|
|
@@ -138,8 +133,6 @@ var Topology = function Topology(props) {
|
|
|
138
133
|
setConfig: null
|
|
139
134
|
});
|
|
140
135
|
}
|
|
141
|
-
|
|
142
|
-
clearSelection();
|
|
143
136
|
}, [topoId, viewState]);
|
|
144
137
|
(0, _react.useEffect)(function () {
|
|
145
138
|
// rlog.debug("TopoView.useEffect topoData", topoData);
|
|
@@ -148,7 +141,6 @@ var Topology = function Topology(props) {
|
|
|
148
141
|
(0, _react.useEffect)(function () {
|
|
149
142
|
return function () {
|
|
150
143
|
topoDispatchers.reset();
|
|
151
|
-
clearSelection();
|
|
152
144
|
};
|
|
153
145
|
}, []);
|
|
154
146
|
var onGraphCreated = (0, _react.useCallback)(function (topoClient) {
|
|
@@ -156,8 +148,6 @@ var Topology = function Topology(props) {
|
|
|
156
148
|
|
|
157
149
|
_rlog["default"].info('TopoView.onGraphCreated');
|
|
158
150
|
|
|
159
|
-
initSelection();
|
|
160
|
-
|
|
161
151
|
if (onReady) {
|
|
162
152
|
onReady();
|
|
163
153
|
}
|
|
@@ -256,10 +246,6 @@ var Topology = function Topology(props) {
|
|
|
256
246
|
onRefresh(event.data);
|
|
257
247
|
break;
|
|
258
248
|
|
|
259
|
-
case _componentTopologyGraph.TopoEvent.EVENT_EDIT_ENTER:
|
|
260
|
-
initSelection();
|
|
261
|
-
break;
|
|
262
|
-
|
|
263
249
|
case _componentTopologyGraph.TopoEvent.EVENT_EDIT_EXIT:
|
|
264
250
|
onExitEdit(event.data);
|
|
265
251
|
break;
|
|
@@ -13,12 +13,10 @@ function useHtDataPropertyChangeListener(props) {
|
|
|
13
13
|
var topo = props.topo,
|
|
14
14
|
onChange = props.onChange;
|
|
15
15
|
|
|
16
|
-
var _topo$store$
|
|
17
|
-
|
|
18
|
-
|
|
16
|
+
var _topo$store$useModelS = topo.store.useModelState('topoMod'),
|
|
17
|
+
graphLoaded = _topo$store$useModelS.graphLoaded,
|
|
18
|
+
graphLoaded2 = _topo$store$useModelS.graphLoaded2;
|
|
19
19
|
|
|
20
|
-
var graphLoaded = topoState.graphLoaded,
|
|
21
|
-
graphLoaded2 = topoState.graphLoaded2;
|
|
22
20
|
(0, _react.useEffect)(function () {
|
|
23
21
|
var dm = topo.getDataModel();
|
|
24
22
|
var inited = false;
|
|
@@ -16,7 +16,8 @@ var _rlog = _interopRequireDefault(require("@riil-frontend/component-topology-ut
|
|
|
16
16
|
*/
|
|
17
17
|
function useSelection(props) {
|
|
18
18
|
var topo = props.topo;
|
|
19
|
-
var selectionDispatchers = topo.store.useModelDispatchers(
|
|
19
|
+
var selectionDispatchers = topo.store.useModelDispatchers('selection');
|
|
20
|
+
var removeListenerRef = (0, _react.useRef)(null);
|
|
20
21
|
|
|
21
22
|
var setSelection = function setSelection(selection) {
|
|
22
23
|
selectionDispatchers.update({
|
|
@@ -33,25 +34,23 @@ function useSelection(props) {
|
|
|
33
34
|
|
|
34
35
|
setSelection(selectionArr);
|
|
35
36
|
} catch (e) {
|
|
36
|
-
_rlog["default"].error(
|
|
37
|
+
_rlog["default"].error('updateSelection error', e);
|
|
37
38
|
}
|
|
38
39
|
}, []);
|
|
39
|
-
var
|
|
40
|
-
_rlog["default"].info(
|
|
40
|
+
var initListener = (0, _react.useCallback)(function () {
|
|
41
|
+
_rlog["default"].info('Selection initListener');
|
|
41
42
|
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
updateSelection();
|
|
45
|
-
selectionModel.addSelectionChangeListener(function (e) {
|
|
46
|
-
_rlog["default"].info("selectionChangeListener", e);
|
|
43
|
+
function handleSelectionChange(e) {
|
|
44
|
+
_rlog["default"].info('Selection handleSelectionChange', e);
|
|
47
45
|
|
|
48
46
|
updateSelection();
|
|
49
|
-
}
|
|
50
|
-
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
function handleDataPropertyChange(e) {
|
|
51
50
|
var property = e.property,
|
|
52
51
|
data = e.data;
|
|
53
52
|
|
|
54
|
-
if ([
|
|
53
|
+
if (['position', 'childChange', 'a:scale'].indexOf(property) !== -1) {
|
|
55
54
|
return;
|
|
56
55
|
}
|
|
57
56
|
|
|
@@ -63,14 +62,50 @@ function useSelection(props) {
|
|
|
63
62
|
// console.info('PropertyChangeListener', e);
|
|
64
63
|
updateSelection();
|
|
65
64
|
}
|
|
66
|
-
}
|
|
65
|
+
}
|
|
66
|
+
|
|
67
|
+
var dataModel = topo.getDataModel();
|
|
68
|
+
var selectionModel = topo.getSelectionModel();
|
|
69
|
+
selectionModel.addSelectionChangeListener(handleSelectionChange);
|
|
70
|
+
dataModel.addDataPropertyChangeListener(handleDataPropertyChange);
|
|
71
|
+
return function () {
|
|
72
|
+
selectionModel.removeSelectionChangeListener(handleSelectionChange);
|
|
73
|
+
dataModel.removeDataPropertyChangeListener(handleDataPropertyChange);
|
|
74
|
+
};
|
|
67
75
|
}, []);
|
|
68
|
-
var
|
|
76
|
+
var removeListener = (0, _react.useCallback)(function (data) {
|
|
77
|
+
_rlog["default"].info('Selection removeListener');
|
|
78
|
+
|
|
79
|
+
if (removeListenerRef.current) {
|
|
80
|
+
removeListenerRef.current();
|
|
81
|
+
removeListenerRef.current = null;
|
|
82
|
+
}
|
|
83
|
+
}, []);
|
|
84
|
+
var initSelection = (0, _react.useCallback)(function () {
|
|
85
|
+
_rlog["default"].info('Selection init');
|
|
86
|
+
|
|
87
|
+
if (removeListenerRef.current) {
|
|
88
|
+
removeListener();
|
|
89
|
+
}
|
|
90
|
+
|
|
91
|
+
updateSelection();
|
|
92
|
+
removeListenerRef.current = initListener();
|
|
93
|
+
}, []);
|
|
94
|
+
var destroySelection = (0, _react.useCallback)(function (data) {
|
|
95
|
+
_rlog["default"].info('Selection destroy');
|
|
96
|
+
|
|
97
|
+
removeListener();
|
|
98
|
+
setSelection([]);
|
|
99
|
+
}, []);
|
|
100
|
+
var resetSelection = (0, _react.useCallback)(function (data) {
|
|
101
|
+
_rlog["default"].info('Selection reset');
|
|
102
|
+
|
|
69
103
|
setSelection([]);
|
|
70
104
|
}, []);
|
|
71
105
|
return {
|
|
72
106
|
initSelection: initSelection,
|
|
73
|
-
|
|
107
|
+
destroySelection: destroySelection,
|
|
108
|
+
resetSelection: resetSelection,
|
|
74
109
|
updateSelection: updateSelection // destroy,
|
|
75
110
|
|
|
76
111
|
};
|
|
@@ -90,15 +125,15 @@ var map = {
|
|
|
90
125
|
styleMap: JSON.parse(JSON.stringify(element.getStyleMap() || {}))
|
|
91
126
|
};
|
|
92
127
|
},
|
|
93
|
-
|
|
128
|
+
'ht.Edge': function htEdge(element) {
|
|
94
129
|
return (0, _extends2["default"])({}, map.common(element));
|
|
95
130
|
},
|
|
96
|
-
|
|
97
|
-
return (0, _extends2["default"])({}, map[
|
|
131
|
+
'ht.Group': function htGroup(element) {
|
|
132
|
+
return (0, _extends2["default"])({}, map['ht.Node'](element), {
|
|
98
133
|
expanded: element.isExpanded()
|
|
99
134
|
});
|
|
100
135
|
},
|
|
101
|
-
|
|
136
|
+
'ht.Node': function htNode(element) {
|
|
102
137
|
return (0, _extends2["default"])({}, map.common(element), {
|
|
103
138
|
image: element.getImage(),
|
|
104
139
|
width: element.getWidth(),
|