hookehuyr

fix

...@@ -57,8 +57,7 @@ export function clickSelect(G6) { ...@@ -57,8 +57,7 @@ export function clickSelect(G6) {
57 if (item.get('type') === 'node') { 57 if (item.get('type') === 'node') {
58 selectChangeFlag = true 58 selectChangeFlag = true
59 item.getEdges().forEach(edge => { 59 item.getEdges().forEach(edge => {
60 - // TODO: 暂时屏蔽边的选中状态,因为会影响删除节点时判断逻辑,后面处理 60 + graph.setItemState(edge, SELECTED_STATE, true);
61 - // graph.setItemState(edge, SELECTED_STATE, true);
62 }); 61 });
63 } else { 62 } else {
64 this.onCanvasClick(); 63 this.onCanvasClick();
......
...@@ -264,6 +264,7 @@ export function useEditorCommander(editorState) { ...@@ -264,6 +264,7 @@ export function useEditorCommander(editorState) {
264 264
265 let before; 265 let before;
266 let after; 266 let after;
267 + let select;
267 268
268 return { 269 return {
269 redo: async () => { 270 redo: async () => {
...@@ -271,8 +272,14 @@ export function useEditorCommander(editorState) { ...@@ -271,8 +272,14 @@ export function useEditorCommander(editorState) {
271 const { beforeDelete, afterDelete } = editorState.props; 272 const { beforeDelete, afterDelete } = editorState.props;
272 273
273 before = clone(graph.save()); 274 before = clone(graph.save());
275 + select = getSelected(graph);
276 + // TAG: 处理节点和边的删除问题,当节点和边都存在时,只判断节点的关系
277 + if (select.nodes.length && select.edges.length) {
278 + select.edges = [];
279 + }
280 +
274 await Promise.all( 281 await Promise.all(
275 - flatten(Object.values(getSelected(graph))).map(async (i) => { 282 + flatten(Object.values(select)).map(async (i) => {
276 const model = i.get("model"); 283 const model = i.get("model");
277 const type = i.get("type"); 284 const type = i.get("type");
278 try { 285 try {
......
...@@ -22,7 +22,7 @@ export default { ...@@ -22,7 +22,7 @@ export default {
22 toolbarButtonHandler: {type: Function}, // 工具栏按钮格式化函数 22 toolbarButtonHandler: {type: Function}, // 工具栏按钮格式化函数
23 loading: {type: Boolean}, // 是否开启编辑器的loading状态 23 loading: {type: Boolean}, // 是否开启编辑器的loading状态
24 24
25 - multipleSelect: {type: Boolean, default: true}, // 是否可以多选 25 + multipleSelect: {type: Boolean, default: false}, // 是否可以多选
26 26
27 beforeDelete: {type: Function}, // 删除前校验 27 beforeDelete: {type: Function}, // 删除前校验
28 afterDelete: {type: Function}, // 删除后动作 28 afterDelete: {type: Function}, // 删除后动作
......