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

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 (135) hide show
  1. package/CHANGELOG.md +5 -0
  2. package/build/1.js +2 -2
  3. package/build/2.js +1 -1
  4. package/build/index.css +1 -1
  5. package/build/index.js +37 -37
  6. package/demo/1/345/237/272/346/234/254/usage.md +4 -0
  7. package/demo/1/345/237/272/346/234/254//345/221/212/350/255/246/346/216/250/351/200/201.md +1 -1
  8. 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
  9. 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
  10. package/demo/2/347/274/226/350/276/221/346/250/241/345/274/217//345/210/206/345/261/202/346/267/273/345/212/240/350/265/204/346/272/220.md +11 -0
  11. package/demo/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 +11 -0
  12. 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
  13. 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
  14. 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
  15. package/demo/2/347/274/226/350/276/221/346/250/241/345/274/217//350/207/252/345/256/232/344/271/211/345/210/206/345/261/202/346/267/273/345/212/240/350/265/204/346/272/220.md +11 -0
  16. package/demo/{2 → 3}/346/213/223/346/211/221/344/270/255/345/277/203/js/TopoFull.jsx +1 -2
  17. package/demo/{2 → 3}/346/213/223/346/211/221/344/270/255/345/277/203/js/TopoViewer.jsx +0 -0
  18. 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
  19. 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
  20. 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
  21. package/demo/3/{344/270/232/345/212/241/347/233/221/346/216/247/346/213/223/346/211/221/src/mock/topo/v1/api/alarm.json → 346/213/223/346/211/221/344/270/255/345/277/203/js/mock/topo/v1/api/alarm} +0 -0
  22. package/demo/3/346/213/223/346/211/221/344/270/255/345/277/203/js/mock/topo/v1/api/alarm.json +0 -0
  23. 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
  24. 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
  25. 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
  26. 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
  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/auth/permission/2 +0 -0
  28. 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
  29. 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
  30. 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
  31. 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
  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/shape.json +0 -0
  33. 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
  34. 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
  35. 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
  36. 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
  37. 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
  38. 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
  39. package/demo/3/346/213/223/346/211/221/344/270/255/345/277/203/js/request.js +7 -0
  40. 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
  41. 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
  42. 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
  43. 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
  44. 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
  45. 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
  46. package/demo/API/API.md +32 -13
  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}/cmdb/v1/api/authority/ci/commonQuery +0 -0
  48. 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
  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}/model/v1/api/modelTree +0 -0
  50. 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
  51. 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
  52. 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
  53. 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
  54. 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
  55. 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
  56. 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
  57. 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
  58. 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 → demo-mock/basic/topo/v1/api/config} +0 -0
  59. 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
  60. 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
  61. 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
  62. 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
  63. package/{demo/3/344/270/232/345/212/241/347/233/221/346/216/247/346/213/223/346/211/221/src/mock/topo/v1/api/alarm → demo-mock/basic/topo/v1/api/structure/1} +0 -0
  64. 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
  65. 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
  66. 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
  67. 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
  68. 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
  69. 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
  70. 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
  71. package/es/common/components/ResourceTable/ResourceTable.js +31 -0
  72. package/es/common/components/ResourceTable/ResourceTable.module.scss +9 -0
  73. package/es/components/ResourceList/ResourceSelect.js +200 -0
  74. package/es/components/ResourceList/ResourceSelectConnect.js +29 -0
  75. package/es/components/ResourceList/index.js +2 -203
  76. package/es/components/ResourceSelect/DefaultResourceSelectDrawer.js +5 -0
  77. package/es/components/{TopoView/settings/GroupNodeList/SelectResource → ResourceSelect/ResourceSelect}/index.js +0 -0
  78. package/es/components/{TopoView/settings/GroupNodeList/SelectResource → ResourceSelect/ResourceSelect}/index.module.scss +0 -0
  79. package/es/components/ResourceSelect/ResourceSelectDrawer.js +51 -0
  80. package/es/components/TopoView/settings/GroupNodeList/ResourceList.js +0 -23
  81. package/es/components/TopoView/settings/GroupNodeList/ResourceSelectButton.js +37 -0
  82. package/es/components/TopoView/settings/LayerSettingsForm.js +11 -5
  83. package/es/components/TopoView/settings/Settings.js +13 -5
  84. package/es/components/TopoView/topoView.js +2 -1
  85. package/es/core/models/TopoApp.js +193 -98
  86. package/es/core/models/TopoGraphView.js +12 -7
  87. package/es/core/models/cache/CiTyeCache.js +6 -4
  88. package/es/models/topoBizMod.js +6 -2
  89. package/es/models/topoMod.js +27 -13
  90. package/es/style.js +0 -2
  91. package/es/utils/htElementUtils.js +18 -1
  92. package/es/utils/topoData.js +2 -0
  93. package/lib/common/components/ResourceTable/ResourceTable.js +48 -0
  94. package/lib/common/components/ResourceTable/ResourceTable.module.scss +9 -0
  95. package/lib/components/ResourceList/ResourceSelect.js +228 -0
  96. package/lib/components/ResourceList/ResourceSelectConnect.js +47 -0
  97. package/lib/components/ResourceList/index.js +2 -222
  98. package/lib/components/ResourceSelect/DefaultResourceSelectDrawer.js +16 -0
  99. package/lib/components/{TopoView/settings/GroupNodeList/SelectResource → ResourceSelect/ResourceSelect}/index.js +0 -0
  100. package/lib/components/{TopoView/settings/GroupNodeList/SelectResource → ResourceSelect/ResourceSelect}/index.module.scss +0 -0
  101. package/lib/components/ResourceSelect/ResourceSelectDrawer.js +68 -0
  102. package/lib/components/TopoView/settings/GroupNodeList/ResourceList.js +0 -25
  103. package/lib/components/TopoView/settings/GroupNodeList/ResourceSelectButton.js +52 -0
  104. package/lib/components/TopoView/settings/LayerSettingsForm.js +12 -8
  105. package/lib/components/TopoView/settings/Settings.js +13 -5
  106. package/lib/components/TopoView/topoView.js +2 -1
  107. package/lib/core/models/TopoApp.js +192 -97
  108. package/lib/core/models/TopoGraphView.js +12 -7
  109. package/lib/core/models/cache/CiTyeCache.js +6 -4
  110. package/lib/models/topoBizMod.js +6 -2
  111. package/lib/models/topoMod.js +27 -13
  112. package/lib/style.js +0 -2
  113. package/lib/utils/htElementUtils.js +20 -1
  114. package/lib/utils/topoData.js +2 -0
  115. package/package.json +3 -3
  116. package/demo/1/345/237/272/346/234/254//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 +0 -11
  117. package/demo/2/346/213/223/346/211/221/344/270/255/345/277/203/js/request.js +0 -7
  118. 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
  119. 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
  120. 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
  121. 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
  122. 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
  123. 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
  124. 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
  125. 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
  126. 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
  127. 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
  128. 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
  129. 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
  130. 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
  131. 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
  132. 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
  133. 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
  134. 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
  135. 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
@@ -357,32 +357,44 @@ function _default(topoApp) {
357
357
 
358
358
  case 15:
359
359
  if (!data) {
360
- _context6.next = 22;
360
+ _context6.next = 26;
361
361
  break;
362
362
  }
363
363
 
364
- _context6.next = 18;
364
+ if (!topoId) {
365
+ _context6.next = 23;
366
+ break;
367
+ }
368
+
369
+ _context6.next = 19;
365
370
  return topoApp.options.loadData(topoId);
366
371
 
367
- case 18:
372
+ case 19:
368
373
  topoConfig = _context6.sent;
369
374
  result = (0, _extends2["default"])({}, data, {
370
375
  global: topoConfig.global,
371
376
  serialize: topoConfig.serialize
372
377
  });
373
- _context6.next = 25;
378
+ _context6.next = 24;
374
379
  break;
375
380
 
376
- case 22:
377
- _context6.next = 24;
378
- return topoApp.options.loadData(topoId);
381
+ case 23:
382
+ result = (0, _extends2["default"])({}, data);
379
383
 
380
384
  case 24:
385
+ _context6.next = 29;
386
+ break;
387
+
388
+ case 26:
389
+ _context6.next = 28;
390
+ return topoApp.options.loadData(topoId);
391
+
392
+ case 28:
381
393
  result = _context6.sent;
382
394
 
383
- case 25:
395
+ case 29:
384
396
  if (result) {
385
- _context6.next = 29;
397
+ _context6.next = 33;
386
398
  break;
387
399
  }
388
400
 
@@ -394,13 +406,13 @@ function _default(topoApp) {
394
406
  topoApp.options.onLoad();
395
407
  return _context6.abrupt("return");
396
408
 
397
- case 29:
409
+ case 33:
398
410
  _rlog["default"].debug('topoMod.initTopoData 获取拓扑数据', topoId, linkTo, result);
399
411
 
400
- _context6.next = 32;
412
+ _context6.next = 36;
401
413
  return Promise.all([topoApp.ciTyeCache.getCiTypeMap((0, _topoData.getCiTypes)(result)), dispatch.iconManage.getIcons()]);
402
414
 
403
- case 32:
415
+ case 36:
404
416
  _yield$Promise$all = _context6.sent;
405
417
  ciTypeMap = _yield$Promise$all[0];
406
418
  customIcons = _yield$Promise$all[1];
@@ -442,7 +454,7 @@ function _default(topoApp) {
442
454
 
443
455
  topoApp.options.onLoad();
444
456
 
445
- case 46:
457
+ case 50:
446
458
  case "end":
447
459
  return _context6.stop();
448
460
  }
@@ -556,6 +568,8 @@ function _default(topoApp) {
556
568
 
557
569
  /**
558
570
  * 查询最近一个月的告警
571
+ *
572
+ * TODO 迁移
559
573
  */
560
574
  getAlarmById: function getAlarmById(conditions, state) {
561
575
  var _this8 = this;
package/lib/style.js CHANGED
@@ -36,7 +36,5 @@ require('@alifd/next/lib/radio/style');
36
36
  require('@alifd/next/lib/collapse/style');
37
37
  require('@alifd/next/lib/list/style');
38
38
  require('@alifd/next/lib/avatar/style');
39
- require('@alifd/next/lib/cascader-select/style');
40
- require('@riil-frontend/component-no-data-page/lib/style');
41
39
  require('@riil-frontend/component-topology-utils/lib/style');
42
40
  require('./index.scss');
@@ -4,6 +4,7 @@ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefau
4
4
 
5
5
  exports.__esModule = true;
6
6
  exports.getElements = getElements;
7
+ exports.getGroups = getGroups;
7
8
  exports.getNodes = getNodes;
8
9
  exports.getEdges = getEdges;
9
10
  exports.getGroupNodes = getGroupNodes;
@@ -32,10 +33,28 @@ function getElementData(element) {
32
33
  }
33
34
 
34
35
  function getElements(dataModel) {
35
- console.error(111, dataModel.getDatas().getArray());
36
+ // console.error(111, dataModel.getDatas().getArray())
36
37
  return dataModel.getDatas().getArray();
37
38
  }
38
39
 
40
+ function getGroups(dataModel) {
41
+ return getElements(dataModel).filter(function (element) {
42
+ return element.getClassName() === 'ht.Grid' || element.getClassName() === 'ht.Group';
43
+ }).filter(function (element) {
44
+ return !!element.getTag();
45
+ }).map(function (element) {
46
+ var host = element.getHost();
47
+ return (0, _extends2["default"])({
48
+ name: element.getStyleMap().label
49
+ }, element.getAttrObject(), {
50
+ id: element.getTag(),
51
+ tag: element.getId(),
52
+ image: element.getImage(),
53
+ groupTag: host ? host.getId() : undefined
54
+ });
55
+ });
56
+ }
57
+
39
58
  function getNodes(dataModel) {
40
59
  return getElements(dataModel).filter(function (element) {
41
60
  return element.getClassName() === 'ht.Node';
@@ -587,6 +587,8 @@ var combTopoData = function combTopoData(_ref3) {
587
587
  // ci类型集合
588
588
  ciTypesDoc: ciTypesDoc,
589
589
  // 每种ci含有的ci
590
+ ciTypeMap: ciTypeMap,
591
+ // ci类型模型map
590
592
  metrics: metrics,
591
593
  // 所有指标
592
594
  metricsDoc: metricsDoc,
package/package.json CHANGED
@@ -1,13 +1,13 @@
1
1
  {
2
2
  "name": "@riil-frontend/component-topology",
3
- "version": "2.1.5-dev.3",
3
+ "version": "2.1.9",
4
4
  "description": "拓扑",
5
5
  "files": [
6
6
  "demo/",
7
+ "demo-mock/",
7
8
  "lib/",
8
9
  "es/",
9
10
  "build/",
10
- "3rd/",
11
11
  "public/"
12
12
  ],
13
13
  "main": "lib/index.js",
@@ -96,5 +96,5 @@
96
96
  "access": "public"
97
97
  },
98
98
  "license": "MIT",
99
- "homepage": "https://unpkg.com/@riil-frontend/component-topology@2.1.5-dev.3/build/index.html"
99
+ "homepage": "https://unpkg.com/@riil-frontend/component-topology@2.1.9/build/index.html"
100
100
  }
@@ -1,11 +0,0 @@
1
- ---
2
- title: 新建进入编辑模式
3
- order: 3
4
- ---
5
-
6
- <br/>
7
-
8
-
9
- ```jsx
10
- <DemoCode src="../3业务监控拓扑/src/CreateTopo.jsx" />
11
- ```
@@ -1,7 +0,0 @@
1
- import createMockRequest from "../../../demo-src/createMockRequest";
2
-
3
- const request = createMockRequest({
4
- baseURL: '/demo/2拓扑中心/js/mock'
5
- });
6
-
7
- export default request;
@@ -1,228 +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} from '../../../src';
6
-
7
- import request from './request';
8
- import {topoList, getData} from "./data/appInstall";
9
- import createTopoData from './data/appInstall/data1';
10
-
11
- function TopoDemo(props) {
12
-
13
- const [topoId, setTopoId] = useState('1');
14
- const [loading, setLoading] = useState(false);
15
-
16
- const topo = useMemo(() => {
17
- return createTopo({
18
- request,
19
- enableDefaultAlarmLoader: false, // 关闭内置告警推送
20
- enableDefaultMetricLoader: false, // 关闭内置指标推送
21
- ciTypes: {
22
- aaa: {
23
- tag: [
24
- { code: 'cpuRate', type: 'metric' },
25
- { code: 'memRate', type: 'metric' },
26
- ],
27
- tip: [
28
- { code: 'ipAddress', type: 'attribute' },
29
- { code: 'macAddress', type: 'attribute' },
30
- { code: 'assetState', type: 'attribute' },
31
- ],
32
- },
33
- },
34
- icons: [
35
- {
36
- id: 'ciType.aaa', // 如果以ciType.开头,节点无图标时默认按ciType匹配
37
- name: 'ciType.aaa',
38
- url: '../public/icons/c_b_server.svg', // 图片地址
39
- jsonUrl: null, // ht 拓扑使用
40
- }
41
- ],
42
- editor: {
43
- enableRelateResource: false, // 禁用左侧资源链路页签、禁用手工添加的节点关联资源
44
- }
45
- });
46
- }, []);
47
-
48
- const Provider = topo.Provider;
49
-
50
- // API:
51
-
52
- // 加载拓扑图数据
53
- const loadTopo = async (id) => {
54
- setLoading(true);
55
- // TODO 查询拓扑图,转换格式
56
- const data = await getData(id);
57
- await topo.load(data);
58
- setLoading(false)
59
- };
60
-
61
- // 初始化
62
- useEffect(async () => {
63
- await loadTopo(topoId);
64
- return () => {
65
- topo.exit();
66
- }
67
- }, []);
68
-
69
- // 创建拓扑图进入编辑模式
70
- const createAndEnterEdit = async () => {
71
- setLoading(true);
72
- // TODO 转换格式
73
- const data = createTopoData;
74
- await topo.load(data, {
75
- mode: 'edit'
76
- });
77
- setLoading(false)
78
- };
79
-
80
- // 进入编辑模式
81
- const enterEditMode = useCallback(async () => {
82
- setLoading(true);
83
- await topo.enterEditMode();
84
- setLoading(false)
85
- }, []);
86
-
87
- const renderViewerTitleBar = () => {
88
- const onSelect = async (id) => {
89
- setTopoId(id);
90
- await loadTopo(id);
91
- };
92
- return (
93
- <div style={{display: 'flex', alignItems: 'center'}}>
94
- <div style={{flex: 1}}>
95
- <Radio.Group dataSource={topoList} shape="button" size="small" value={topoId} onChange={onSelect}/> &nbsp; &nbsp;
96
- <Button type="primary" onClick={createAndEnterEdit} title="新建并进入编辑模式">新建</Button>
97
- </div>
98
- <SearchWidget topo={topo}/> &nbsp; &nbsp;
99
- <Button type="primary" onClick={enterEditMode}>编辑</Button> &nbsp; &nbsp;
100
- <Button onClick={() => { topo.exportImage() }}>导出拓扑图</Button>
101
- </div>
102
- )
103
- };
104
-
105
-
106
- // 退出编辑模式
107
- const onExitEditMode = useCallback(async () => {
108
- setLoading(true);
109
-
110
- await topo.exitEditMode();
111
- // 重新加载拓扑
112
- await loadTopo(topoId);
113
-
114
- setLoading(false)
115
- }, [topoId]);
116
-
117
- // 触发保存事件
118
- const onTriggerSaveEvent = useCallback(async () => {
119
- await topo.triggerSaveEvent()
120
- }, []);
121
- // 保存
122
- const onSave = useCallback(async (ctx) => {
123
- setLoading(true);
124
-
125
- const {saveConfig} = ctx;
126
- // 保存节点位置、样式、配置
127
- await saveConfig();
128
-
129
- // 获取拓扑图 业务节点和连线、自定义节点和连线
130
- const data = topo.getData();
131
- console.error('获取拓扑图数据', data);
132
- // TODO 保存业务信息,
133
-
134
- setLoading(false)
135
- }, [topoId]);
136
-
137
- // 更新分层数据
138
- const updateData = async () => {
139
- await topo.updateData({
140
- groups: [
141
- {
142
- "id": 20,
143
- "name": "业务层"
144
- },
145
- {
146
- "id": 19,
147
- "name": "工具层"
148
- },
149
- ],
150
- nodes: [
151
- {
152
- "id": "000000004e2f8f55",
153
- "name": "HuiJu166.2_20002",
154
- "ciType": "ruijieSwitch",
155
- "groupId": 20,
156
- "operation": "delete"
157
- },
158
- ],
159
- lines: [],
160
- })
161
- };
162
-
163
- const renderEditorTitleBar = () => {
164
- return (
165
- <div style={{display: 'flex', alignItems: 'center'}}>
166
- <div style={{flex: 1}}>拓扑图标题</div>
167
- <Button onClick={updateData}>修改分层数据</Button> &nbsp; &nbsp;
168
- <Button type="primary" onClick={onTriggerSaveEvent}>保存</Button> &nbsp; &nbsp;
169
- <Button onClick={onExitEditMode}>退出</Button>
170
- </div>
171
- )
172
- };
173
-
174
- // 编辑器参数
175
- const editorProps = {
176
- // 选择资源
177
- layerSelectResource: {
178
- ciTypes: [], // 类型过滤
179
- getTableData: async (params) => {
180
- const {
181
- current = 1,
182
- pageSize = 20,
183
- sortBy = 'displayName',
184
- sortOrder = 'asc',
185
- like,
186
- typeCode,
187
- } = params;
188
- // 从拓扑图查询已有资源列表
189
- // TODO 查询数据
190
- return {
191
- dataSource: [],
192
- total: 100,
193
- current: 1,
194
- pageSize,
195
- }
196
- },
197
- onOk: async (selected) => {
198
- // 查询、合并数据、全量更新拓扑图数据
199
-
200
- }
201
- }
202
- };
203
-
204
- return (
205
- <Loading visible={loading} style={{width: '100%'}}>
206
- <Provider>
207
- <TitleBar
208
- topo={topo}
209
- render={({isEditMode}) => isEditMode ? renderEditorTitleBar() : renderViewerTitleBar()}
210
- />
211
- <br/>
212
-
213
- <div style={{width: '100%', height: '500px', background: 'white'}}>
214
- <Topology
215
- topo={topo}
216
- titleBar={false}
217
- editorProps={editorProps}
218
- onRefresh={() => {loadTopo(topoId)}}
219
- onSave={onSave}
220
- onRemoveElements={() => {}}
221
- />
222
- </div>
223
- </Provider>
224
- </Loading>
225
- );
226
- }
227
-
228
- export default TopoDemo;
@@ -1,88 +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
- import topoData from './data/appInstall/data2';
9
-
10
- function TopoEditorDemo(props) {
11
-
12
- const topo = useMemo(() => {
13
- return createTopo({
14
- request,
15
- enableDefaultAlarmLoader: false,
16
- enableDefaultMetricLoader: false,
17
- icons: [{
18
- id: 'biz.1', // 如果以ciType.开头,节点无图标时默认按ciType匹配
19
- name: '图标1',
20
- url: 'public/icons/c_b_server.svg', // 图片地址
21
- jsonUrl: null, // ht 拓扑使用
22
- }]
23
- });
24
- }, []);
25
-
26
- const Provider = topo.Provider;
27
-
28
- // API:
29
-
30
- // 创建拓扑图进入编辑模式
31
- const createAndEnterEdit = async () => {
32
- // TODO 转换格式
33
- const data = {...topoData};
34
- await topo.load(data, {
35
- mode: 'edit'
36
- });
37
- };
38
-
39
- // 初始化
40
- useEffect(async () => {
41
- await createAndEnterEdit();
42
- return () => {
43
- topo.exit();
44
- }
45
- }, []);
46
-
47
- // 保存
48
- const onSave = useCallback(async (ctx) => {
49
- const {data, saveConfig} = ctx;
50
- const {id, config, global, serialize} = data;
51
- // 保存
52
- await saveConfig();
53
- }, []);
54
-
55
- // 退出编辑模式
56
- const onExitEditMode = useCallback(async () => {
57
- await topo.exitEditMode();
58
- // 重新加载拓扑
59
- const data = {...topoData};
60
- await topo.load(data);
61
- }, []);
62
-
63
- return (
64
- <div style={{width: '100%'}}>
65
- <div style={{display: 'flex', alignItems: 'center', paddingBottom: 16}}>
66
- <div style={{flex: 1}}>
67
- <Button type="primary" onClick={createAndEnterEdit} title="新建并进入编辑模式">新建</Button> &nbsp; &nbsp;
68
- </div>
69
- <Button type="primary" onClick={() => { topo.triggerSaveEvent() }}>保存</Button> &nbsp; &nbsp;
70
- <Button onClick={onExitEditMode}>退出</Button>
71
- </div>
72
-
73
- <div style={{width: '100%', height: '500px', background: 'white'}}>
74
- <Provider>
75
- <Topology
76
- topo={topo}
77
- defaultEnterEditMode
78
- titleBar={false}
79
- onSave={onSave}
80
- />
81
- </Provider>
82
- </div>
83
- </div>
84
- );
85
- }
86
-
87
-
88
- export default TopoEditorDemo;
@@ -1,110 +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, ViewerTools} 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: "111",
20
- ciType: "aaa",
21
- operation: "delete"
22
- },
23
- {
24
- id: "2",
25
- name: "2222",
26
- ciType: "ruijieSwitch",
27
- operation: "delete",
28
- },
29
- ],
30
- };
31
-
32
- function TopoDemo(props) {
33
-
34
- const topo = useMemo(() => {
35
- return createTopo({
36
- request,
37
- enableDefaultAlarmLoader: false,
38
- enableDefaultMetricLoader: false,
39
- });
40
- }, []);
41
-
42
- const Provider = topo.Provider;
43
-
44
- // 初始化
45
- useEffect(async () => {
46
- await topo.load(data);
47
- await topo.loadAlarm([
48
- {
49
- id:'1',
50
- level: 1,
51
- info:'告警信息'
52
- }
53
- ]);
54
- return () => {
55
- topo.exit();
56
- }
57
- }, []);
58
-
59
- const loadAlarms1 = () => {
60
- topo.loadAlarm([
61
- {
62
- id: '1',
63
- level: 1,
64
- info:'告警信息'
65
- },
66
- {
67
- id: '2',
68
- level: 3,
69
- info:'告警信息'
70
- }
71
- ]);
72
- };
73
-
74
- const loadAlarms2 = () => {
75
- topo.loadAlarm([
76
- {
77
- id:'1',
78
- level: 1,
79
- info:'告警信息'
80
- }
81
- ]);
82
- };
83
-
84
- const loadAlarms3 = () => {
85
- topo.loadAlarm([
86
- ]);
87
- };
88
-
89
- return (
90
- <div style={{width: '100%', height: '500px', background: 'white'}}>
91
- <Provider>
92
- <div style={{display: 'flex', alignItems: 'center'}}>
93
- <div style={{flex: 1}}>
94
- <Button onClick={loadAlarms1}>加载告警1</Button>
95
- <Button onClick={loadAlarms2}>加载告警2</Button>
96
- <Button onClick={loadAlarms3}>清空告警</Button>
97
- </div>
98
- <ViewerTools topo={topo} showEditButton={false}/>
99
- </div>
100
- <Topology
101
- topo={topo}
102
- titleBar={false}
103
- />
104
- </Provider>
105
- </div>
106
- );
107
- }
108
-
109
-
110
- export default TopoDemo;