|
|
@@ -94,8 +94,29 @@ export default {
|
|
|
delete i.childNode;
|
|
|
}
|
|
|
});
|
|
|
+
|
|
|
+ list = this.shakeDeleteNode(list);
|
|
|
return list;
|
|
|
},
|
|
|
+ // 删除没有上级的节点
|
|
|
+ shakeDeleteNode(list) {
|
|
|
+ console.log(selfConfig, "list");
|
|
|
+ let root = JSON.parse(JSON.stringify(list)).filter(i => i.isRoot)[0];
|
|
|
+ let selfConfig = JSON.parse(JSON.stringify(list)).filter(i => !i.isRoot);
|
|
|
+ const ids = list.map(i => i.id);
|
|
|
+ console.log(ids, "ids");
|
|
|
+ let hasNoPidNode = false;
|
|
|
+ // 删除pids没有id的节点
|
|
|
+ selfConfig.forEach(i => {
|
|
|
+ if (i.pids.some(j => !ids.includes(j))) {
|
|
|
+ hasNoPidNode = true;
|
|
|
+ selfConfig = this.deleteNode(selfConfig, i);
|
|
|
+ }
|
|
|
+ });
|
|
|
+ if (root) selfConfig.unshift(root);
|
|
|
+ if (hasNoPidNode) return this.shakeDeleteNode(selfConfig);
|
|
|
+ return selfConfig;
|
|
|
+ },
|
|
|
/**
|
|
|
* 初始化 数据私有化
|
|
|
*/
|
|
|
@@ -111,7 +132,6 @@ export default {
|
|
|
},
|
|
|
clickSelectBox(nextNode) {
|
|
|
let { node, selfConfig } = this.getNodeFactory(nextNode);
|
|
|
- console.log(node, nextNode);
|
|
|
this.selfConfig = selfConfig.concat(node);
|
|
|
},
|
|
|
/**
|
|
|
@@ -192,13 +212,13 @@ export default {
|
|
|
repickConfig.groupId = node.groupId;
|
|
|
repickConfig.id = node.id;
|
|
|
let selfConfig = JSON.parse(JSON.stringify(this.selfConfig));
|
|
|
- console.log("selfConfigselfConfigselfConfig", selfConfig);
|
|
|
this.selfConfig = this.deleteNode(selfConfig, node);
|
|
|
this.repickDeleteArr(repickConfig);
|
|
|
} else {
|
|
|
this.deleteColNode(node);
|
|
|
}
|
|
|
},
|
|
|
+
|
|
|
// 删除节点
|
|
|
deleteNode(selfConfig, node) {
|
|
|
selfConfig = selfConfig.map(i => i.id !== node.id && i).filter(Boolean);
|
|
|
@@ -243,12 +263,12 @@ export default {
|
|
|
},
|
|
|
// 循环遍历删除组下关联节点
|
|
|
deleteLoop(selfConfig, node, deleteArr) {
|
|
|
- console.log(selfConfig, node, "selfConfig");
|
|
|
+ // 获取当前节点下所有关联节点
|
|
|
let currentDeleteArr = selfConfig.filter(i => {
|
|
|
if (i.isRow) {
|
|
|
return i.groupId === node.id;
|
|
|
} else {
|
|
|
- return i.groupPid === node.id;
|
|
|
+ return i.groupPid === node.id || i.groupPid === node.groupId;
|
|
|
}
|
|
|
});
|
|
|
if (currentDeleteArr.length) {
|
|
|
@@ -275,7 +295,6 @@ export default {
|
|
|
}
|
|
|
});
|
|
|
this.selfConfig = selfConfig;
|
|
|
- console.log(selfConfig, repickConfig, "groupPid");
|
|
|
},
|
|
|
//绘制body
|
|
|
drawBody(h, node) {
|