@riil-frontend/component-topology 2.8.1 → 2.10.0-alpha-4

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 (67) hide show
  1. package/build/1.js +2 -2
  2. package/build/2.js +1 -1
  3. package/build/index.css +1 -1
  4. package/build/index.js +31 -31
  5. package/es/components/LayoutDirectionSelect/Item.js +11 -0
  6. package/es/components/LayoutDirectionSelect/Item.module.scss +8 -0
  7. package/es/components/LayoutDirectionSelect/LayoutDirectionSelect.js +48 -0
  8. package/es/components/LayoutDirectionSelect/LayoutDirectionSelect.module.scss +5 -0
  9. package/es/components/LayoutDirectionSelect/index.js +2 -0
  10. package/es/components/LayoutSelect/LayoutSelect.js +46 -0
  11. package/es/components/LayoutSelect/LayoutSelect.module.scss +4 -0
  12. package/es/components/LayoutSelect/README.md +1 -0
  13. package/es/components/LayoutSelect/index.js +2 -0
  14. package/es/components/TagImageSelect/index.js +34 -0
  15. package/es/components/{TemplateGroup → TagImageSelect}/index.module.scss +0 -0
  16. package/es/components/TagSelect/index.js +2 -2
  17. package/es/components/TagSelect/index.scss +0 -4
  18. package/es/components/TemplateButton/Icon.js +2 -1
  19. package/es/components/TemplateButton/assets/index.js +1 -5
  20. package/es/components/TemplateButton/index.js +9 -26
  21. package/es/components/TemplateButton/index.module.scss +3 -3
  22. package/es/core/editor/components/settings/common/LayoutSettings.js +1 -1
  23. package/es/core/models/cache/CiTyeCache.js +1 -1
  24. package/es/core/models/utils/linkUtils.js +2 -2
  25. package/es/core/viewer/components/titlebar/ViewerTools.js +5 -1
  26. package/es/core/viewer/components/titlebar/useSetDefaultTopo.js +30 -0
  27. package/es/models/topoCreateMod.js +44 -18
  28. package/es/models/topoMod.js +3 -2
  29. package/es/style.js +1 -1
  30. package/es/utils/tree.js +5 -0
  31. package/lib/components/LayoutDirectionSelect/Item.js +25 -0
  32. package/lib/components/LayoutDirectionSelect/Item.module.scss +8 -0
  33. package/lib/components/LayoutDirectionSelect/LayoutDirectionSelect.js +64 -0
  34. package/lib/components/LayoutDirectionSelect/LayoutDirectionSelect.module.scss +5 -0
  35. package/lib/components/LayoutDirectionSelect/index.js +11 -0
  36. package/lib/components/LayoutSelect/LayoutSelect.js +61 -0
  37. package/lib/components/LayoutSelect/LayoutSelect.module.scss +4 -0
  38. package/lib/components/LayoutSelect/README.md +1 -0
  39. package/lib/components/LayoutSelect/index.js +11 -0
  40. package/lib/components/TagImageSelect/index.js +46 -0
  41. package/{es/components/TemplateSelect → lib/components/TagImageSelect}/index.module.scss +0 -0
  42. package/lib/components/TagSelect/index.js +2 -2
  43. package/lib/components/TagSelect/index.scss +0 -4
  44. package/lib/components/TemplateButton/Icon.js +2 -1
  45. package/lib/components/TemplateButton/assets/index.js +0 -6
  46. package/lib/components/TemplateButton/index.js +9 -27
  47. package/lib/components/TemplateButton/index.module.scss +3 -3
  48. package/lib/core/editor/components/settings/common/LayoutSettings.js +2 -2
  49. package/lib/core/models/cache/CiTyeCache.js +1 -1
  50. package/lib/core/models/utils/linkUtils.js +2 -2
  51. package/lib/core/viewer/components/titlebar/ViewerTools.js +6 -1
  52. package/lib/core/viewer/components/titlebar/useSetDefaultTopo.js +40 -0
  53. package/lib/models/topoCreateMod.js +44 -18
  54. package/lib/models/topoMod.js +3 -2
  55. package/lib/style.js +1 -1
  56. package/lib/utils/tree.js +5 -0
  57. package/package.json +6 -5
  58. package/es/components/TemplateButton/assets/topo_tpl_blank.svg +0 -9
  59. package/es/components/TemplateButton/assets/topo_tpl_region.svg +0 -14
  60. package/es/components/TemplateGroup/index.js +0 -28
  61. package/es/components/TemplateSelect/index.js +0 -54
  62. package/lib/components/TemplateButton/assets/topo_tpl_blank.svg +0 -9
  63. package/lib/components/TemplateButton/assets/topo_tpl_region.svg +0 -14
  64. package/lib/components/TemplateGroup/index.js +0 -40
  65. package/lib/components/TemplateGroup/index.module.scss +0 -3
  66. package/lib/components/TemplateSelect/index.js +0 -69
  67. package/lib/components/TemplateSelect/index.module.scss +0 -3
@@ -0,0 +1,64 @@
1
+ "use strict";
2
+
3
+ var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard");
4
+
5
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
6
+
7
+ exports.__esModule = true;
8
+ exports["default"] = LayoutDirectionSelect;
9
+
10
+ var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
11
+
12
+ var _react = _interopRequireWildcard(require("react"));
13
+
14
+ var _TagImageSelect = _interopRequireDefault(require("../TagImageSelect"));
15
+
16
+ var _LayoutDirectionSelectModule = _interopRequireDefault(require("./LayoutDirectionSelect.module.scss"));
17
+
18
+ var _Item = _interopRequireDefault(require("./Item"));
19
+
20
+ var LAYOUTS = [{
21
+ id: 'towardsouth',
22
+ name: '自上向下',
23
+ icon: 'layout_toward'
24
+ }, // {
25
+ // id: 'towardnorth',
26
+ // name: '自下向上',
27
+ // icon: 'layout_toward',
28
+ // rotate: 180,
29
+ // },
30
+ {
31
+ id: 'towardeast',
32
+ name: '自左向右',
33
+ icon: 'layout_toward',
34
+ rotate: 270
35
+ } // {
36
+ // id: 'towardwest',
37
+ // name: '自右向左',
38
+ // icon: 'layout_toward',
39
+ // rotate: 90,
40
+ // },
41
+ ];
42
+
43
+ function LayoutDirectionSelect(props) {
44
+ var value = props.value,
45
+ onSelect = props.onSelect;
46
+ var layoutOptions = LAYOUTS.map(function (item) {
47
+ return (0, _extends2["default"])({}, item, {
48
+ selected: value === item.id,
49
+ onSelect: onSelect
50
+ });
51
+ });
52
+ return /*#__PURE__*/_react["default"].createElement(_TagImageSelect["default"], {
53
+ dataSource: layoutOptions,
54
+ boxProps: {
55
+ spacing: 12
56
+ },
57
+ tagProps: {
58
+ className: _LayoutDirectionSelectModule["default"].layoutSelectItem
59
+ },
60
+ ItemComponent: _Item["default"]
61
+ });
62
+ }
63
+
64
+ ;
@@ -0,0 +1,5 @@
1
+ .layoutSelectItem {
2
+ width: 120px;
3
+ height: 136px !important;
4
+ padding-top: 16px;
5
+ }
@@ -0,0 +1,11 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+
5
+ exports.__esModule = true;
6
+ exports["default"] = void 0;
7
+
8
+ var _LayoutDirectionSelect = _interopRequireDefault(require("./LayoutDirectionSelect"));
9
+
10
+ var _default = _LayoutDirectionSelect["default"];
11
+ exports["default"] = _default;
@@ -0,0 +1,61 @@
1
+ "use strict";
2
+
3
+ var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard");
4
+
5
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
6
+
7
+ exports.__esModule = true;
8
+ exports["default"] = LayoutSelect;
9
+
10
+ var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
11
+
12
+ var _react = _interopRequireWildcard(require("react"));
13
+
14
+ var _TagImageSelect = _interopRequireDefault(require("../TagImageSelect"));
15
+
16
+ var _LayoutSelectModule = _interopRequireDefault(require("./LayoutSelect.module.scss"));
17
+
18
+ var LAYOUTS = [{
19
+ id: 'towardsouth',
20
+ name: '自上向下',
21
+ icon: 'layout_toward'
22
+ }, // {
23
+ // id: 'towardnorth',
24
+ // name: '自下向上',
25
+ // icon: 'layout_toward',
26
+ // rotate: 180,
27
+ // },
28
+ {
29
+ id: 'towardeast',
30
+ name: '自左向右',
31
+ icon: 'layout_toward',
32
+ rotate: 270
33
+ } // {
34
+ // id: 'towardwest',
35
+ // name: '自右向左',
36
+ // icon: 'layout_toward',
37
+ // rotate: 90,
38
+ // },
39
+ ];
40
+
41
+ function LayoutSelect(props) {
42
+ var value = props.value,
43
+ onSelect = props.onSelect;
44
+ var layoutOptions = LAYOUTS.map(function (item) {
45
+ return (0, _extends2["default"])({}, item, {
46
+ selected: value === item.id,
47
+ onSelect: onSelect
48
+ });
49
+ });
50
+ return /*#__PURE__*/_react["default"].createElement(_TagImageSelect["default"], {
51
+ data: layoutOptions,
52
+ boxProps: {
53
+ spacing: 12
54
+ },
55
+ tagProps: {
56
+ className: _LayoutSelectModule["default"].layoutSelectItem
57
+ }
58
+ });
59
+ }
60
+
61
+ ;
@@ -0,0 +1,4 @@
1
+ .layoutSelectItem {
2
+ width: 120px;
3
+ height: 136px;
4
+ }
@@ -0,0 +1 @@
1
+ 自动布局选择
@@ -0,0 +1,11 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+
5
+ exports.__esModule = true;
6
+ exports["default"] = void 0;
7
+
8
+ var _LayoutSelect = _interopRequireDefault(require("./LayoutSelect"));
9
+
10
+ var _default = _LayoutSelect["default"];
11
+ exports["default"] = _default;
@@ -0,0 +1,46 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+
5
+ exports.__esModule = true;
6
+ exports["default"] = void 0;
7
+
8
+ var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
9
+
10
+ var _objectWithoutPropertiesLoose2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutPropertiesLoose"));
11
+
12
+ var _react = _interopRequireDefault(require("react"));
13
+
14
+ var _TemplateButton = _interopRequireDefault(require("../TemplateButton"));
15
+
16
+ var _TagSelect = _interopRequireDefault(require("../TagSelect"));
17
+
18
+ var _excluded = ["dataSource", "size", "boxProps", "tagProps", "itemProps", "ItemComponent"];
19
+
20
+ var TagImageSelect = function TagImageSelect(props) {
21
+ var dataSource = props.dataSource,
22
+ size = props.size,
23
+ boxProps = props.boxProps,
24
+ tagProps = props.tagProps,
25
+ itemProps = props.itemProps,
26
+ ItemComponent = props.ItemComponent,
27
+ otherProps = (0, _objectWithoutPropertiesLoose2["default"])(props, _excluded);
28
+ var Item = ItemComponent || _TemplateButton["default"];
29
+ return /*#__PURE__*/_react["default"].createElement(_TagSelect["default"], (0, _extends2["default"])({}, otherProps, {
30
+ dataSource: dataSource.map(function (item) {
31
+ return {
32
+ key: item.id,
33
+ content: /*#__PURE__*/_react["default"].createElement(Item, (0, _extends2["default"])({
34
+ key: item.id
35
+ }, item, {
36
+ size: size
37
+ }, itemProps), item.name)
38
+ };
39
+ }),
40
+ boxProps: boxProps,
41
+ tagProps: tagProps
42
+ }));
43
+ };
44
+
45
+ var _default = TagImageSelect;
46
+ exports["default"] = _default;
@@ -24,8 +24,8 @@ var SelectableTag = _tag["default"].Selectable;
24
24
  var TagSelect = function TagSelect(props) {
25
25
  var _onChange = props.onChange,
26
26
  value = props.value,
27
- dataSource = props.dataSource,
28
27
  defaultValue = props.defaultValue,
28
+ dataSource = props.dataSource,
29
29
  boxProps = props.boxProps,
30
30
  tagProps = props.tagProps;
31
31
 
@@ -41,7 +41,7 @@ var TagSelect = function TagSelect(props) {
41
41
  return /*#__PURE__*/_react["default"].createElement("div", {
42
42
  className: "tag-select-wrap"
43
43
  }, /*#__PURE__*/_react["default"].createElement(_box["default"], (0, _extends2["default"])({
44
- spacing: 8,
44
+ spacing: 12,
45
45
  wrap: true,
46
46
  direction: "row"
47
47
  }, boxProps), dataSource.map(function (item) {
@@ -19,9 +19,5 @@
19
19
  }
20
20
  }
21
21
  }
22
- .tag-select-label {
23
- margin-top: 4px;
24
- max-width: fit-content;
25
- }
26
22
  }
27
23
  }
@@ -12,13 +12,14 @@ var _assets = _interopRequireDefault(require("./assets"));
12
12
  var Icon = function Icon(props) {
13
13
  var _props$alt = props.alt,
14
14
  alt = _props$alt === void 0 ? '' : _props$alt,
15
+ img = props.img,
15
16
  type = props.type,
16
17
  className = props.className,
17
18
  rotate = props.rotate;
18
19
  var style = rotate ? {
19
20
  transform: "rotate(" + rotate + "deg)"
20
21
  } : null;
21
- var src = _assets["default"][type];
22
+ var src = img || _assets["default"][type];
22
23
  return /*#__PURE__*/_react["default"].createElement("img", {
23
24
  className: className,
24
25
  style: style,
@@ -5,10 +5,6 @@ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefau
5
5
  exports.__esModule = true;
6
6
  exports["default"] = void 0;
7
7
 
8
- var _topo_tpl_blank = _interopRequireDefault(require("./topo_tpl_blank.svg"));
9
-
10
- var _topo_tpl_region = _interopRequireDefault(require("./topo_tpl_region.svg"));
11
-
12
8
  var _topo_layout_circular = _interopRequireDefault(require("./topo_layout_circular.svg"));
13
9
 
14
10
  var _topo_layout_hierarchical = _interopRequireDefault(require("./topo_layout_hierarchical.svg"));
@@ -17,8 +13,6 @@ var _topo_layout_toward = _interopRequireDefault(require("./topo_layout_toward.s
17
13
 
18
14
  // import IconTplLayeredRing from './topo_tpl_layered_ring.svg';
19
15
  var _default = {
20
- 'tpl_blank': _topo_tpl_blank["default"],
21
- 'tpl_region': _topo_tpl_region["default"],
22
16
  // 'tpl_layered_ring': IconTplLayeredRing,
23
17
  'layout_circular': _topo_layout_circular["default"],
24
18
  'layout_hierarchical': _topo_layout_hierarchical["default"],
@@ -17,45 +17,27 @@ var _Icon = _interopRequireDefault(require("./Icon"));
17
17
 
18
18
  var _indexModule = _interopRequireDefault(require("./index.module.scss"));
19
19
 
20
- var _excluded = ["className", "children", "icon", "id", "selected", "onSelect", "size"];
20
+ var _excluded = ["className", "children", "icon", "img", "iconClassName", "textClassName"];
21
21
 
22
22
  var TemplateButton = function TemplateButton(props) {
23
23
  var className = props.className,
24
24
  children = props.children,
25
25
  icon = props.icon,
26
- id = props.id,
27
- selected = props.selected,
28
- _props$onSelect = props.onSelect,
29
- onSelect = _props$onSelect === void 0 ? function () {} : _props$onSelect,
30
- size = props.size,
26
+ img = props.img,
27
+ iconClassName = props.iconClassName,
28
+ textClassName = props.textClassName,
31
29
  rest = (0, _objectWithoutPropertiesLoose2["default"])(props, _excluded);
32
-
33
- var handleClick = function handleClick() {
34
- return onSelect(id);
35
- };
36
-
37
30
  return /*#__PURE__*/_react["default"].createElement("div", {
38
- className: (0, _classnames["default"])(_indexModule["default"].card, className),
39
- onClick: handleClick
31
+ className: (0, _classnames["default"])(_indexModule["default"].card, className)
40
32
  }, /*#__PURE__*/_react["default"].createElement("div", {
41
33
  className: _indexModule["default"].iconWrapper
42
34
  }, /*#__PURE__*/_react["default"].createElement(_Icon["default"], (0, _extends2["default"])({
43
- className: _indexModule["default"].icon,
35
+ className: (0, _classnames["default"])(_indexModule["default"].icon, iconClassName),
36
+ img: img,
44
37
  type: icon
45
38
  }, rest))), /*#__PURE__*/_react["default"].createElement("div", {
46
- className: _indexModule["default"].text
47
- }, children));
48
- return /*#__PURE__*/_react["default"].createElement("div", {
49
- className: (0, _classnames["default"])(_indexModule["default"].card, className),
50
- onClick: handleClick
51
- }, /*#__PURE__*/_react["default"].createElement(_Icon["default"], (0, _extends2["default"])({
52
- className: _indexModule["default"].icon,
53
- type: icon
54
- }, rest)), /*#__PURE__*/_react["default"].createElement("div", {
55
- tabIndex: "0",
56
- role: "button",
57
- className: _indexModule["default"].text
58
- }, children));
39
+ className: (0, _classnames["default"])(_indexModule["default"].text, textClassName)
40
+ }, /*#__PURE__*/_react["default"].createElement("span", null, children)));
59
41
  };
60
42
 
61
43
  var _default = TemplateButton;
@@ -10,7 +10,6 @@
10
10
 
11
11
  .iconWrapper {
12
12
  display: flex;
13
- flex: 1;
14
13
  justify-content: center;
15
14
  align-items: center;
16
15
  }
@@ -20,9 +19,10 @@
20
19
  }
21
20
 
22
21
  .text {
22
+ height: 20px;
23
+ line-height: 20px;
23
24
  font-size: 18px;
24
- margin-top: 16px;
25
- padding-bottom: 24px;
25
+ margin-top: 14px;
26
26
  color: $color-text1-3;
27
27
  outline: none;
28
28
  }
@@ -11,7 +11,7 @@ var _radio = _interopRequireDefault(require("@alifd/next/lib/radio"));
11
11
 
12
12
  var _react = _interopRequireWildcard(require("react"));
13
13
 
14
- var _TemplateGroup = _interopRequireDefault(require("../../../../../components/TemplateGroup"));
14
+ var _TagImageSelect = _interopRequireDefault(require("../../../../../components/TagImageSelect"));
15
15
 
16
16
  var _LayoutSettingsModule = _interopRequireDefault(require("./LayoutSettings.module.scss"));
17
17
 
@@ -66,7 +66,7 @@ var LayoutSettings = function LayoutSettings(props) {
66
66
  onSelect: onLayoutSelect
67
67
  };
68
68
  });
69
- return /*#__PURE__*/_react["default"].createElement(_react["default"].Fragment, null, /*#__PURE__*/_react["default"].createElement(_TemplateGroup["default"], {
69
+ return /*#__PURE__*/_react["default"].createElement(_react["default"].Fragment, null, /*#__PURE__*/_react["default"].createElement(_TagImageSelect["default"], {
70
70
  data: layoutGroup,
71
71
  size: size
72
72
  }), layoutId === 'toward' && /*#__PURE__*/_react["default"].createElement("div", null, /*#__PURE__*/_react["default"].createElement("span", {
@@ -40,7 +40,7 @@ var CiTyeCache = /*#__PURE__*/function () {
40
40
  case 5:
41
41
  _context.prev = 5;
42
42
  _context.t0 = _context["catch"](0);
43
- console.error('查询Ci模型异常');
43
+ console.error('查询Ci模型异常', _context.t0);
44
44
 
45
45
  case 8:
46
46
  return _context.abrupt("return", this.cache);
@@ -21,8 +21,8 @@ function mergeLinksData(links, relationDetails) {
21
21
  return links.map(function (link) {
22
22
  var relation = (0, _topoData.findItem)(relationDetails, 'id', link.id);
23
23
  return (0, _extends2["default"])({}, link, {
24
- ciType: relation.typeCode,
25
- name: relation.attributes.name,
24
+ ciType: relation === null || relation === void 0 ? void 0 : relation.typeCode,
25
+ name: relation === null || relation === void 0 ? void 0 : relation.attributes.name,
26
26
  detail: relation
27
27
  });
28
28
  });
@@ -23,10 +23,15 @@ var _TitleBarModule = _interopRequireDefault(require("../../../components/titleb
23
23
 
24
24
  var _EditButton = _interopRequireDefault(require("./widgets/EditButton"));
25
25
 
26
+ var _useSetDefaultTopo = _interopRequireDefault(require("./useSetDefaultTopo"));
27
+
26
28
  function ViewerTools(props) {
27
29
  var topo = props.topo,
28
30
  _props$showEditButton = props.showEditButton,
29
31
  showEditButton = _props$showEditButton === void 0 ? true : _props$showEditButton;
32
+ var setDefaultTopo = (0, _useSetDefaultTopo["default"])({
33
+ topo: topo
34
+ });
30
35
  return /*#__PURE__*/_react["default"].createElement("div", null, showEditButton && /*#__PURE__*/_react["default"].createElement(_EditButton["default"], (0, _extends2["default"])({
31
36
  topo: topo
32
37
  }, props)), /*#__PURE__*/_react["default"].createElement(_dropdown["default"], {
@@ -36,7 +41,7 @@ function ViewerTools(props) {
36
41
  type: "ellipsis-vertical"
37
42
  })),
38
43
  triggerType: "click"
39
- }, /*#__PURE__*/_react["default"].createElement(_menu["default"], null, /*#__PURE__*/_react["default"].createElement(_menu["default"].Item, {
44
+ }, /*#__PURE__*/_react["default"].createElement(_menu["default"], null, setDefaultTopo.renderMenuItem(), /*#__PURE__*/_react["default"].createElement(_menu["default"].Item, {
40
45
  onClick: function onClick() {
41
46
  topo.exportImage();
42
47
  }
@@ -0,0 +1,40 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+
5
+ exports.__esModule = true;
6
+ exports["default"] = useSetDefaultTopo;
7
+
8
+ var _menu = _interopRequireDefault(require("@alifd/next/lib/menu"));
9
+
10
+ var _react = _interopRequireDefault(require("react"));
11
+
12
+ var _tree = require("../../../../utils/tree");
13
+
14
+ function useSetDefaultTopo(props) {
15
+ var _findNodeById;
16
+
17
+ var topo = props.topo;
18
+ var store = topo.store;
19
+ var functionAuthState = store.useModelState('functionAuth');
20
+ var topoModState = store.useModelState('topoMod');
21
+
22
+ var _store$useModel = store.useModel('topoTreeMod'),
23
+ topoTreeState = _store$useModel[0],
24
+ topoTreeDispatchers = _store$useModel[1];
25
+
26
+ var isDefault = (_findNodeById = (0, _tree.findNodeById)(topoTreeState.treeData, topoModState.topoId)) === null || _findNodeById === void 0 ? void 0 : _findNodeById.showDefault;
27
+ var showButton = !!functionAuthState.permissions.manageNavTree && !isDefault;
28
+
29
+ var setDefault = function setDefault() {
30
+ topoTreeDispatchers.setDefTopoOnTree(topoModState.topoId);
31
+ };
32
+
33
+ return {
34
+ renderMenuItem: function renderMenuItem() {
35
+ return showButton && /*#__PURE__*/_react["default"].createElement(_menu["default"].Item, {
36
+ onClick: setDefault
37
+ }, "\u8BBE\u4E3A\u9ED8\u8BA4\u62D3\u6251");
38
+ }
39
+ };
40
+ }
@@ -70,6 +70,7 @@ var regionTplState = {
70
70
  groups: initGroups(3)
71
71
  };
72
72
  var initialState = (0, _extends2["default"])({
73
+ viewGroup: undefined,
73
74
  topo: [],
74
75
  // 拓扑结构(点线)
75
76
  elements: {
@@ -282,7 +283,7 @@ function _default(topoApp) {
282
283
  var _this = this;
283
284
 
284
285
  return (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee() {
285
- var data, groupTopo, resources, groups;
286
+ var data, isViewGroup, parseGroup, viewGroup, resources, groups;
286
287
  return _regenerator["default"].wrap(function _callee$(_context) {
287
288
  while (1) {
288
289
  switch (_context.prev = _context.next) {
@@ -301,15 +302,13 @@ function _default(topoApp) {
301
302
  return _context.abrupt("return");
302
303
 
303
304
  case 5:
304
- // 视图
305
- groupTopo = data.findIndex(function (item) {
305
+ isViewGroup = function isViewGroup(item) {
306
306
  var _item$topoGroup;
307
307
 
308
308
  return ((_item$topoGroup = item.topoGroup) === null || _item$topoGroup === void 0 ? void 0 : _item$topoGroup.parentId) === _topo.TOPO_PARENT_ID;
309
- });
310
- resources = conditionToRes(groupTopo >= 0 ? data[groupTopo].condition : {}); // 容器
309
+ };
311
310
 
312
- groups = (0, _format.removeFromArray)(data, groupTopo).map(function (item) {
311
+ parseGroup = function parseGroup(item) {
313
312
  var _item$topoGroup2 = item.topoGroup,
314
313
  topoGroup = _item$topoGroup2 === void 0 ? {} : _item$topoGroup2,
315
314
  condition = item.condition;
@@ -329,14 +328,23 @@ function _default(topoApp) {
329
328
  expanded: groupStyles.expanded || false,
330
329
  resources: conditionToRes(condition)
331
330
  };
332
- });
331
+ }; // 视图
332
+
333
+
334
+ viewGroup = data.filter(isViewGroup).map(parseGroup)[0];
335
+ resources = viewGroup ? viewGroup.resources : {}; // 容器
336
+
337
+ groups = data.filter(function (item) {
338
+ return !isViewGroup(item);
339
+ }).map(parseGroup);
333
340
 
334
341
  _this.update({
342
+ viewGroup: viewGroup,
335
343
  resources: resources,
336
344
  groups: groups
337
345
  });
338
346
 
339
- case 9:
347
+ case 11:
340
348
  case "end":
341
349
  return _context.stop();
342
350
  }
@@ -454,7 +462,8 @@ function _default(topoApp) {
454
462
  },
455
463
  saveTopo: function saveTopo(data, state) {
456
464
  return (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee4() {
457
- var topoId, template, layout, global, resources, groups, serialize, layoutId, conditions, groupInfo;
465
+ var topoId, template, layout, global, resources, groups, serialize, layoutId, _state$topoCreateMod$, groupInfo, viewGroupId, conditions;
466
+
458
467
  return _regenerator["default"].wrap(function _callee4$(_context4) {
459
468
  while (1) {
460
469
  switch (_context4.prev = _context4.next) {
@@ -494,21 +503,38 @@ function _default(topoApp) {
494
503
 
495
504
  case 11:
496
505
  if (!(resources || groups)) {
497
- _context4.next = 16;
506
+ _context4.next = 19;
498
507
  break;
499
508
  }
500
509
 
510
+ groupInfo = [];
511
+
512
+ if ((0, _utils.isAvailableArray)(groups)) {
513
+ groupInfo = groups.map(function (group) {
514
+ return (0, _extends2["default"])({}, group, {
515
+ layout: getLayoutId(group.layout),
516
+ resources: resToConditions(group.resources, true)
517
+ });
518
+ });
519
+ } // 视图
520
+
521
+
522
+ viewGroupId = (_state$topoCreateMod$ = state.topoCreateMod.viewGroup) === null || _state$topoCreateMod$ === void 0 ? void 0 : _state$topoCreateMod$.id;
501
523
  conditions = resToConditions(resources, true);
502
- groupInfo = (0, _utils.isAvailableArray)(groups) && groups.map(function (group) {
503
- return (0, _extends2["default"])({}, group, {
504
- layout: getLayoutId(group.layout),
505
- resources: resToConditions(group.resources, true)
524
+
525
+ if (conditions) {
526
+ groupInfo.push({
527
+ id: viewGroupId,
528
+ parentId: _topo.TOPO_PARENT_ID,
529
+ order: 100,
530
+ resources: conditions
506
531
  });
507
- });
508
- _context4.next = 16;
509
- return _topo["default"].bindResourceToTopo(topoId, conditions, groupInfo);
532
+ }
510
533
 
511
- case 16:
534
+ _context4.next = 19;
535
+ return _topo["default"].bindResourceToTopo(topoId, null, groupInfo);
536
+
537
+ case 19:
512
538
  case "end":
513
539
  return _context4.stop();
514
540
  }
@@ -40,6 +40,7 @@ function _default(topoApp) {
40
40
  topoLoadError: false,
41
41
  viewState: 'view',
42
42
  // view, create, 2种模式
43
+ id: undefined,
43
44
  topoId: '',
44
45
  topoName: '',
45
46
  topoData: null,
@@ -54,9 +55,9 @@ function _default(topoApp) {
54
55
  topoAlarmIsOpen: false,
55
56
  // 拓扑通道是否打开
56
57
  alarmData: null,
57
- // 概览抽屉中告警列表相关数据
58
+ // 概览抽屉中告警列表相关数据 TODO 抽取
58
59
  currentCiInfo: null,
59
- // 概览抽屉当前CI元数据
60
+ // 概览抽屉当前CI元数据 TODO 抽取
60
61
  resAndMetrics: {
61
62
  res: [],
62
63
  metrics: [],
package/lib/style.js CHANGED
@@ -25,7 +25,7 @@ require('@alifd/next/lib/radio/style');
25
25
  require('@alifd/next/lib/collapse/style');
26
26
  require('@alifd/next/lib/list/style');
27
27
  require('@alifd/next/lib/tree-select/style');
28
-
28
+ require('@alifd/next/lib/tag/style');
29
29
 
30
30
 
31
31
  require('./index.scss');
package/lib/utils/tree.js CHANGED
@@ -111,6 +111,11 @@ function findNodeById(tree, id) {
111
111
 
112
112
  function findParentIdsById(tree, id) {
113
113
  var node = findNodeById(tree, id);
114
+
115
+ if (!node) {
116
+ return [];
117
+ }
118
+
114
119
  var parentId = "" + node.parentId;
115
120
 
116
121
  if (parentId === '-1') {