@riil-frontend/component-topology 2.15.9 → 2.15.12

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.
@@ -10,7 +10,10 @@ export default function LayerResourceList(props) {
10
10
  var topo = props.topo,
11
11
  layer = props.layer;
12
12
  var nodes = getLayerChildrenNodes(layer);
13
- var data = nodes.map(function (node) {
13
+ var relateDataNodes = nodes.filter(function (node) {
14
+ return !!node.getTag();
15
+ });
16
+ var data = relateDataNodes.map(function (node) {
14
17
  return {
15
18
  title: node.a('name'),
16
19
  img: getIconById(node.getImage(), topo)
@@ -19,7 +19,7 @@ import GraphDataModel from "./GraphDataModel";
19
19
  import { updateEdgeExpanded } from "../utils/edgeUtil";
20
20
  import PluginManager from "./PluginManager"; // eslint-disable-next-line no-undef
21
21
 
22
- var version = typeof "2.15.9" === 'string' ? "2.15.9" : null;
22
+ var version = typeof "2.15.12" === 'string' ? "2.15.12" : null;
23
23
  console.info("\u62D3\u6251\u7248\u672C: " + version);
24
24
  var topoDebug = {};
25
25
  window.topoDebug = topoDebug;
@@ -2,12 +2,18 @@ import _Button from "@alifd/next/es/button";
2
2
  import React from "react";
3
3
  import LindInfoPreview from "../../link/LindInfoPreview";
4
4
  import styles from "../../link/LindInfoPreview.module.scss";
5
+ import rlog from "@riil-frontend/component-topology-utils/es/rlog";
6
+ import { getLinkPermission } from "../../../../../../utils/linPermissionUtil";
5
7
  export default function LinkDataTab(props) {
6
8
  var topo = props.topo,
7
9
  edge = props.edge,
8
- editorProps = props.editorProps;
9
- var operation = props.edge.a("operation");
10
- var disabled = ["delete", "write"].indexOf(operation) < 0; // 节点间只有连线组时,显示连线组的数据
10
+ editorProps = props.editorProps; // const operation = props.edge.a("operation");
11
+
12
+ var nodes = topo.dataModel.getNodes(); //rlog.debug("LinkDataTab--edge", edge, nodes);
13
+ // const disabled = ["delete", "write"].indexOf(operation) < 0;
14
+
15
+ var permission = getLinkPermission(edge.getAttrObject(), nodes); //rlog.debug("LinkDataTab--", permission);
16
+ // 节点间只有连线组时,显示连线组的数据
11
17
 
12
18
  var _topo$store$useModelS = topo.store.useModelState("topoMod").data,
13
19
  links = _topo$store$useModelS.links,
@@ -38,7 +44,7 @@ export default function LinkDataTab(props) {
38
44
  }, /*#__PURE__*/React.createElement(_Button, {
39
45
  className: styles.button,
40
46
  type: "primary",
41
- disabled: disabled,
47
+ disabled: !permission.writeable,
42
48
  onClick: openEditLinkDrawer
43
49
  }, "\u7F16\u8F91")));
44
50
  }
@@ -13,6 +13,7 @@ import TopoCenterEvent from "../../../../../event";
13
13
  import EditLinkInfo from "./components/editLinkInfo";
14
14
  import styles from "./index.module.scss";
15
15
  import service from "./server";
16
+ import { clone } from "../../../../../../utils/copyUtil";
16
17
  var CollapsePanel = _Collapse.Panel;
17
18
 
18
19
  function AddLinkDrawer(props) {
@@ -245,7 +246,7 @@ function AddLinkDrawer(props) {
245
246
  rlog.debug("加载哪些ci类型可创建链路", ciTypesConnectable, topo, nodes);
246
247
  ciIds = [];
247
248
  nodes.map(function (node) {
248
- if (ciTypesConnectable[node.ciType]) {
249
+ if (ciTypesConnectable[node.ciType] && ["delete", "write"].indexOf(node.operation) >= 0) {
249
250
  ciIds.push(node.id);
250
251
  }
251
252
  });
@@ -321,7 +322,7 @@ function AddLinkDrawer(props) {
321
322
  var _linkNodesRef$current = linkNodesRef.current,
322
323
  source = _linkNodesRef$current.source,
323
324
  target = _linkNodesRef$current.target;
324
- rlog.debug("获取两个节点间的连线数据列表", source, target, htTopo);
325
+ rlog.debug("addLinkToGraph", source, target, htTopo);
325
326
 
326
327
  try {
327
328
  // 获取两个节点间的连线数据列表
@@ -351,7 +352,7 @@ function AddLinkDrawer(props) {
351
352
 
352
353
  topo.getGraphView().dm().sm().ss(topo.getDataModel().getDataByTag(linkData.id));
353
354
  } catch (error) {
354
- rlog.error("获取两个节点间的连线数据列表", error);
355
+ rlog.error("addLinkToGraph", error);
355
356
  }
356
357
  };
357
358
 
@@ -425,7 +426,7 @@ function AddLinkDrawer(props) {
425
426
  });
426
427
  isAgg = data["network_link.connect_type"] === "agg";
427
428
  addLinkToGraph({
428
- linkData: linkData,
429
+ linkData: clone(linkData),
429
430
  isAgg: isAgg
430
431
  });
431
432
  } else {
@@ -466,6 +467,7 @@ function AddLinkDrawer(props) {
466
467
  lineData: link,
467
468
  topo: topo,
468
469
  onClose: closeDrawer,
470
+ addLinkIsOpen: addLinkIsOpen,
469
471
  onSave: onSave,
470
472
  loading: loading,
471
473
  isAdd: isAddMode
@@ -25,6 +25,7 @@ export default function EditLinkInfo(props) {
25
25
  var topo = props.topo,
26
26
  lineData = props.lineData,
27
27
  onClose = props.onClose,
28
+ addLinkIsOpen = props.addLinkIsOpen,
28
29
  onSave = props.onSave,
29
30
  isAdd = props.isAdd,
30
31
  loading = props.loading;
@@ -41,45 +42,57 @@ export default function EditLinkInfo(props) {
41
42
 
42
43
  var source = lineData.source,
43
44
  target = lineData.target,
44
- attributes = lineData.attributes;
45
+ attributes = lineData.attributes; // rlog.debug("lineData-----init", source, target, targetValue.portsDoc);
45
46
 
46
47
  var _useState = useState(attributes),
47
48
  valus = _useState[0],
48
49
  setValus = _useState[1];
49
50
 
50
- var field = _Field.useField({
51
- autoUnmount: false,
52
- values: parseValues(attributes),
53
- onChange: function onChange(name, value) {
54
- if (name === "source_id" || name === "destination_id") {
55
- var _parseInt, _source$portsDoc$sour, _parseInt2, _target$portsDoc$targ;
51
+ var _useState2 = useState(source),
52
+ sourceValue = _useState2[0],
53
+ setSource = _useState2[1];
56
54
 
57
- var nowValues = field.getValues();
58
- var sourceId = nowValues["source_id"];
59
- var targetId = nowValues["destination_id"]; // rlog.debug("Field-onChange-otherName", nowValues, sourceId, targetId);
55
+ var _useState3 = useState(target),
56
+ targetValue = _useState3[0],
57
+ setTarget = _useState3[1];
60
58
 
61
- var sourceRb = (_parseInt = parseInt((_source$portsDoc$sour = source.portsDoc[sourceId]) === null || _source$portsDoc$sour === void 0 ? void 0 : _source$portsDoc$sour.ratedBandwidth, 10)) !== null && _parseInt !== void 0 ? _parseInt : 0;
62
- var targetRb = (_parseInt2 = parseInt((_target$portsDoc$targ = target.portsDoc[targetId]) === null || _target$portsDoc$targ === void 0 ? void 0 : _target$portsDoc$targ.ratedBandwidth, 10)) !== null && _parseInt2 !== void 0 ? _parseInt2 : null;
59
+ var fieldOnChange = function fieldOnChange(name, value) {
60
+ if (name === "source_id" || name === "destination_id") {
61
+ var _parseInt, _sourceValue$portsDoc, _parseInt2, _targetValue$portsDoc;
63
62
 
64
- if (sourceRb && targetRb) {
65
- field.setValue("network_link.actual_bandwidth", Math.min(sourceRb, targetRb));
66
- } else {
67
- field.setValue("network_link.actual_bandwidth", sourceRb || targetRb);
68
- }
69
- }
63
+ var nowValues = field.getValues();
64
+ var sourceId = nowValues["source_id"];
65
+ var targetId = nowValues["destination_id"];
66
+ var sourceRb = (_parseInt = parseInt((_sourceValue$portsDoc = sourceValue.portsDoc[sourceId]) === null || _sourceValue$portsDoc === void 0 ? void 0 : _sourceValue$portsDoc.ratedBandwidth, 10)) !== null && _parseInt !== void 0 ? _parseInt : 0;
67
+ var targetRb = (_parseInt2 = parseInt((_targetValue$portsDoc = targetValue.portsDoc[targetId]) === null || _targetValue$portsDoc === void 0 ? void 0 : _targetValue$portsDoc.ratedBandwidth, 10)) !== null && _parseInt2 !== void 0 ? _parseInt2 : null;
70
68
 
71
- var newValues = field.getValues();
72
- rlog.debug("Field-onChange", newValues, name, value);
73
- setValus(newValues); // if (values[name] !== value) {
74
- // onChange(name, value, newValues);
75
- // }
69
+ if (sourceRb && targetRb) {
70
+ field.setValue("network_link.actual_bandwidth", Math.min(sourceRb, targetRb));
71
+ } else {
72
+ field.setValue("network_link.actual_bandwidth", sourceRb || targetRb);
73
+ }
76
74
  }
75
+
76
+ var newValues = field.getValues();
77
+ rlog.debug("Field-onChange", newValues, name, value);
78
+ setValus(newValues); // if (values[name] !== value) {
79
+ // onChange(name, value, newValues);
80
+ // }
81
+ };
82
+
83
+ var field = _Field.useField({
84
+ autoUnmount: false,
85
+ values: parseValues(attributes),
86
+ onChange: fieldOnChange
77
87
  });
78
88
 
79
89
  useEffect(function () {
80
90
  setValus(attributes);
91
+ rlog.debug("useEffect", source, target);
92
+ setSource(source);
93
+ setTarget(target);
81
94
  field.setValues(attributes);
82
- }, [attributes]); // const [editState, editDispatchers] = store.useModel("topoCreateMod");
95
+ }, [addLinkIsOpen]); // const [editState, editDispatchers] = store.useModel("topoCreateMod");
83
96
 
84
97
  var labelAlign = "top";
85
98
  var formItemLayout = {
@@ -114,22 +127,22 @@ export default function EditLinkInfo(props) {
114
127
  if (errors) {
115
128
  rlog.debug("saveHandleChange-error", errors, values);
116
129
  } else {
117
- var _source$portsDoc$sour2, _source$portsDoc$sour3, _target$portsDoc$dest, _target$portsDoc$dest2, _source$ipAddress, _target$ipAddress;
130
+ var _sourceValue$portsDoc2, _sourceValue$portsDoc3, _targetValue$portsDoc2, _targetValue$portsDoc3, _sourceValue$ipAddres, _targetValue$ipAddres;
118
131
 
119
132
  rlog.debug("saveHandleChange", valus, source, target);
120
133
  var sourceId = valus["source_id"];
121
134
  var destinationId = valus["destination_id"];
122
- var sourceType = (_source$portsDoc$sour2 = (_source$portsDoc$sour3 = source.portsDoc[sourceId]) === null || _source$portsDoc$sour3 === void 0 ? void 0 : _source$portsDoc$sour3.type) !== null && _source$portsDoc$sour2 !== void 0 ? _source$portsDoc$sour2 : "";
123
- var destinationType = (_target$portsDoc$dest = (_target$portsDoc$dest2 = target.portsDoc[destinationId]) === null || _target$portsDoc$dest2 === void 0 ? void 0 : _target$portsDoc$dest2.type) !== null && _target$portsDoc$dest !== void 0 ? _target$portsDoc$dest : "";
135
+ var sourceType = (_sourceValue$portsDoc2 = (_sourceValue$portsDoc3 = sourceValue.portsDoc[sourceId]) === null || _sourceValue$portsDoc3 === void 0 ? void 0 : _sourceValue$portsDoc3.type) !== null && _sourceValue$portsDoc2 !== void 0 ? _sourceValue$portsDoc2 : "";
136
+ var destinationType = (_targetValue$portsDoc2 = (_targetValue$portsDoc3 = targetValue.portsDoc[destinationId]) === null || _targetValue$portsDoc3 === void 0 ? void 0 : _targetValue$portsDoc3.type) !== null && _targetValue$portsDoc2 !== void 0 ? _targetValue$portsDoc2 : "";
124
137
  var typeJudge = linkTypeJudge(sourceType, destinationType);
125
138
  var obj = {
126
139
  display_name: valus["display_name"],
127
140
  // 链路名称
128
141
  name: valus["display_name"],
129
142
  // 链路名称
130
- "network_link.source_ipv4": (_source$ipAddress = source.ipAddress) !== null && _source$ipAddress !== void 0 ? _source$ipAddress : valus["network_link.source_ipv4"],
143
+ "network_link.source_ipv4": (_sourceValue$ipAddres = sourceValue.ipAddress) !== null && _sourceValue$ipAddres !== void 0 ? _sourceValue$ipAddres : valus["network_link.source_ipv4"],
131
144
  // 源IP
132
- "network_link.destination_ipv4": (_target$ipAddress = target.ipAddress) !== null && _target$ipAddress !== void 0 ? _target$ipAddress : valus["network_link.destination_ipv4"],
145
+ "network_link.destination_ipv4": (_targetValue$ipAddres = targetValue.ipAddress) !== null && _targetValue$ipAddres !== void 0 ? _targetValue$ipAddres : valus["network_link.destination_ipv4"],
133
146
  // 目的IP
134
147
  // source_id, // 源端口
135
148
  // destination_id, // 目的端口
@@ -139,9 +152,9 @@ export default function EditLinkInfo(props) {
139
152
  // 用途
140
153
  // source_type, // 必须
141
154
  // destination_type, // 必须
142
- "network_link.source_device_id": source.id,
155
+ "network_link.source_device_id": sourceValue.id,
143
156
  // 必须
144
- "network_link.destination_device_id": target.id,
157
+ "network_link.destination_device_id": targetValue.id,
145
158
  // 必须
146
159
  "network_link.connect_type": typeJudge.connect,
147
160
  // 必须
@@ -207,23 +220,23 @@ export default function EditLinkInfo(props) {
207
220
  label: "\u6E90\u8282\u70B9\u540D\u79F0"
208
221
  }), /*#__PURE__*/React.createElement("div", {
209
222
  className: styles.label
210
- }, source.name))), /*#__PURE__*/React.createElement(Col, {
223
+ }, sourceValue.name))), /*#__PURE__*/React.createElement(Col, {
211
224
  span: "12"
212
225
  }, /*#__PURE__*/React.createElement(FormItem, _extends({}, formItemLayout, {
213
226
  labelAlign: labelAlign,
214
227
  label: "\u76EE\u7684\u8282\u70B9\u540D\u79F0"
215
228
  }), /*#__PURE__*/React.createElement("div", {
216
229
  className: styles.label
217
- }, target.name)))), /*#__PURE__*/React.createElement(Row, {
230
+ }, targetValue.name)))), /*#__PURE__*/React.createElement(Row, {
218
231
  gutter: "4"
219
232
  }, /*#__PURE__*/React.createElement(Col, {
220
233
  span: "12"
221
234
  }, /*#__PURE__*/React.createElement(FormItem, _extends({}, formItemLayout, {
222
235
  labelAlign: labelAlign,
223
236
  label: "\u6E90\u8282\u70B9IP"
224
- }), source.ipAddress ? /*#__PURE__*/React.createElement("div", {
237
+ }), sourceValue.ipAddress ? /*#__PURE__*/React.createElement("div", {
225
238
  className: styles.label
226
- }, source.ipAddress) : /*#__PURE__*/React.createElement(_Input, {
239
+ }, sourceValue.ipAddress) : /*#__PURE__*/React.createElement(_Input, {
227
240
  placeholder: "\u8BF7\u8F93\u5165",
228
241
  name: "network_link.source_ipv4",
229
242
  maxLength: 128
@@ -232,9 +245,9 @@ export default function EditLinkInfo(props) {
232
245
  }, /*#__PURE__*/React.createElement(FormItem, _extends({}, formItemLayout, {
233
246
  labelAlign: labelAlign,
234
247
  label: "\u76EE\u7684\u8282\u70B9IP"
235
- }), target.ipAddress ? /*#__PURE__*/React.createElement("div", {
248
+ }), targetValue.ipAddress ? /*#__PURE__*/React.createElement("div", {
236
249
  className: styles.label
237
- }, target.ipAddress) : /*#__PURE__*/React.createElement(_Input, {
250
+ }, targetValue.ipAddress) : /*#__PURE__*/React.createElement(_Input, {
238
251
  placeholder: "\u8BF7\u8F93\u5165",
239
252
  name: "network_link.destination_ipv4",
240
253
  maxLength: 128
@@ -247,11 +260,12 @@ export default function EditLinkInfo(props) {
247
260
  label: "\u6E90\u7AEF\u53E3",
248
261
  required: true,
249
262
  requiredMessage: "\u6E90\u7AEF\u53E3\u4E0D\u80FD\u4E3A\u7A7A"
250
- }), source.ipAddress ? /*#__PURE__*/React.createElement(_Select, {
263
+ }), sourceValue.ipAddress ? /*#__PURE__*/React.createElement(_Select, {
251
264
  name: "source_id",
265
+ disabled: sourceValue.ports.length === 0,
252
266
  className: styles.selectList,
253
267
  onChange: portsHandleChange,
254
- dataSource: source.ports
268
+ dataSource: sourceValue.ports
255
269
  }) : "-")), /*#__PURE__*/React.createElement(Col, {
256
270
  span: "12"
257
271
  }, /*#__PURE__*/React.createElement(FormItem, _extends({}, formItemLayout, {
@@ -259,11 +273,12 @@ export default function EditLinkInfo(props) {
259
273
  label: "\u76EE\u7684\u7AEF\u53E3",
260
274
  required: true,
261
275
  requiredMessage: "\u76EE\u7684\u7AEF\u53E3\u4E0D\u80FD\u4E3A\u7A7A"
262
- }), target.ipAddress ? /*#__PURE__*/React.createElement(_Select, {
276
+ }), targetValue.ipAddress ? /*#__PURE__*/React.createElement(_Select, {
263
277
  name: "destination_id",
278
+ disabled: targetValue.ports.length === 0,
264
279
  className: styles.selectList,
265
280
  onChange: portsHandleChange,
266
- dataSource: target.ports
281
+ dataSource: targetValue.ports
267
282
  }) : "-"))), /*#__PURE__*/React.createElement(Row, {
268
283
  gutter: "4"
269
284
  }, /*#__PURE__*/React.createElement(Col, {
@@ -273,14 +288,14 @@ export default function EditLinkInfo(props) {
273
288
  label: "\u8D44\u6E90\u7C7B\u578B"
274
289
  }), /*#__PURE__*/React.createElement("div", {
275
290
  className: styles.label
276
- }, source.ciName))), /*#__PURE__*/React.createElement(Col, {
291
+ }, sourceValue.ciName))), /*#__PURE__*/React.createElement(Col, {
277
292
  span: "12"
278
293
  }, /*#__PURE__*/React.createElement(FormItem, _extends({}, formItemLayout, {
279
294
  labelAlign: labelAlign,
280
295
  label: "\u8D44\u6E90\u7C7B\u578B"
281
296
  }), /*#__PURE__*/React.createElement("div", {
282
297
  className: styles.label
283
- }, target.ciName)))), /*#__PURE__*/React.createElement(Row, {
298
+ }, targetValue.ciName)))), /*#__PURE__*/React.createElement(Row, {
284
299
  gutter: "4"
285
300
  }, /*#__PURE__*/React.createElement(Col, {
286
301
  span: "24"
@@ -330,7 +345,7 @@ export default function EditLinkInfo(props) {
330
345
  className: styles.footer
331
346
  }, /*#__PURE__*/React.createElement(_Button, {
332
347
  className: styles.button,
333
- disabled: !source.ipAddress,
348
+ disabled: !sourceValue.ipAddress,
334
349
  type: "primary",
335
350
  loading: loading,
336
351
  onClick: saveHandleChange
@@ -1,10 +1,11 @@
1
1
  import _extends from "@babel/runtime/helpers/extends";
2
- import _Message from "@alifd/next/es/message";
3
2
  import _asyncToGenerator from "@babel/runtime/helpers/asyncToGenerator";
3
+ import _Message from "@alifd/next/es/message";
4
4
  import _Dialog from "@alifd/next/es/dialog";
5
5
  import _regeneratorRuntime from "@babel/runtime/regenerator";
6
6
  import rlog from '@riil-frontend/component-topology-utils/es/rlog';
7
7
  import linkService from "../../services/link";
8
+ import { getLinkPermission } from "../../utils/linPermissionUtil";
8
9
  /**
9
10
  * 删除连线
10
11
  */
@@ -26,11 +27,24 @@ export default (function (_ref) {
26
27
  });
27
28
  };
28
29
 
30
+ function checkLinkDeleteable(link) {
31
+ var _getLinkPermission = getLinkPermission(link, topo.dataModel.getNodes()),
32
+ deleteable = _getLinkPermission.deleteable;
33
+
34
+ if (deleteable) {
35
+ return deleteable;
36
+ }
37
+
38
+ _Message.notice('无删除权限');
39
+
40
+ return deleteable;
41
+ }
42
+
29
43
  var deleteLink = function deleteLink(edge) {
30
44
  var id = edge.getTag();
31
45
  var link = topo.dataModel.getDataById(id);
32
46
 
33
- if (!link || link.operation !== 'delete') {
47
+ if (!checkLinkDeleteable(link)) {
34
48
  return;
35
49
  }
36
50
 
@@ -136,6 +150,9 @@ export default (function (_ref) {
136
150
  } else if (!htTopo.isEdgeGroupAgent(edge)) {
137
151
  // 判断当前状态是子连线
138
152
  deleteNoBindEdge(edge);
153
+ } else {
154
+ // 删除连线组
155
+ _Message.notice('连线组无法删除');
139
156
  }
140
157
  };
141
158
 
@@ -0,0 +1,24 @@
1
+ /**
2
+ * 获得链路权限
3
+ *
4
+ * @param {*} link
5
+ * @param {*} nodes
6
+ * @returns
7
+ */
8
+ export function getLinkPermission(link, nodes) {
9
+ var source = nodes.find(function (node) {
10
+ return node.id === link.source;
11
+ });
12
+ var target = nodes.find(function (node) {
13
+ return node.id === link.target;
14
+ });
15
+ return {
16
+ readable: source.operation || target.operation,
17
+ writeable: [source, target].filter(function (node) {
18
+ return ['write', 'delete'].indexOf(node.operation) !== -1;
19
+ }).length === 2,
20
+ deleteable: [source, target].filter(function (node) {
21
+ return ['write', 'delete'].indexOf(node.operation) !== -1;
22
+ }).length >= 1
23
+ };
24
+ }
@@ -0,0 +1,6 @@
1
+ export function copy(o) {
2
+ return JSON.parse(JSON.stringify(o));
3
+ }
4
+ export function clone(o) {
5
+ return JSON.parse(JSON.stringify(o));
6
+ }
@@ -24,7 +24,10 @@ function LayerResourceList(props) {
24
24
  var topo = props.topo,
25
25
  layer = props.layer;
26
26
  var nodes = (0, _htElementUtils.getLayerChildrenNodes)(layer);
27
- var data = nodes.map(function (node) {
27
+ var relateDataNodes = nodes.filter(function (node) {
28
+ return !!node.getTag();
29
+ });
30
+ var data = relateDataNodes.map(function (node) {
28
31
  return {
29
32
  title: node.a('name'),
30
33
  img: (0, _icon.getIconById)(node.getImage(), topo)
@@ -46,7 +46,7 @@ var _edgeUtil = require("../utils/edgeUtil");
46
46
  var _PluginManager = _interopRequireDefault(require("./PluginManager"));
47
47
 
48
48
  // eslint-disable-next-line no-undef
49
- var version = typeof "2.15.9" === 'string' ? "2.15.9" : null;
49
+ var version = typeof "2.15.12" === 'string' ? "2.15.12" : null;
50
50
  console.info("\u62D3\u6251\u7248\u672C: " + version);
51
51
  var topoDebug = {};
52
52
  window.topoDebug = topoDebug;
@@ -13,12 +13,20 @@ var _LindInfoPreview = _interopRequireDefault(require("../../link/LindInfoPrevie
13
13
 
14
14
  var _LindInfoPreviewModule = _interopRequireDefault(require("../../link/LindInfoPreview.module.scss"));
15
15
 
16
+ var _rlog = _interopRequireDefault(require("@riil-frontend/component-topology-utils/es/rlog"));
17
+
18
+ var _linPermissionUtil = require("../../../../../../utils/linPermissionUtil");
19
+
16
20
  function LinkDataTab(props) {
17
21
  var topo = props.topo,
18
22
  edge = props.edge,
19
- editorProps = props.editorProps;
20
- var operation = props.edge.a("operation");
21
- var disabled = ["delete", "write"].indexOf(operation) < 0; // 节点间只有连线组时,显示连线组的数据
23
+ editorProps = props.editorProps; // const operation = props.edge.a("operation");
24
+
25
+ var nodes = topo.dataModel.getNodes(); //rlog.debug("LinkDataTab--edge", edge, nodes);
26
+ // const disabled = ["delete", "write"].indexOf(operation) < 0;
27
+
28
+ var permission = (0, _linPermissionUtil.getLinkPermission)(edge.getAttrObject(), nodes); //rlog.debug("LinkDataTab--", permission);
29
+ // 节点间只有连线组时,显示连线组的数据
22
30
 
23
31
  var _topo$store$useModelS = topo.store.useModelState("topoMod").data,
24
32
  links = _topo$store$useModelS.links,
@@ -49,7 +57,7 @@ function LinkDataTab(props) {
49
57
  }, /*#__PURE__*/_react["default"].createElement(_button["default"], {
50
58
  className: _LindInfoPreviewModule["default"].button,
51
59
  type: "primary",
52
- disabled: disabled,
60
+ disabled: !permission.writeable,
53
61
  onClick: openEditLinkDrawer
54
62
  }, "\u7F16\u8F91")));
55
63
  }
@@ -33,6 +33,8 @@ var _indexModule = _interopRequireDefault(require("./index.module.scss"));
33
33
 
34
34
  var _server = _interopRequireDefault(require("./server"));
35
35
 
36
+ var _copyUtil = require("../../../../../../utils/copyUtil");
37
+
36
38
  function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
37
39
 
38
40
  function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { "default": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj["default"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
@@ -278,7 +280,7 @@ function AddLinkDrawer(props) {
278
280
 
279
281
  ciIds = [];
280
282
  nodes.map(function (node) {
281
- if (ciTypesConnectable[node.ciType]) {
283
+ if (ciTypesConnectable[node.ciType] && ["delete", "write"].indexOf(node.operation) >= 0) {
282
284
  ciIds.push(node.id);
283
285
  }
284
286
  });
@@ -360,7 +362,7 @@ function AddLinkDrawer(props) {
360
362
  source = _linkNodesRef$current.source,
361
363
  target = _linkNodesRef$current.target;
362
364
 
363
- _rlog["default"].debug("获取两个节点间的连线数据列表", source, target, htTopo);
365
+ _rlog["default"].debug("addLinkToGraph", source, target, htTopo);
364
366
 
365
367
  try {
366
368
  // 获取两个节点间的连线数据列表
@@ -390,7 +392,7 @@ function AddLinkDrawer(props) {
390
392
 
391
393
  topo.getGraphView().dm().sm().ss(topo.getDataModel().getDataByTag(linkData.id));
392
394
  } catch (error) {
393
- _rlog["default"].error("获取两个节点间的连线数据列表", error);
395
+ _rlog["default"].error("addLinkToGraph", error);
394
396
  }
395
397
  };
396
398
 
@@ -465,7 +467,7 @@ function AddLinkDrawer(props) {
465
467
  });
466
468
  isAgg = data["network_link.connect_type"] === "agg";
467
469
  addLinkToGraph({
468
- linkData: linkData,
470
+ linkData: (0, _copyUtil.clone)(linkData),
469
471
  isAgg: isAgg
470
472
  });
471
473
  } else {
@@ -507,6 +509,7 @@ function AddLinkDrawer(props) {
507
509
  lineData: link,
508
510
  topo: topo,
509
511
  onClose: closeDrawer,
512
+ addLinkIsOpen: addLinkIsOpen,
510
513
  onSave: onSave,
511
514
  loading: loading,
512
515
  isAdd: isAddMode