@riil-frontend/component-topology 2.1.5-dev.3 → 2.1.6

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.
Files changed (92) hide show
  1. package/build/index.css +1 -1
  2. package/build/index.js +7 -7
  3. package/demo/1/345/237/272/346/234/254/usage.md +4 -0
  4. package/demo/1/345/237/272/346/234/254//345/221/212/350/255/246/346/216/250/351/200/201.md +1 -1
  5. package/demo/1/345/237/272/346/234/254//350/207/252/345/256/232/344/271/211/345/233/276/346/240/207.md +1 -1
  6. package/demo/1/345/237/272/346/234/254//350/207/252/345/256/232/344/271/211/345/261/236/346/200/247/345/222/214/346/214/207/346/240/207.md +1 -1
  7. package/demo/{1/345/237/272/346/234/254 → 2/347/274/226/350/276/221/346/250/241/345/274/217}//346/226/260/345/273/272/350/277/233/345/205/245/347/274/226/350/276/221/346/250/241/345/274/217.md +1 -1
  8. package/demo/{1/345/237/272/346/234/254 → 2/347/274/226/350/276/221/346/250/241/345/274/217}//346/233/277/346/215/242/350/212/202/347/202/271.md +1 -1
  9. package/demo/{1/345/237/272/346/234/254 → 2/347/274/226/350/276/221/346/250/241/345/274/217}//347/246/201/347/224/250/345/205/263/350/201/224/350/265/204/346/272/220.md +1 -1
  10. package/demo/{1/345/237/272/346/234/254 → 2/347/274/226/350/276/221/346/250/241/345/274/217}//347/274/226/350/276/221/346/250/241/345/274/217/345/217/263/351/224/256/350/217/234/345/215/225.md +1 -1
  11. package/demo/{2 → 3}/346/213/223/346/211/221/344/270/255/345/277/203/js/TopoFull.jsx +1 -2
  12. package/demo/{2 → 3}/346/213/223/346/211/221/344/270/255/345/277/203/js/TopoViewer.jsx +0 -0
  13. package/demo/{2 → 3}/346/213/223/346/211/221/344/270/255/345/277/203/js/mock/authorization/v1/api/authority/check/checkFuncAuthentication +0 -0
  14. package/demo/{2 → 3}/346/213/223/346/211/221/344/270/255/345/277/203/js/mock/authorization/v1/api/authority/check/checkFuncAuthentication.json +0 -0
  15. package/demo/3/{344/270/232/345/212/241/347/233/221/346/216/247/346/213/223/346/211/221/src → 346/213/223/346/211/221/344/270/255/345/277/203/js}/mock/model/v1/api/getAllDict +0 -0
  16. package/demo/3/{344/270/232/345/212/241/347/233/221/346/216/247/346/213/223/346/211/221/src → 346/213/223/346/211/221/344/270/255/345/277/203/js}/mock/topo/v1/api/alarm +0 -0
  17. package/demo/3/{344/270/232/345/212/241/347/233/221/346/216/247/346/213/223/346/211/221/src → 346/213/223/346/211/221/344/270/255/345/277/203/js}/mock/topo/v1/api/alarm.json +0 -0
  18. package/demo/{2 → 3}/346/213/223/346/211/221/344/270/255/345/277/203/js/mock/topo/v1/api/attributes/once +0 -0
  19. package/demo/{2 → 3}/346/213/223/346/211/221/344/270/255/345/277/203/js/mock/topo/v1/api/attributes/once.json +0 -0
  20. package/demo/{2 → 3}/346/213/223/346/211/221/344/270/255/345/277/203/js/mock/topo/v1/api/attributes/polling +0 -0
  21. package/demo/{2 → 3}/346/213/223/346/211/221/344/270/255/345/277/203/js/mock/topo/v1/api/attributes/polling.json +0 -0
  22. package/demo/3/{344/270/232/345/212/241/347/233/221/346/216/247/346/213/223/346/211/221/src → 346/213/223/346/211/221/344/270/255/345/277/203/js}/mock/topo/v1/api/auth/permission/2 +0 -0
  23. package/demo/3/{344/270/232/345/212/241/347/233/221/346/216/247/346/213/223/346/211/221/src → 346/213/223/346/211/221/344/270/255/345/277/203/js}/mock/topo/v1/api/auth/permission/2.json +0 -0
  24. package/demo/3/{344/270/232/345/212/241/347/233/221/346/216/247/346/213/223/346/211/221/src → 346/213/223/346/211/221/344/270/255/345/277/203/js}/mock/topo/v1/api/menu +0 -0
  25. package/demo/3/{344/270/232/345/212/241/347/233/221/346/216/247/346/213/223/346/211/221/src → 346/213/223/346/211/221/344/270/255/345/277/203/js}/mock/topo/v1/api/menu.json +0 -0
  26. package/demo/3/{344/270/232/345/212/241/347/233/221/346/216/247/346/213/223/346/211/221/src → 346/213/223/346/211/221/344/270/255/345/277/203/js}/mock/topo/v1/api/shape +0 -0
  27. package/demo/3/{344/270/232/345/212/241/347/233/221/346/216/247/346/213/223/346/211/221/src → 346/213/223/346/211/221/344/270/255/345/277/203/js}/mock/topo/v1/api/shape.json +0 -0
  28. package/demo/{2 → 3}/346/213/223/346/211/221/344/270/255/345/277/203/js/mock/topo/v1/api/structure/both/2 +0 -0
  29. package/demo/{2 → 3}/346/213/223/346/211/221/344/270/255/345/277/203/js/mock/topo/v1/api/structure/both/2.json +0 -0
  30. package/demo/{2 → 3}/346/213/223/346/211/221/344/270/255/345/277/203/js/mock/topo/v1/api/structure/relationList +0 -0
  31. package/demo/{2 → 3}/346/213/223/346/211/221/344/270/255/345/277/203/js/mock/topo/v1/api/structure/relationList.json +0 -0
  32. package/demo/3/{344/270/232/345/212/241/347/233/221/346/216/247/346/213/223/346/211/221/src → 346/213/223/346/211/221/344/270/255/345/277/203/js}/mock/topo/v1/api/webUrl/list +0 -0
  33. package/demo/3/{344/270/232/345/212/241/347/233/221/346/216/247/346/213/223/346/211/221/src → 346/213/223/346/211/221/344/270/255/345/277/203/js}/mock/topo/v1/api/webUrl/list.json +0 -0
  34. package/demo/3/346/213/223/346/211/221/344/270/255/345/277/203/js/request.js +7 -0
  35. package/demo/{2 → 3}/346/213/223/346/211/221/344/270/255/345/277/203//345/256/214/346/225/264/346/250/241/345/274/217.md +0 -0
  36. package/demo/{2 → 3}/346/213/223/346/211/221/344/270/255/345/277/203//346/230/276/347/244/272/346/250/241/345/274/217.md +0 -0
  37. package/demo/{3 → 4}/344/270/232/345/212/241/347/233/221/346/216/247/346/213/223/346/211/221//345/272/224/347/224/250/351/203/250/347/275/262/346/213/223/346/211/221.md +1 -1
  38. package/demo/{3 → 4}/344/270/232/345/212/241/347/233/221/346/216/247/346/213/223/346/211/221//346/225/260/346/215/256/346/265/201/346/213/223/346/211/221.md +1 -1
  39. package/demo/5/345/205/266/344/273/226/347/273/204/344/273/266//351/200/211/346/213/251/350/265/204/346/272/220/346/214/211/351/222/256.md +12 -0
  40. package/demo/5/345/205/266/344/273/226/347/273/204/344/273/266//351/200/211/346/213/251/350/265/204/346/272/220/347/273/204/344/273/266.md +12 -0
  41. package/demo/API/API.md +11 -6
  42. package/{demo/3/344/270/232/345/212/241/347/233/221/346/216/247/346/213/223/346/211/221/src/mock → demo-mock/basic}/cmdb/v1/api/authority/ci/commonQuery +0 -0
  43. package/{demo/2/346/213/223/346/211/221/344/270/255/345/277/203/js/mock → demo-mock/basic}/model/v1/api/getAllDict +0 -0
  44. package/{demo/3/344/270/232/345/212/241/347/233/221/346/216/247/346/213/223/346/211/221/src/mock → demo-mock/basic}/model/v1/api/modelTree +0 -0
  45. package/{demo/2/346/213/223/346/211/221/344/270/255/345/277/203/js/mock → demo-mock/basic}/topo/v1/api/alarm +0 -0
  46. package/{demo/2/346/213/223/346/211/221/344/270/255/345/277/203/js/mock → demo-mock/basic}/topo/v1/api/alarm.json +0 -0
  47. package/{demo/3/344/270/232/345/212/241/347/233/221/346/216/247/346/213/223/346/211/221/src/mock → demo-mock/basic}/topo/v1/api/attributes/once +0 -0
  48. package/{demo/3/344/270/232/345/212/241/347/233/221/346/216/247/346/213/223/346/211/221/src/mock → demo-mock/basic}/topo/v1/api/attributes/once.json +0 -0
  49. package/{demo/3/344/270/232/345/212/241/347/233/221/346/216/247/346/213/223/346/211/221/src/mock → demo-mock/basic}/topo/v1/api/attributes/polling +0 -0
  50. package/{demo/3/344/270/232/345/212/241/347/233/221/346/216/247/346/213/223/346/211/221/src/mock → demo-mock/basic}/topo/v1/api/attributes/polling.json +0 -0
  51. package/{demo/2/346/213/223/346/211/221/344/270/255/345/277/203/js/mock → demo-mock/basic}/topo/v1/api/auth/permission/2 +0 -0
  52. package/{demo/2/346/213/223/346/211/221/344/270/255/345/277/203/js/mock → demo-mock/basic}/topo/v1/api/auth/permission/2.json +0 -0
  53. package/{demo/2/346/213/223/346/211/221/344/270/255/345/277/203/js/mock → demo-mock/basic}/topo/v1/api/menu +0 -0
  54. package/{demo/2/346/213/223/346/211/221/344/270/255/345/277/203/js/mock → demo-mock/basic}/topo/v1/api/menu.json +0 -0
  55. package/{demo/2/346/213/223/346/211/221/344/270/255/345/277/203/js/mock → demo-mock/basic}/topo/v1/api/shape +0 -0
  56. package/{demo/2/346/213/223/346/211/221/344/270/255/345/277/203/js/mock → demo-mock/basic}/topo/v1/api/shape.json +0 -0
  57. package/{demo/3/344/270/232/345/212/241/347/233/221/346/216/247/346/213/223/346/211/221/src/mock → demo-mock/basic}/topo/v1/api/structure/both/1 +0 -0
  58. package/{demo/3/344/270/232/345/212/241/347/233/221/346/216/247/346/213/223/346/211/221/src/mock → demo-mock/basic}/topo/v1/api/structure/both/2 +0 -0
  59. package/{demo/3/344/270/232/345/212/241/347/233/221/346/216/247/346/213/223/346/211/221/src/mock → demo-mock/basic}/topo/v1/api/structure/both/3 +0 -0
  60. package/{demo/3/344/270/232/345/212/241/347/233/221/346/216/247/346/213/223/346/211/221/src/mock → demo-mock/basic}/topo/v1/api/structure/byCondition/2 +0 -0
  61. package/{demo/3/344/270/232/345/212/241/347/233/221/346/216/247/346/213/223/346/211/221/src/mock → demo-mock/basic}/topo/v1/api/structure/relationList +0 -0
  62. package/{demo/2/346/213/223/346/211/221/344/270/255/345/277/203/js/mock → demo-mock/basic}/topo/v1/api/webUrl/list +0 -0
  63. package/{demo/2/346/213/223/346/211/221/344/270/255/345/277/203/js/mock → demo-mock/basic}/topo/v1/api/webUrl/list.json +0 -0
  64. package/es/components/{TopoView/settings/GroupNodeList → ResourceSelect}/SelectResource/index.js +0 -0
  65. package/es/components/{TopoView/settings/GroupNodeList → ResourceSelect}/SelectResource/index.module.scss +0 -0
  66. package/es/components/TopoView/settings/GroupNodeList/ResourceList.js +1 -1
  67. package/es/components/TopoView/settings/LayerSettingsForm.js +4 -1
  68. package/lib/components/{TopoView/settings/GroupNodeList → ResourceSelect}/SelectResource/index.js +0 -0
  69. package/lib/components/{TopoView/settings/GroupNodeList → ResourceSelect}/SelectResource/index.module.scss +0 -0
  70. package/lib/components/TopoView/settings/GroupNodeList/ResourceList.js +1 -1
  71. package/lib/components/TopoView/settings/LayerSettingsForm.js +4 -1
  72. package/package.json +3 -3
  73. package/demo/2/346/213/223/346/211/221/344/270/255/345/277/203/js/request.js +0 -7
  74. package/demo/3/344/270/232/345/212/241/347/233/221/346/216/247/346/213/223/346/211/221/src/AppInstallTopo.jsx +0 -228
  75. package/demo/3/344/270/232/345/212/241/347/233/221/346/216/247/346/213/223/346/211/221/src/CreateTopo.jsx +0 -88
  76. package/demo/3/344/270/232/345/212/241/347/233/221/346/216/247/346/213/223/346/211/221/src/CustomAlarm.jsx +0 -110
  77. package/demo/3/344/270/232/345/212/241/347/233/221/346/216/247/346/213/223/346/211/221/src/CustomAttrAndMetric.jsx +0 -303
  78. package/demo/3/344/270/232/345/212/241/347/233/221/346/216/247/346/213/223/346/211/221/src/CustomNodeIcon.jsx +0 -124
  79. package/demo/3/344/270/232/345/212/241/347/233/221/346/216/247/346/213/223/346/211/221/src/DataStreamTopo.jsx +0 -188
  80. package/demo/3/344/270/232/345/212/241/347/233/221/346/216/247/346/213/223/346/211/221/src/DisableNodeRelateResource.jsx +0 -74
  81. package/demo/3/344/270/232/345/212/241/347/233/221/346/216/247/346/213/223/346/211/221/src/EditorContextMenu.jsx +0 -106
  82. package/demo/3/344/270/232/345/212/241/347/233/221/346/216/247/346/213/223/346/211/221/src/Metric.jsx +0 -106
  83. package/demo/3/344/270/232/345/212/241/347/233/221/346/216/247/346/213/223/346/211/221/src/data/appInstall/data1.json +0 -140
  84. package/demo/3/344/270/232/345/212/241/347/233/221/346/216/247/346/213/223/346/211/221/src/data/appInstall/data2.json +0 -240
  85. package/demo/3/344/270/232/345/212/241/347/233/221/346/216/247/346/213/223/346/211/221/src/data/appInstall/icon.js +0 -6
  86. package/demo/3/344/270/232/345/212/241/347/233/221/346/216/247/346/213/223/346/211/221/src/data/appInstall/index.js +0 -19
  87. package/demo/3/344/270/232/345/212/241/347/233/221/346/216/247/346/213/223/346/211/221/src/data/dataStream/data1.json +0 -145
  88. package/demo/3/344/270/232/345/212/241/347/233/221/346/216/247/346/213/223/346/211/221/src/data/dataStream/data2.json +0 -106
  89. package/demo/3/344/270/232/345/212/241/347/233/221/346/216/247/346/213/223/346/211/221/src/data/dataStream/icon.js +0 -6
  90. package/demo/3/344/270/232/345/212/241/347/233/221/346/216/247/346/213/223/346/211/221/src/data/dataStream/index.js +0 -19
  91. package/demo/3/344/270/232/345/212/241/347/233/221/346/216/247/346/213/223/346/211/221/src/mock/a.js +0 -0
  92. package/demo/3/344/270/232/345/212/241/347/233/221/346/216/247/346/213/223/346/211/221/src/request.js +0 -7
@@ -1,188 +0,0 @@
1
- import React, {useState, useEffect, useRef, useCallback, useMemo} from 'react';
2
- import {Radio, Loading, Button} from '@alifd/next';
3
-
4
- // import {createTopo, Topology, TitleBar, SearchWidget} from '@riil-frontend/component-topology';
5
- import {createTopo, Topology, TitleBar, SearchWidget, ViewerTools} from '../../../src';
6
-
7
- import request from './request';
8
- import data1 from './data/dataStream/data1';
9
- import createTopoData from './data/dataStream/data2';
10
-
11
- function TopoDemo(props) {
12
- const [loading, setLoading] = useState(false);
13
-
14
- const topo = useMemo(() => {
15
- return createTopo({
16
- request,
17
- enableDefaultAlarmLoader: false,
18
- enableDefaultMetricLoader: false,
19
- // 编辑模式配置
20
- editor: {
21
- enableRelateResource: false, // 禁用左侧资源链路页签、禁用手工添加的节点关联资源
22
- // 右键菜单
23
- contextMenu: {
24
- node: {
25
- enable: true,
26
- items: [
27
- {
28
- label: '新建服务',
29
- id: 'editor.Biz.XXX', // 加前缀避免冲突
30
- icon: '/img/topo/contextmenu/Topology_resources_menu_icon_overview.svg', // 可选参数
31
- visible: (data) => {
32
- return true;
33
- },
34
- onClick: (data) => {
35
- console.error('点击了右键菜单', data)
36
- }
37
- },
38
- ]
39
- },
40
- }
41
- }
42
- });
43
- }, []);
44
-
45
- const Provider = topo.Provider;
46
-
47
- // API:
48
-
49
- // 加载拓扑图数据
50
- const loadTopo = async () => {
51
- setLoading(true);
52
- await topo.load(data1);
53
- setLoading(false)
54
- };
55
-
56
- // 初始化
57
- useEffect(async () => {
58
- await loadTopo();
59
- return () => {
60
- topo.exit();
61
- }
62
- }, []);
63
-
64
- // 创建拓扑图进入编辑模式
65
- const createAndEnterEdit = async () => {
66
- setLoading(true);
67
- // TODO 转换格式
68
- await topo.load(createTopoData, {
69
- mode: 'edit'
70
- });
71
- setLoading(false)
72
- };
73
-
74
- // 进入编辑模式
75
- const enterEditMode = useCallback(async () => {
76
- setLoading(true);
77
- await topo.enterEditMode();
78
- setLoading(false)
79
- }, []);
80
-
81
- // 退出编辑模式
82
- const onExitEditMode = useCallback(async () => {
83
- setLoading(true);
84
-
85
- await topo.exitEditMode();
86
- // 重新加载拓扑
87
- await loadTopo();
88
-
89
- setLoading(false)
90
- }, []);
91
-
92
- // 触发保存事件
93
- const onTriggerSaveEvent = useCallback(async () => {
94
- await topo.triggerSaveEvent()
95
- }, []);
96
-
97
- // 保存
98
- const onSave = useCallback(async (ctx) => {
99
- setLoading(true);
100
-
101
- const {saveConfig} = ctx;
102
- // 保存节点位置、样式、配置
103
- await saveConfig();
104
-
105
- // 获取拓扑图 业务节点和连线、自定义节点和连线
106
- const data = topo.getData();
107
- console.error('获取拓扑图数据', data);
108
- // TODO 保存业务信息,
109
-
110
- setLoading(false)
111
- }, []);
112
-
113
- // 更新数据
114
- const updateData1 = useCallback(async () => {
115
- await topo.updateData({
116
- nodes: [
117
- {
118
- "id": "000000004e2f8f55",
119
- "name": "HuiJu166.2_20002-----------11",
120
- "ciType": "ruijieSwitch",
121
- "operation": "delete"
122
- },
123
- {
124
- "id": "222",
125
- "name": "222222222222",
126
- "ciType": "ruijieSwitch",
127
- "operation": "delete"
128
- },
129
- ],
130
- lines: [
131
- {
132
- "id": "r647792732420440064",
133
- "ciType": "networkLink",
134
- "source": "000000004e2f8f55",
135
- "target": "2",
136
- "operation": "delete"
137
- },
138
- ]
139
- })
140
- }, []);
141
-
142
- const renderViewerTitleBar = () => {
143
- return (
144
- <div style={{display: 'flex', alignItems: 'center'}}>
145
- <div style={{flex: 1}}>
146
- 此处是标题 &nbsp; &nbsp;
147
- <Button type="primary" onClick={createAndEnterEdit} title="新建并进入编辑模式">新建</Button>
148
- </div>
149
- <ViewerTools topo={topo} onEnterEdit={enterEditMode}/>
150
- </div>
151
- )
152
- };
153
-
154
- const renderEditorTitleBar = () => {
155
- return (
156
- <div style={{display: 'flex', alignItems: 'center'}}>
157
- <div style={{flex: 1}}>标题</div>
158
- <Button onClick={updateData1}>更新数据</Button> &nbsp; &nbsp;
159
- <Button type="primary" onClick={onTriggerSaveEvent}>保存</Button> &nbsp; &nbsp;
160
- <Button onClick={onExitEditMode}>退出</Button>
161
- </div>
162
- )
163
- };
164
-
165
- return (
166
- <Loading visible={loading} style={{width: '100%'}}>
167
- <Provider>
168
- <TitleBar
169
- topo={topo}
170
- render={({isEditMode}) => isEditMode ? renderEditorTitleBar() : renderViewerTitleBar()}
171
- />
172
- <br/>
173
-
174
- <div style={{width: '100%', height: '500px', background: 'white'}}>
175
- <Topology
176
- topo={topo}
177
- titleBar={false}
178
- onRefresh={() => {loadTopo()}}
179
- onSave={onSave}
180
- />
181
- </div>
182
- </Provider>
183
- </Loading>
184
- );
185
- }
186
-
187
-
188
- export default TopoDemo;
@@ -1,74 +0,0 @@
1
- import React, {useCallback, useEffect, useMemo} from 'react';
2
- import {Button} from '@alifd/next';
3
-
4
- // import {createTopo, Topology, TitleBar, SearchWidget} from '@riil-frontend/component-topology';
5
- import {createTopo, Topology} from '../../../src';
6
-
7
- import request from './request';
8
-
9
- const data = {
10
- config: {
11
- id: 2,
12
- name: "demo",
13
- showType: "auto",
14
- layout: "circular",
15
- },
16
- nodes: [
17
- {
18
- id: "1",
19
- name: "禁用关联资源",
20
- ciType: "ruijieSwitch",
21
- operation: "delete",
22
- data: {
23
- relateResource: false // 禁用节点关联资源,默认true
24
- }
25
- },
26
- {
27
- id: "2",
28
- name: "未禁用",
29
- ciType: "ruijieSwitch",
30
- operation: "delete",
31
- },
32
- ],
33
- };
34
-
35
- function TopoEditorDemo(props) {
36
-
37
- const topo = useMemo(() => {
38
- return createTopo({
39
- request,
40
- enableDefaultAlarmLoader: false,
41
- enableDefaultMetricLoader: false,
42
- editor: {
43
- enableRelateResource: false, // 禁用左侧资源链路页签、禁用手工添加的节点关联资源
44
- }
45
- });
46
- }, []);
47
-
48
- const Provider = topo.Provider;
49
-
50
- // 初始化
51
- useEffect(async () => {
52
- await topo.load(data, {
53
- mode: 'edit'
54
- });
55
- return () => {
56
- topo.exit();
57
- }
58
- }, []);
59
-
60
- return (
61
- <div style={{width: '100%', height: '500px', background: 'white'}}>
62
- <Provider>
63
- <Topology
64
- topo={topo}
65
- defaultEnterEditMode
66
- titleBar={false}
67
- />
68
- </Provider>
69
- </div>
70
- );
71
- }
72
-
73
-
74
- export default TopoEditorDemo;
@@ -1,106 +0,0 @@
1
- import React, {useCallback, useEffect, useMemo} from 'react';
2
- import {Button} from '@alifd/next';
3
-
4
- // import {createTopo, Topology, TitleBar, SearchWidget} from '@riil-frontend/component-topology';
5
- import {createTopo, Topology} from '../../../src';
6
-
7
- import request from './request';
8
-
9
- const data = {
10
- config: {
11
- id: 2,
12
- name: "编辑模式右键菜单",
13
- showType: "auto",
14
- layout: "circular",
15
- },
16
- nodes: [
17
- {
18
- id: "1",
19
- name: "1个菜单",
20
- ciType: "ruijieSwitch",
21
- operation: "delete"
22
- },
23
- {
24
- id: "2",
25
- name: "2个菜单",
26
- ciType: "ruijieSwitch",
27
- operation: "delete",
28
- data: {
29
- a: 1
30
- }
31
- },
32
- ],
33
- lines: [
34
- {
35
- id: "r647792732420440064",
36
- ciType: "networkLink",
37
- source: "1",
38
- target: "2",
39
- operation: "delete"
40
- },
41
- ],
42
- };
43
-
44
- function TopoEditorDemo(props) {
45
-
46
- const topo = useMemo(() => {
47
- return createTopo({
48
- request,
49
- enableDefaultAlarmLoader: false,
50
- enableDefaultMetricLoader: false,
51
- editor: {
52
- contextMenu: {
53
- node: {
54
- enable: true,
55
- items: [
56
- {
57
- label: '新建服务',
58
- id: 'biz.editor.XXX', // 加前缀避免冲突
59
- icon: '/img/topo/contextmenu/Topology_resources_menu_icon_overview.svg', // 可选参数
60
- onClick: (data) => {
61
- console.error('点击了右键菜单', data)
62
- }
63
- },
64
- {
65
- label: '新建服务2',
66
- id: 'biz.editor.XXX', // 加前缀避免冲突
67
- icon: '/img/topo/contextmenu/Topology_resources_menu_icon_overview.svg', // 可选参数
68
- visible: (data) => data.data?.a === 1,
69
- onClick: (data) => {
70
- console.error('点击了右键菜单', data)
71
- }
72
- },
73
- ]
74
- },
75
- }
76
- }
77
- });
78
- }, []);
79
-
80
- const Provider = topo.Provider;
81
-
82
- // 初始化
83
- useEffect(async () => {
84
- await topo.load(data, {
85
- mode: 'edit'
86
- });
87
- return () => {
88
- topo.exit();
89
- }
90
- }, []);
91
-
92
- return (
93
- <div style={{width: '100%', height: '500px', background: 'white'}}>
94
- <Provider>
95
- <Topology
96
- topo={topo}
97
- titleBar={false}
98
- defaultEnterEditMode
99
- />
100
- </Provider>
101
- </div>
102
- );
103
- }
104
-
105
-
106
- export default TopoEditorDemo;
@@ -1,106 +0,0 @@
1
- import React, {useCallback, useEffect, useMemo} from 'react';
2
- import {Button} from '@alifd/next';
3
-
4
- // import {createTopo, Topology, TitleBar, SearchWidget} from '@riil-frontend/component-topology';
5
- import {createTopo, Topology} from '../../../src';
6
-
7
- import request from './request';
8
-
9
- const data = {
10
- config: {
11
- id: 2,
12
- name: "demo",
13
- showType: "auto",
14
- layout: "circular",
15
- },
16
- nodes: [
17
- {
18
- id: "1",
19
- name: "1个菜单",
20
- ciType: "ruijieSwitch",
21
- operation: "delete"
22
- },
23
- {
24
- id: "2",
25
- name: "2个菜单",
26
- ciType: "ruijieSwitch",
27
- operation: "delete",
28
- data: {
29
- a: 1
30
- }
31
- },
32
- ],
33
- lines: [
34
- {
35
- id: "r647792732420440064",
36
- ciType: "networkLink",
37
- source: "1",
38
- target: "2",
39
- operation: "delete"
40
- },
41
- ],
42
- };
43
-
44
- function TopoEditorDemo(props) {
45
-
46
- const topo = useMemo(() => {
47
- return createTopo({
48
- request,
49
- enableDefaultAlarmLoader: false,
50
- enableDefaultMetricLoader: false,
51
- editor: {
52
- contextMenu: {
53
- node: {
54
- enable: true,
55
- items: [
56
- {
57
- label: '新建服务',
58
- id: 'editor.Biz.XXX', // 加前缀避免冲突
59
- icon: '/img/topo/contextmenu/Topology_resources_menu_icon_overview.svg', // 可选参数
60
- onClick: (data) => {
61
- console.error('点击了右键菜单', data)
62
- }
63
- },
64
- {
65
- label: '新建服务2',
66
- id: 'editor.Biz.XXX', // 加前缀避免冲突
67
- icon: '/img/topo/contextmenu/Topology_resources_menu_icon_overview.svg', // 可选参数
68
- visible: (data) => data.data?.a === 1,
69
- onClick: (data) => {
70
- console.error('点击了右键菜单', data)
71
- }
72
- },
73
- ]
74
- },
75
- }
76
- }
77
- });
78
- }, []);
79
-
80
- const Provider = topo.Provider;
81
-
82
- // 初始化
83
- useEffect(async () => {
84
- await topo.load(data, {
85
- mode: 'edit'
86
- });
87
- return () => {
88
- topo.exit();
89
- }
90
- }, []);
91
-
92
- return (
93
- <div style={{width: '100%', height: '500px', background: 'white'}}>
94
- <Provider>
95
- <Topology
96
- topo={topo}
97
- titleBar={false}
98
- defaultEnterEditMode
99
- />
100
- </Provider>
101
- </div>
102
- );
103
- }
104
-
105
-
106
- export default TopoEditorDemo;
@@ -1,140 +0,0 @@
1
- {
2
- "config": {
3
- "id": 1,
4
- "name": "拓扑1",
5
- "showType": "layers",
6
- "layout": "towardsouth"
7
- },
8
- "groups": [
9
- {
10
- "id": 20,
11
- "name": "业务层"
12
- },
13
- {
14
- "id": 19,
15
- "name": "工具层"
16
- },
17
- {
18
- "id": 18,
19
- "name": "数据层"
20
- },
21
- {
22
- "id": 999,
23
- "name": "9999"
24
- }
25
- ],
26
- "nodes": [
27
- {
28
- "id": "000000004e2f8f55",
29
- "name": "aaa(禁用了关联资源)",
30
- "ciType": "aaa",
31
- "groupId": 20,
32
- "operation": "delete",
33
- "attributes": {
34
- "ipAddress": "1.1.1.1",
35
- "assetState": "已报废"
36
- },
37
- "data": {
38
- "relateResource": false
39
- }
40
- },
41
- {
42
- "id": "000000004e2f8f51",
43
- "name": "HuiJu166.2_20001",
44
- "ciType": "ruijieSwitch",
45
- "attributes": [
46
- {
47
- "code": "ipAddress",
48
- "name": "IP地址",
49
- "tips": true,
50
- "tags": true,
51
- "value": "172.17.160.114"
52
- },
53
- {
54
- "code": "macAddress",
55
- "name": "Mac地址",
56
- "tips": true,
57
- "tags": false,
58
- "value": "00-74-9C-8F-F3-7D"
59
- }
60
- ],
61
- "groupId": 19,
62
- "operation": "delete"
63
- },
64
- {
65
- "id": "000000004e2f8f59",
66
- "name": "HuiJu166.2_20003",
67
- "ciType": "ruijieSwitch",
68
- "ciName": "ruijieSwitch",
69
- "operation": "delete",
70
- "attributes": [
71
- {
72
- "code": "ipAddress",
73
- "name": "IP地址",
74
- "tips": true,
75
- "tags": true,
76
- "value": "172.17.160.114"
77
- },
78
- {
79
- "code": "macAddress",
80
- "name": "Mac地址",
81
- "tips": true,
82
- "tags": false,
83
- "value": "00-74-9C-8F-F3-7D"
84
- }
85
- ],
86
- "groupId": 18,
87
- "groupTag": null
88
- },
89
- {
90
- "id": "000000004e2f28e7",
91
- "name": "HuiJu166.2",
92
- "ciType": "ruijieSwitch",
93
- "ciName": "ruijieSwitch",
94
- "operation": null,
95
- "attributes": [
96
- {
97
- "code": "ipAddress",
98
- "name": "IP地址",
99
- "tips": true,
100
- "tags": true,
101
- "value": "172.17.166.2"
102
- },
103
- {
104
- "code": "macAddress",
105
- "name": "Mac地址",
106
- "tips": true,
107
- "tags": false,
108
- "value": "00-74-9C-8F-F3-7D"
109
- }
110
- ],
111
- "groupId": 18,
112
- "groupTag": null
113
- }
114
- ],
115
- "lines": [
116
- {
117
- "id": "r647792732420440064",
118
- "name": "业务连线1",
119
- "source": "000000004e2f8f51",
120
- "target": "000000004e2f28e7",
121
- "operation": "delete"
122
- },
123
- {
124
- "id": "r647792734152687616",
125
- "ciType": "networkLink",
126
- "name": "链路111",
127
- "source": "000000004e2f8f51",
128
- "target": "000000004e2f8f55",
129
- "operation": "delete"
130
- },
131
- {
132
- "id": "r647792734572118016",
133
- "ciType": "networkLink",
134
- "name": "链路111",
135
- "source": "000000004e2f8f51",
136
- "target": "000000004e2f8f59",
137
- "operation": "delete"
138
- }
139
- ]
140
- }