@riil-frontend/component-topology 2.8.0 → 2.10.0-alpha-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.
Files changed (63) hide show
  1. package/build/1.js +2 -2
  2. package/build/2.js +2 -2
  3. package/build/index.css +1 -1
  4. package/build/index.js +40 -40
  5. package/es/components/LayoutDirectionSelect/Item.js +11 -0
  6. package/es/components/LayoutDirectionSelect/Item.module.scss +9 -0
  7. package/es/components/LayoutDirectionSelect/LayoutDirectionSelect.js +48 -0
  8. package/es/components/LayoutDirectionSelect/LayoutDirectionSelect.module.scss +4 -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/{TemplateSelect → TagImageSelect}/index.js +6 -23
  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 +7 -15
  21. package/es/core/editor/components/settings/common/LayoutSettings.js +1 -1
  22. package/es/core/models/cache/CiTyeCache.js +1 -1
  23. package/es/core/models/utils/linkUtils.js +2 -2
  24. package/es/core/viewer/components/titlebar/ViewerTools.js +5 -1
  25. package/es/core/viewer/components/titlebar/useSetDefaultTopo.js +30 -0
  26. package/es/models/topoCreateMod.js +44 -18
  27. package/es/models/topoMod.js +3 -2
  28. package/es/style.js +1 -1
  29. package/es/utils/tree.js +5 -0
  30. package/lib/components/LayoutDirectionSelect/Item.js +25 -0
  31. package/lib/components/LayoutDirectionSelect/Item.module.scss +9 -0
  32. package/lib/components/LayoutDirectionSelect/LayoutDirectionSelect.js +64 -0
  33. package/lib/components/LayoutDirectionSelect/LayoutDirectionSelect.module.scss +4 -0
  34. package/lib/components/LayoutDirectionSelect/index.js +11 -0
  35. package/lib/components/LayoutSelect/LayoutSelect.js +61 -0
  36. package/lib/components/LayoutSelect/LayoutSelect.module.scss +4 -0
  37. package/lib/components/LayoutSelect/README.md +1 -0
  38. package/lib/components/LayoutSelect/index.js +11 -0
  39. package/lib/components/{TemplateSelect → TagImageSelect}/index.js +6 -27
  40. package/{es/components/TemplateSelect → lib/components/TagImageSelect}/index.module.scss +0 -0
  41. package/lib/components/TagSelect/index.js +2 -2
  42. package/lib/components/TagSelect/index.scss +0 -4
  43. package/lib/components/TemplateButton/Icon.js +2 -1
  44. package/lib/components/TemplateButton/assets/index.js +0 -6
  45. package/lib/components/TemplateButton/index.js +7 -15
  46. package/lib/core/editor/components/settings/common/LayoutSettings.js +2 -2
  47. package/lib/core/models/cache/CiTyeCache.js +1 -1
  48. package/lib/core/models/utils/linkUtils.js +2 -2
  49. package/lib/core/viewer/components/titlebar/ViewerTools.js +6 -1
  50. package/lib/core/viewer/components/titlebar/useSetDefaultTopo.js +40 -0
  51. package/lib/models/topoCreateMod.js +44 -18
  52. package/lib/models/topoMod.js +3 -2
  53. package/lib/style.js +1 -1
  54. package/lib/utils/tree.js +5 -0
  55. package/package.json +7 -6
  56. package/es/components/TemplateButton/assets/topo_tpl_blank.svg +0 -9
  57. package/es/components/TemplateButton/assets/topo_tpl_region.svg +0 -14
  58. package/es/components/TemplateGroup/index.js +0 -28
  59. package/lib/components/TemplateButton/assets/topo_tpl_blank.svg +0 -9
  60. package/lib/components/TemplateButton/assets/topo_tpl_region.svg +0 -14
  61. package/lib/components/TemplateGroup/index.js +0 -40
  62. package/lib/components/TemplateGroup/index.module.scss +0 -3
  63. package/lib/components/TemplateSelect/index.module.scss +0 -3
@@ -0,0 +1,11 @@
1
+ import _extends from "@babel/runtime/helpers/extends";
2
+ import React, { useState, useEffect, useRef, useCallback } from 'react';
3
+ import TemplateButton from "../TemplateButton";
4
+ import styles from "./Item.module.scss";
5
+ export default function Item(props) {
6
+ return /*#__PURE__*/React.createElement(TemplateButton, _extends({}, props, {
7
+ iconClassName: styles.icon,
8
+ textClassName: styles.text
9
+ }));
10
+ }
11
+ ;
@@ -0,0 +1,9 @@
1
+ .icon {
2
+ width: 72px;
3
+ }
4
+
5
+ .text {
6
+ font-size: 12px;
7
+ margin-top: 15px;
8
+ padding-bottom: 18px;
9
+ }
@@ -0,0 +1,48 @@
1
+ import _extends from "@babel/runtime/helpers/extends";
2
+ import React, { useState, useEffect, useRef, useCallback } from 'react';
3
+ import TagImageSelect from "../TagImageSelect";
4
+ import styles from "./LayoutDirectionSelect.module.scss";
5
+ import Item from "./Item";
6
+ var LAYOUTS = [{
7
+ id: 'towardsouth',
8
+ name: '自上向下',
9
+ icon: 'layout_toward'
10
+ }, // {
11
+ // id: 'towardnorth',
12
+ // name: '自下向上',
13
+ // icon: 'layout_toward',
14
+ // rotate: 180,
15
+ // },
16
+ {
17
+ id: 'towardeast',
18
+ name: '自左向右',
19
+ icon: 'layout_toward',
20
+ rotate: 270
21
+ } // {
22
+ // id: 'towardwest',
23
+ // name: '自右向左',
24
+ // icon: 'layout_toward',
25
+ // rotate: 90,
26
+ // },
27
+ ];
28
+ export default function LayoutDirectionSelect(props) {
29
+ var value = props.value,
30
+ onSelect = props.onSelect;
31
+ var layoutOptions = LAYOUTS.map(function (item) {
32
+ return _extends({}, item, {
33
+ selected: value === item.id,
34
+ onSelect: onSelect
35
+ });
36
+ });
37
+ return /*#__PURE__*/React.createElement(TagImageSelect, {
38
+ data: layoutOptions,
39
+ boxProps: {
40
+ spacing: 12
41
+ },
42
+ tagProps: {
43
+ className: styles.layoutSelectItem
44
+ },
45
+ ItemComponent: Item
46
+ });
47
+ }
48
+ ;
@@ -0,0 +1,4 @@
1
+ .layoutSelectItem {
2
+ width: 120px;
3
+ height: 136px !important;
4
+ }
@@ -0,0 +1,2 @@
1
+ import LayoutDirectionSelect from "./LayoutDirectionSelect";
2
+ export default LayoutDirectionSelect;
@@ -0,0 +1,46 @@
1
+ import _extends from "@babel/runtime/helpers/extends";
2
+ import React, { useState, useEffect, useRef, useCallback } from 'react';
3
+ import TagImageSelect from "../TagImageSelect";
4
+ import styles from "./LayoutSelect.module.scss";
5
+ var LAYOUTS = [{
6
+ id: 'towardsouth',
7
+ name: '自上向下',
8
+ icon: 'layout_toward'
9
+ }, // {
10
+ // id: 'towardnorth',
11
+ // name: '自下向上',
12
+ // icon: 'layout_toward',
13
+ // rotate: 180,
14
+ // },
15
+ {
16
+ id: 'towardeast',
17
+ name: '自左向右',
18
+ icon: 'layout_toward',
19
+ rotate: 270
20
+ } // {
21
+ // id: 'towardwest',
22
+ // name: '自右向左',
23
+ // icon: 'layout_toward',
24
+ // rotate: 90,
25
+ // },
26
+ ];
27
+ export default function LayoutSelect(props) {
28
+ var value = props.value,
29
+ onSelect = props.onSelect;
30
+ var layoutOptions = LAYOUTS.map(function (item) {
31
+ return _extends({}, item, {
32
+ selected: value === item.id,
33
+ onSelect: onSelect
34
+ });
35
+ });
36
+ return /*#__PURE__*/React.createElement(TagImageSelect, {
37
+ data: layoutOptions,
38
+ boxProps: {
39
+ spacing: 12
40
+ },
41
+ tagProps: {
42
+ className: styles.layoutSelectItem
43
+ }
44
+ });
45
+ }
46
+ ;
@@ -0,0 +1,4 @@
1
+ .layoutSelectItem {
2
+ width: 120px;
3
+ height: 136px;
4
+ }
@@ -0,0 +1 @@
1
+ 自动布局选择
@@ -0,0 +1,2 @@
1
+ import LayoutSelect from "./LayoutSelect";
2
+ export default LayoutSelect;
@@ -1,34 +1,28 @@
1
1
  import _extends from "@babel/runtime/helpers/extends";
2
- import _Tag from "@alifd/next/lib/tag";
3
2
  import React from 'react';
4
3
  import TemplateButton from "../TemplateButton";
5
- import styles from "./index.module.scss";
6
- import TemplateGroup from "../TemplateGroup";
7
4
  import TagSelect from "../TagSelect";
8
- var TagGroup = _Tag.Group,
9
- SelectableTag = _Tag.Selectable;
10
5
 
11
- var TemplateSelect = function TemplateSelect(props) {
6
+ var TagImageSelect = function TagImageSelect(props) {
12
7
  var _data$filter$;
13
8
 
14
- // return (
15
- // <TemplateGroup {...props}/>
16
- // )
17
9
  var _props$data = props.data,
18
10
  data = _props$data === void 0 ? [] : _props$data,
19
11
  size = props.size,
20
12
  boxProps = props.boxProps,
21
13
  tagProps = props.tagProps,
22
- itemProps = props.itemProps;
14
+ itemProps = props.itemProps,
15
+ ItemComponent = props.ItemComponent;
23
16
  var value = (_data$filter$ = data.filter(function (item) {
24
17
  return item.selected;
25
18
  })[0]) === null || _data$filter$ === void 0 ? void 0 : _data$filter$.id;
19
+ var Item = ItemComponent || TemplateButton;
26
20
  return /*#__PURE__*/React.createElement(TagSelect, {
27
21
  defaultValue: value,
28
22
  dataSource: data.map(function (item) {
29
23
  return {
30
24
  key: item.id,
31
- content: /*#__PURE__*/React.createElement(TemplateButton, _extends({
25
+ content: /*#__PURE__*/React.createElement(Item, _extends({
32
26
  key: item.id
33
27
  }, item, {
34
28
  size: size
@@ -38,17 +32,6 @@ var TemplateSelect = function TemplateSelect(props) {
38
32
  boxProps: boxProps,
39
33
  tagProps: tagProps
40
34
  });
41
- return /*#__PURE__*/React.createElement(TagGroup, null, data.map(function (item) {
42
- return /*#__PURE__*/React.createElement(SelectableTag, {
43
- key: item.name,
44
- checked: item.selected,
45
- onChange: function onChange() {}
46
- }, /*#__PURE__*/React.createElement(TemplateButton, _extends({
47
- key: item.id
48
- }, item, {
49
- size: size
50
- }), item.name));
51
- }));
52
35
  };
53
36
 
54
- export default TemplateSelect;
37
+ export default TagImageSelect;
@@ -9,8 +9,8 @@ var SelectableTag = _Tag.Selectable;
9
9
  var TagSelect = function TagSelect(props) {
10
10
  var _onChange = props.onChange,
11
11
  value = props.value,
12
- dataSource = props.dataSource,
13
12
  defaultValue = props.defaultValue,
13
+ dataSource = props.dataSource,
14
14
  boxProps = props.boxProps,
15
15
  tagProps = props.tagProps;
16
16
 
@@ -26,7 +26,7 @@ var TagSelect = function TagSelect(props) {
26
26
  return /*#__PURE__*/React.createElement("div", {
27
27
  className: "tag-select-wrap"
28
28
  }, /*#__PURE__*/React.createElement(_Box, _extends({
29
- spacing: 8,
29
+ spacing: 12,
30
30
  wrap: true,
31
31
  direction: "row"
32
32
  }, 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
  }
@@ -4,13 +4,14 @@ import Icons from "./assets";
4
4
  var Icon = function Icon(props) {
5
5
  var _props$alt = props.alt,
6
6
  alt = _props$alt === void 0 ? '' : _props$alt,
7
+ img = props.img,
7
8
  type = props.type,
8
9
  className = props.className,
9
10
  rotate = props.rotate;
10
11
  var style = rotate ? {
11
12
  transform: "rotate(" + rotate + "deg)"
12
13
  } : null;
13
- var src = Icons[type];
14
+ var src = img || Icons[type];
14
15
  return /*#__PURE__*/React.createElement("img", {
15
16
  className: className,
16
17
  style: style,
@@ -1,12 +1,8 @@
1
- import IconTplBlank from "./topo_tpl_blank.svg";
2
- import IconTplRegion from "./topo_tpl_region.svg"; // import IconTplLayeredRing from './topo_tpl_layered_ring.svg';
3
-
1
+ // import IconTplLayeredRing from './topo_tpl_layered_ring.svg';
4
2
  import IconLayoutCircular from "./topo_layout_circular.svg";
5
3
  import IconLayoutHierarchical from "./topo_layout_hierarchical.svg";
6
4
  import IconLayoutToward from "./topo_layout_toward.svg";
7
5
  export default {
8
- 'tpl_blank': IconTplBlank,
9
- 'tpl_region': IconTplRegion,
10
6
  // 'tpl_layered_ring': IconTplLayeredRing,
11
7
  'layout_circular': IconLayoutCircular,
12
8
  'layout_hierarchical': IconLayoutHierarchical,
@@ -1,6 +1,6 @@
1
1
  import _extends from "@babel/runtime/helpers/extends";
2
2
  import _objectWithoutPropertiesLoose from "@babel/runtime/helpers/objectWithoutPropertiesLoose";
3
- var _excluded = ["className", "children", "icon", "id", "selected", "onSelect", "size"];
3
+ var _excluded = ["className", "children", "icon", "id", "selected", "onSelect", "img", "iconClassName", "textClassName"];
4
4
  import React from 'react';
5
5
  import classnames from 'classnames';
6
6
  import Icon from "./Icon";
@@ -14,7 +14,9 @@ var TemplateButton = function TemplateButton(props) {
14
14
  selected = props.selected,
15
15
  _props$onSelect = props.onSelect,
16
16
  onSelect = _props$onSelect === void 0 ? function () {} : _props$onSelect,
17
- size = props.size,
17
+ img = props.img,
18
+ iconClassName = props.iconClassName,
19
+ textClassName = props.textClassName,
18
20
  rest = _objectWithoutPropertiesLoose(props, _excluded);
19
21
 
20
22
  var handleClick = function handleClick() {
@@ -27,21 +29,11 @@ var TemplateButton = function TemplateButton(props) {
27
29
  }, /*#__PURE__*/React.createElement("div", {
28
30
  className: styles.iconWrapper
29
31
  }, /*#__PURE__*/React.createElement(Icon, _extends({
30
- className: styles.icon,
32
+ className: classnames(styles.icon, iconClassName),
33
+ img: img,
31
34
  type: icon
32
35
  }, rest))), /*#__PURE__*/React.createElement("div", {
33
- className: styles.text
34
- }, children));
35
- return /*#__PURE__*/React.createElement("div", {
36
- className: classnames(styles.card, className),
37
- onClick: handleClick
38
- }, /*#__PURE__*/React.createElement(Icon, _extends({
39
- className: styles.icon,
40
- type: icon
41
- }, rest)), /*#__PURE__*/React.createElement("div", {
42
- tabIndex: "0",
43
- role: "button",
44
- className: styles.text
36
+ className: classnames(styles.text, textClassName)
45
37
  }, children));
46
38
  };
47
39
 
@@ -1,6 +1,6 @@
1
1
  import _Radio from "@alifd/next/lib/radio";
2
2
  import React, { useState } from 'react';
3
- import TemplateGroup from "../../../../../components/TemplateGroup";
3
+ import TemplateGroup from "../../../../../components/TagImageSelect";
4
4
  import styles from "./LayoutSettings.module.scss";
5
5
  var LAYOUTS = {
6
6
  circular: '星型布局',
@@ -30,7 +30,7 @@ var CiTyeCache = /*#__PURE__*/function () {
30
30
  case 5:
31
31
  _context.prev = 5;
32
32
  _context.t0 = _context["catch"](0);
33
- console.error('查询Ci模型异常');
33
+ console.error('查询Ci模型异常', _context.t0);
34
34
 
35
35
  case 8:
36
36
  return _context.abrupt("return", this.cache);
@@ -7,8 +7,8 @@ export function mergeLinksData(links, relationDetails) {
7
7
  return links.map(function (link) {
8
8
  var relation = findItem(relationDetails, 'id', link.id);
9
9
  return _extends({}, link, {
10
- ciType: relation.typeCode,
11
- name: relation.attributes.name,
10
+ ciType: relation === null || relation === void 0 ? void 0 : relation.typeCode,
11
+ name: relation === null || relation === void 0 ? void 0 : relation.attributes.name,
12
12
  detail: relation
13
13
  });
14
14
  });
@@ -6,10 +6,14 @@ import _extends from "@babel/runtime/helpers/extends";
6
6
  import React, { useState, useEffect, useRef, useCallback } from 'react';
7
7
  import styles from "../../../components/titlebar/TitleBar.module.scss";
8
8
  import EditButton from "./widgets/EditButton";
9
+ import useSetDefaultTopo from "./useSetDefaultTopo";
9
10
  export default function ViewerTools(props) {
10
11
  var topo = props.topo,
11
12
  _props$showEditButton = props.showEditButton,
12
13
  showEditButton = _props$showEditButton === void 0 ? true : _props$showEditButton;
14
+ var setDefaultTopo = useSetDefaultTopo({
15
+ topo: topo
16
+ });
13
17
  return /*#__PURE__*/React.createElement("div", null, showEditButton && /*#__PURE__*/React.createElement(EditButton, _extends({
14
18
  topo: topo
15
19
  }, props)), /*#__PURE__*/React.createElement(_Dropdown, {
@@ -19,7 +23,7 @@ export default function ViewerTools(props) {
19
23
  type: "ellipsis-vertical"
20
24
  })),
21
25
  triggerType: "click"
22
- }, /*#__PURE__*/React.createElement(_Menu, null, /*#__PURE__*/React.createElement(_Menu.Item, {
26
+ }, /*#__PURE__*/React.createElement(_Menu, null, setDefaultTopo.renderMenuItem(), /*#__PURE__*/React.createElement(_Menu.Item, {
23
27
  onClick: function onClick() {
24
28
  topo.exportImage();
25
29
  }
@@ -0,0 +1,30 @@
1
+ import _Menu from "@alifd/next/lib/menu";
2
+ import React from 'react';
3
+ import { findNodeById } from "../../../../utils/tree";
4
+ export default function useSetDefaultTopo(props) {
5
+ var _findNodeById;
6
+
7
+ var topo = props.topo;
8
+ var store = topo.store;
9
+ var functionAuthState = store.useModelState('functionAuth');
10
+ var topoModState = store.useModelState('topoMod');
11
+
12
+ var _store$useModel = store.useModel('topoTreeMod'),
13
+ topoTreeState = _store$useModel[0],
14
+ topoTreeDispatchers = _store$useModel[1];
15
+
16
+ var isDefault = (_findNodeById = findNodeById(topoTreeState.treeData, topoModState.topoId)) === null || _findNodeById === void 0 ? void 0 : _findNodeById.showDefault;
17
+ var showButton = !!functionAuthState.permissions.manageNavTree && !isDefault;
18
+
19
+ var setDefault = function setDefault() {
20
+ topoTreeDispatchers.setDefTopoOnTree(topoModState.topoId);
21
+ };
22
+
23
+ return {
24
+ renderMenuItem: function renderMenuItem() {
25
+ return showButton && /*#__PURE__*/React.createElement(_Menu.Item, {
26
+ onClick: setDefault
27
+ }, "\u8BBE\u4E3A\u9ED8\u8BA4\u62D3\u6251");
28
+ }
29
+ };
30
+ }
@@ -54,6 +54,7 @@ var regionTplState = {
54
54
  };
55
55
 
56
56
  var initialState = _extends({
57
+ viewGroup: undefined,
57
58
  topo: [],
58
59
  // 拓扑结构(点线)
59
60
  elements: {
@@ -268,7 +269,7 @@ export default function (topoApp) {
268
269
  var _this = this;
269
270
 
270
271
  return _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee() {
271
- var data, groupTopo, resources, groups;
272
+ var data, isViewGroup, parseGroup, viewGroup, resources, groups;
272
273
  return _regeneratorRuntime.wrap(function _callee$(_context) {
273
274
  while (1) {
274
275
  switch (_context.prev = _context.next) {
@@ -287,15 +288,13 @@ export default function (topoApp) {
287
288
  return _context.abrupt("return");
288
289
 
289
290
  case 5:
290
- // 视图
291
- groupTopo = data.findIndex(function (item) {
291
+ isViewGroup = function isViewGroup(item) {
292
292
  var _item$topoGroup;
293
293
 
294
294
  return ((_item$topoGroup = item.topoGroup) === null || _item$topoGroup === void 0 ? void 0 : _item$topoGroup.parentId) === TOPO_PARENT_ID;
295
- });
296
- resources = conditionToRes(groupTopo >= 0 ? data[groupTopo].condition : {}); // 容器
295
+ };
297
296
 
298
- groups = removeFromArray(data, groupTopo).map(function (item) {
297
+ parseGroup = function parseGroup(item) {
299
298
  var _item$topoGroup2 = item.topoGroup,
300
299
  topoGroup = _item$topoGroup2 === void 0 ? {} : _item$topoGroup2,
301
300
  condition = item.condition;
@@ -315,14 +314,23 @@ export default function (topoApp) {
315
314
  expanded: groupStyles.expanded || false,
316
315
  resources: conditionToRes(condition)
317
316
  };
318
- });
317
+ }; // 视图
318
+
319
+
320
+ viewGroup = data.filter(isViewGroup).map(parseGroup)[0];
321
+ resources = viewGroup ? viewGroup.resources : {}; // 容器
322
+
323
+ groups = data.filter(function (item) {
324
+ return !isViewGroup(item);
325
+ }).map(parseGroup);
319
326
 
320
327
  _this.update({
328
+ viewGroup: viewGroup,
321
329
  resources: resources,
322
330
  groups: groups
323
331
  });
324
332
 
325
- case 9:
333
+ case 11:
326
334
  case "end":
327
335
  return _context.stop();
328
336
  }
@@ -437,7 +445,8 @@ export default function (topoApp) {
437
445
  },
438
446
  saveTopo: function saveTopo(data, state) {
439
447
  return _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee4() {
440
- var topoId, template, layout, global, resources, groups, serialize, layoutId, conditions, groupInfo;
448
+ var topoId, template, layout, global, resources, groups, serialize, layoutId, _state$topoCreateMod$, groupInfo, viewGroupId, conditions;
449
+
441
450
  return _regeneratorRuntime.wrap(function _callee4$(_context4) {
442
451
  while (1) {
443
452
  switch (_context4.prev = _context4.next) {
@@ -477,21 +486,38 @@ export default function (topoApp) {
477
486
 
478
487
  case 11:
479
488
  if (!(resources || groups)) {
480
- _context4.next = 16;
489
+ _context4.next = 19;
481
490
  break;
482
491
  }
483
492
 
493
+ groupInfo = [];
494
+
495
+ if (isAvailableArray(groups)) {
496
+ groupInfo = groups.map(function (group) {
497
+ return _extends({}, group, {
498
+ layout: getLayoutId(group.layout),
499
+ resources: resToConditions(group.resources, true)
500
+ });
501
+ });
502
+ } // 视图
503
+
504
+
505
+ viewGroupId = (_state$topoCreateMod$ = state.topoCreateMod.viewGroup) === null || _state$topoCreateMod$ === void 0 ? void 0 : _state$topoCreateMod$.id;
484
506
  conditions = resToConditions(resources, true);
485
- groupInfo = isAvailableArray(groups) && groups.map(function (group) {
486
- return _extends({}, group, {
487
- layout: getLayoutId(group.layout),
488
- resources: resToConditions(group.resources, true)
507
+
508
+ if (conditions) {
509
+ groupInfo.push({
510
+ id: viewGroupId,
511
+ parentId: TOPO_PARENT_ID,
512
+ order: 100,
513
+ resources: conditions
489
514
  });
490
- });
491
- _context4.next = 16;
492
- return topoService.bindResourceToTopo(topoId, conditions, groupInfo);
515
+ }
493
516
 
494
- case 16:
517
+ _context4.next = 19;
518
+ return topoService.bindResourceToTopo(topoId, null, groupInfo);
519
+
520
+ case 19:
495
521
  case "end":
496
522
  return _context4.stop();
497
523
  }
@@ -21,6 +21,7 @@ export default function (topoApp) {
21
21
  topoLoadError: false,
22
22
  viewState: 'view',
23
23
  // view, create, 2种模式
24
+ id: undefined,
24
25
  topoId: '',
25
26
  topoName: '',
26
27
  topoData: null,
@@ -35,9 +36,9 @@ export default function (topoApp) {
35
36
  topoAlarmIsOpen: false,
36
37
  // 拓扑通道是否打开
37
38
  alarmData: null,
38
- // 概览抽屉中告警列表相关数据
39
+ // 概览抽屉中告警列表相关数据 TODO 抽取
39
40
  currentCiInfo: null,
40
- // 概览抽屉当前CI元数据
41
+ // 概览抽屉当前CI元数据 TODO 抽取
41
42
  resAndMetrics: {
42
43
  res: [],
43
44
  metrics: [],
package/es/style.js CHANGED
@@ -25,7 +25,7 @@ import '@alifd/next/lib/radio/style';
25
25
  import '@alifd/next/lib/collapse/style';
26
26
  import '@alifd/next/lib/list/style';
27
27
  import '@alifd/next/lib/tree-select/style';
28
-
28
+ import '@alifd/next/lib/tag/style';
29
29
 
30
30
 
31
31
  import './index.scss';
package/es/utils/tree.js CHANGED
@@ -93,6 +93,11 @@ export function findNodeById(tree, id) {
93
93
 
94
94
  export function findParentIdsById(tree, id) {
95
95
  var node = findNodeById(tree, id);
96
+
97
+ if (!node) {
98
+ return [];
99
+ }
100
+
96
101
  var parentId = "" + node.parentId;
97
102
 
98
103
  if (parentId === '-1') {
@@ -0,0 +1,25 @@
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"] = Item;
9
+
10
+ var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
11
+
12
+ var _react = _interopRequireWildcard(require("react"));
13
+
14
+ var _TemplateButton = _interopRequireDefault(require("../TemplateButton"));
15
+
16
+ var _ItemModule = _interopRequireDefault(require("./Item.module.scss"));
17
+
18
+ function Item(props) {
19
+ return /*#__PURE__*/_react["default"].createElement(_TemplateButton["default"], (0, _extends2["default"])({}, props, {
20
+ iconClassName: _ItemModule["default"].icon,
21
+ textClassName: _ItemModule["default"].text
22
+ }));
23
+ }
24
+
25
+ ;
@@ -0,0 +1,9 @@
1
+ .icon {
2
+ width: 72px;
3
+ }
4
+
5
+ .text {
6
+ font-size: 12px;
7
+ margin-top: 15px;
8
+ padding-bottom: 18px;
9
+ }
@@ -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
+ data: layoutOptions,
54
+ boxProps: {
55
+ spacing: 12
56
+ },
57
+ tagProps: {
58
+ className: _LayoutDirectionSelectModule["default"].layoutSelectItem
59
+ },
60
+ ItemComponent: _Item["default"]
61
+ });
62
+ }
63
+
64
+ ;