|
@@ -87,6 +87,22 @@ let zTreeOprObj = {
|
|
|
params.doc = rawNode;
|
|
|
CommonAjax.postEx("report_tpl_api/updateTreeRootNode", params, 5000, isAsync, callback, failCallback, null);
|
|
|
},
|
|
|
+ partialUpdateTreeNode: function (rawNode, pathArray, nodeArray, isAsync, callback, failCallback) {
|
|
|
+ // 这个是局部刷新,原理是根据topNodeId找到后台的topNode,根据路径(有多个路径,可以实现多个子节点同时刷新)来替换(nodeArray里的)后台数据库的相关节点
|
|
|
+ // 这里需要一个调整,就是新增目录及模板需要加给后缀(new(Date)).getTime() ,以保证不重叠(真重叠了算倒霉)
|
|
|
+ // path描述:{ operation_type: '', // 操作类型:‘update’ ‘add’、‘delete’
|
|
|
+ // node_path: [], // 节点路径:如:['02.广东', '03.增城北绕线项目定制报表'],表示Top节点的items下的那个‘02.广东’子节点(要full scan)的items下的 ‘03.增城北绕线项目定制报表’子节点
|
|
|
+ // }
|
|
|
+ // nodeArray: 与pathArray一一对应
|
|
|
+ //
|
|
|
+ let params = {};
|
|
|
+ params.compilationId = rawNode.compilationId;
|
|
|
+ params.engineerId = rawNode.engineerId;
|
|
|
+ params.userId = rawNode.userId;
|
|
|
+ params.pathArray = pathArray;
|
|
|
+ params.nodeArray = nodeArray;
|
|
|
+ CommonAjax.postEx("report_tpl_api/partialUpdateTreeNode", params, 5000, isAsync, callback, failCallback, null);
|
|
|
+ },
|
|
|
updateTopNodeName: function (topNode, isAsync, callback, failCallback) {
|
|
|
let params = {};
|
|
|
params.compilationId = topNode.compilationId;
|
|
@@ -128,6 +144,21 @@ let zTreeOprObj = {
|
|
|
}
|
|
|
return rst;
|
|
|
},
|
|
|
+ getNodePath: function(node, includeCurrentNode) {
|
|
|
+ const rst = [];
|
|
|
+ if (includeCurrentNode) {
|
|
|
+ rst.push(node.name);
|
|
|
+ }
|
|
|
+ let parentNode = node.getParentNode();
|
|
|
+ while (parentNode && parentNode.level > 0) { //顶节点是dummy的
|
|
|
+ rst.unshift(parentNode.name);
|
|
|
+ parentNode = parentNode.getParentNode();
|
|
|
+ if (parentNode === null || parentNode === undefined || parentNode.level === 0) {
|
|
|
+ rst.splice(0,1); // 删除头节点(后台不需要)
|
|
|
+ }
|
|
|
+ }
|
|
|
+ return rst;
|
|
|
+ },
|
|
|
buildSubRootNodeDoc: function(subNode) {
|
|
|
let me = this, rst = null;
|
|
|
if (subNode) {
|
|
@@ -181,40 +212,40 @@ let zTreeOprObj = {
|
|
|
let me = zTreeOprObj, sObj = $("#" + treeNode.tId + "_span");
|
|
|
if (treeNode.editNameFlag || $("#addBtn_"+treeNode.tId).length > 0 || treeNode.nodeType === RT.NodeType.TEMPLATE) return;
|
|
|
if (treeNode.level === 0) {
|
|
|
- let addStr = "<span class='button star' id='addBtn_" + treeNode.tId + "' title='新增编办类型' onfocus='this.blur();'></span>";
|
|
|
- sObj.after(addStr);
|
|
|
- let btn = $("#addBtn_"+treeNode.tId);
|
|
|
- if (btn) btn.bind("click", function(){
|
|
|
- let rawNode = me.createIniComilationNode();
|
|
|
- if (!me.chkIfDupCompilationNode(rawNode, treeNode)) {
|
|
|
- rawNode.userId = treeNode.userId;
|
|
|
- me.addNewNodeEx(rawNode, function(rst){
|
|
|
- if (rst) {
|
|
|
- let newNodes = [], isSilent = false;
|
|
|
- rawNode.isParent = true;
|
|
|
- newNodes.push(rawNode);
|
|
|
- if (treeNode.items && treeNode.items.length > 0) {
|
|
|
- let insertIdx = -1;
|
|
|
- for (let i = 0; i < treeNode.items.length; i++) {
|
|
|
- if (treeNode.items[i].compilationId === rawNode.compilationId) {
|
|
|
- if (treeNode.items[i].engineerId > rawNode.engineerId) {
|
|
|
- insertIdx = i;
|
|
|
- break;
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
- me.treeObj.addNodes(treeNode, insertIdx, newNodes, isSilent);
|
|
|
- } else {
|
|
|
- me.treeObj.addNodes(treeNode, 0, newNodes, isSilent);
|
|
|
- }
|
|
|
- } else {
|
|
|
- alert("后台创建失败,请确认是否有重复类型跟节点!")
|
|
|
- }
|
|
|
- }, null);
|
|
|
- } else {
|
|
|
- alert("有重复编办!");
|
|
|
- }
|
|
|
- });
|
|
|
+ // let addStr = "<span class='button star' id='addBtn_" + treeNode.tId + "' title='新增编办类型' onfocus='this.blur();'></span>";
|
|
|
+ // sObj.after(addStr);
|
|
|
+ // let btn = $("#addBtn_"+treeNode.tId);
|
|
|
+ // if (btn) btn.bind("click", function(){
|
|
|
+ // let rawNode = me.createIniComilationNode();
|
|
|
+ // if (!me.chkIfDupCompilationNode(rawNode, treeNode)) {
|
|
|
+ // rawNode.userId = treeNode.userId;
|
|
|
+ // me.addNewNodeEx(rawNode, function(rst){
|
|
|
+ // if (rst) {
|
|
|
+ // let newNodes = [], isSilent = false;
|
|
|
+ // rawNode.isParent = true;
|
|
|
+ // newNodes.push(rawNode);
|
|
|
+ // if (treeNode.items && treeNode.items.length > 0) {
|
|
|
+ // let insertIdx = -1;
|
|
|
+ // for (let i = 0; i < treeNode.items.length; i++) {
|
|
|
+ // if (treeNode.items[i].compilationId === rawNode.compilationId) {
|
|
|
+ // if (treeNode.items[i].engineerId > rawNode.engineerId) {
|
|
|
+ // insertIdx = i;
|
|
|
+ // break;
|
|
|
+ // }
|
|
|
+ // }
|
|
|
+ // }
|
|
|
+ // me.treeObj.addNodes(treeNode, insertIdx, newNodes, isSilent);
|
|
|
+ // } else {
|
|
|
+ // me.treeObj.addNodes(treeNode, 0, newNodes, isSilent);
|
|
|
+ // }
|
|
|
+ // } else {
|
|
|
+ // alert("后台创建失败,请确认是否有重复类型跟节点!")
|
|
|
+ // }
|
|
|
+ // }, null);
|
|
|
+ // } else {
|
|
|
+ // alert("有重复编办!");
|
|
|
+ // }
|
|
|
+ // });
|
|
|
} else {
|
|
|
let addStr = "<span class='button add' id='addBtn_" + treeNode.tId + "' title='新增子目录' onfocus='this.blur();'></span>";
|
|
|
sObj.after(addStr);
|
|
@@ -223,7 +254,7 @@ let zTreeOprObj = {
|
|
|
me.getNewNodeID(1, function (newNodeID) {
|
|
|
let rawNode = me.createIniNode();
|
|
|
rawNode.nodeType = RT.NodeType.NODE;
|
|
|
- rawNode.name = "新增子节点";
|
|
|
+ rawNode.name = "新增子节点" + (new Date()).getTime();
|
|
|
rawNode.ID = newNodeID;
|
|
|
let newNodes = [], isSilent = false;
|
|
|
newNodes.push(rawNode);
|
|
@@ -242,12 +273,28 @@ let zTreeOprObj = {
|
|
|
me.treeObj.addNodes(treeNode, insertIdx, newNodes, isSilent);
|
|
|
let tn = me.getParentNodeByNodeLevel(treeNode, NODE_LEVEL_COMPILATION_NEW);
|
|
|
let newTopNode = me.buildRootNodeDoc(tn);
|
|
|
+
|
|
|
+ //*
|
|
|
+ let pathArr = [];
|
|
|
+ let nodeArr = [];
|
|
|
+ let path = {operation_type: 'add', node_path: []};
|
|
|
+ path.node_path = me.getNodePath(treeNode, true);
|
|
|
+ pathArr.push(path);
|
|
|
+ nodeArr.push(rawNode);
|
|
|
+ me.partialUpdateTreeNode(newTopNode, pathArr, nodeArr, true, function(rst){
|
|
|
+ if (!(rst)) {
|
|
|
+ alert("新增节点失败!");
|
|
|
+ }
|
|
|
+ me.refreshNodes();
|
|
|
+ }, null);
|
|
|
+ /*/
|
|
|
me.updateTreeRootNode(newTopNode, true, function(rst){
|
|
|
if (!(rst)) {
|
|
|
alert("新增节点失败!");
|
|
|
}
|
|
|
me.refreshNodes();
|
|
|
}, null);
|
|
|
+ //*/
|
|
|
}
|
|
|
});
|
|
|
});
|
|
@@ -260,7 +307,7 @@ let zTreeOprObj = {
|
|
|
me.getNewNodeID(1, function (newNodeID) {
|
|
|
let rawNode = me.createIniNode();
|
|
|
rawNode.nodeType = RT.NodeType.TEMPLATE;
|
|
|
- rawNode.name = "新增报表模板";
|
|
|
+ rawNode.name = "新增报表模板" + (new Date()).getTime();
|
|
|
rawNode.ID = newNodeID;
|
|
|
rawNode.released = false;
|
|
|
let newNodes = [], isSilent = false;
|
|
@@ -268,12 +315,27 @@ let zTreeOprObj = {
|
|
|
me.treeObj.addNodes(treeNode, -1, newNodes, isSilent);
|
|
|
let tn = me.getParentNodeByNodeLevel(treeNode, NODE_LEVEL_COMPILATION_NEW);
|
|
|
let topNode = me.buildRootNodeDoc(tn);
|
|
|
+ //*
|
|
|
+ let pathArr = [];
|
|
|
+ let nodeArr = [];
|
|
|
+ let path = {operation_type: 'add', node_path: []};
|
|
|
+ path.node_path = me.getNodePath(treeNode, true);
|
|
|
+ pathArr.push(path);
|
|
|
+ nodeArr.push(rawNode);
|
|
|
+ me.partialUpdateTreeNode(topNode, pathArr, nodeArr, true, function(rst){
|
|
|
+ if (!(rst)) {
|
|
|
+ alert("新增节点失败!");
|
|
|
+ }
|
|
|
+ me.refreshNodes();
|
|
|
+ }, null);
|
|
|
+ /*/
|
|
|
me.updateTreeRootNode(topNode, true, function(rst){
|
|
|
if (!(rst)) {
|
|
|
alert("新增空白模板失败!");
|
|
|
}
|
|
|
me.refreshNodes();
|
|
|
}, null);
|
|
|
+ //*/
|
|
|
});
|
|
|
}
|
|
|
});
|