|
@@ -579,30 +579,35 @@ var idTree = {
|
|
|
|
|
|
Tree.prototype.delete = function (node) {
|
|
|
var success = false, that = this;
|
|
|
- var deleteIdIndex = function (nodes) {
|
|
|
+ if(node) success = that.m_delete([node]);
|
|
|
+ return success;
|
|
|
+ };
|
|
|
+ Tree.prototype.m_delete = function (nodes) {
|
|
|
+ let success = false, that = this;
|
|
|
+ let deleteIdIndex = function (nodes) {
|
|
|
nodes.forEach(function (node) {
|
|
|
delete that.nodes[that.prefix + node.getID()];
|
|
|
deleteIdIndex(node.children);
|
|
|
})
|
|
|
- }
|
|
|
- if (node) {
|
|
|
- deleteIdIndex([node]);
|
|
|
- //delete this.nodes[this.prefix + node.getID()];
|
|
|
- if (node.preSibling) {
|
|
|
- node.preSibling.setNextSibling(node.nextSibling);
|
|
|
- } else if (node.nextSibling) {
|
|
|
- node.nextSibling.preSibling = null;
|
|
|
- }
|
|
|
- if (node.parent) {
|
|
|
- node.parent.children.splice(node.siblingIndex(), 1);
|
|
|
+ };
|
|
|
+ for(let n of nodes){
|
|
|
+ deleteIdIndex([n]);
|
|
|
+ if (n.preSibling) {
|
|
|
+ n.preSibling.setNextSibling(n.nextSibling);
|
|
|
+ } else if (n.nextSibling) {
|
|
|
+ n.nextSibling.preSibling = null;
|
|
|
+ }
|
|
|
+ if (n.parent) {
|
|
|
+ n.parent.children.splice(n.siblingIndex(), 1);
|
|
|
} else {
|
|
|
- this.roots.splice(node.siblingIndex(), 1);
|
|
|
+ this.roots.splice(n.siblingIndex(), 1);
|
|
|
}
|
|
|
- tools.sortTreeItems(this);
|
|
|
- success = true;
|
|
|
}
|
|
|
+ tools.sortTreeItems(this);
|
|
|
+ success = true;
|
|
|
return success;
|
|
|
};
|
|
|
+
|
|
|
Tree.prototype.getDeleteData = function (node) {
|
|
|
var data = [];
|
|
|
var addUpdateDataForDelete = function (datas, nodes) {
|
|
@@ -621,6 +626,37 @@ var idTree = {
|
|
|
}
|
|
|
return data;
|
|
|
};
|
|
|
+ Tree.prototype.getDeleteDatas = function (deleteMap,deleteNodes){//批量删除
|
|
|
+ let datas = [];
|
|
|
+ addDeleteDatas(datas,deleteNodes);
|
|
|
+ for(let d of deleteNodes){
|
|
|
+ addPreUpdateData(datas,deleteMap,d.preSibling,d.nextSibling);
|
|
|
+ }
|
|
|
+ function addPreUpdateData(updateDatas,map,preSibling,nextSibling) {
|
|
|
+ if(preSibling && (map[preSibling.getID()] == undefined || map[preSibling.getID()] == null)){
|
|
|
+ if(nextSibling){
|
|
|
+ if(map[nextSibling.getID()]){//如果下一个节点也是要删除的,则再往下顺延
|
|
|
+ addPreUpdateData(updateDatas,map,preSibling,nextSibling.nextSibling);
|
|
|
+ }else {
|
|
|
+ updateDatas.push({type: 'update', data: preSibling.tree.getDataTemplate(preSibling.getID(), preSibling.getParentID(),nextSibling.getID())});
|
|
|
+ }
|
|
|
+ }else {
|
|
|
+ updateDatas.push({type: 'update', data: preSibling.tree.getDataTemplate(preSibling.getID(), preSibling.getParentID(),-1)});
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ function addDeleteDatas(dataArray,nodes) {
|
|
|
+ for(let n of nodes){
|
|
|
+ let delData = {};
|
|
|
+ delData[n.tree.setting.id] = n.getID();
|
|
|
+ dataArray.push({type: 'delete', data: delData});
|
|
|
+ addDeleteDatas(dataArray,n.children);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ return datas;
|
|
|
+ };
|
|
|
+
|
|
|
|
|
|
/*Tree.prototype.editedData = function (field, id, newText) {
|
|
|
var node = this.findNode(id), result = {allow: false, nodes: []};
|