|
@@ -4,7 +4,6 @@ let rptTplObj = {
|
|
|
iniPage: function() {
|
|
|
zTreeOprObj.iniEngineerIdList();
|
|
|
zTreeOprObj.getCompilationList();
|
|
|
- // zTreeOprObj.getReportTemplateTree(RT.GrpType.CONSTRUCT);
|
|
|
bandTreeOprObj.getReportTplCfg();
|
|
|
selectableFiledTreeOprObj.iniTree();
|
|
|
preview_util.drawBorder($("#tplCanvas")[0]);
|
|
@@ -52,59 +51,47 @@ let zTreeOprObj = {
|
|
|
}
|
|
|
me.treeObj.refresh();
|
|
|
},
|
|
|
- updateNodes: function(nodes){
|
|
|
- if (nodes && nodes.length > 0) {
|
|
|
- let me = this;
|
|
|
- for (let i = 0; i < nodes.length; i++) {
|
|
|
- if (nodes[i].__v != null) node.__v = nodes[i].__v + 1
|
|
|
- else nodes[i].__v = 0;
|
|
|
- }
|
|
|
- let params = {};
|
|
|
- params.nodes = nodes;
|
|
|
- CommonAjax.postEx("report_tpl_api/updateRptTplNodes", params, 5000, true, null, null, null);
|
|
|
- }
|
|
|
- },
|
|
|
- removeTreeRootNode: function(rawNode, isSync, callback, failCallback) {
|
|
|
+ removeTreeRootNode: function(rawNode, isAsync, callback, failCallback) {
|
|
|
let params = {};
|
|
|
params.compilationId = rawNode.compilationId;
|
|
|
params.engineerId = rawNode.engineerId;
|
|
|
params.userId = rawNode.userId;
|
|
|
params.isPhysically = true;
|
|
|
- CommonAjax.postEx("report_tpl_api/removeTreeRootNode", params, 5000, isSync, callback, failCallback, null);
|
|
|
+ CommonAjax.postEx("report_tpl_api/removeTreeRootNode", params, 5000, isAsync, callback, failCallback, null);
|
|
|
},
|
|
|
- updateTreeRootNode: function(rawNode, isSync, callback, failCallback) {
|
|
|
+ updateTreeRootNode: function(rawNode, isAsync, callback, failCallback) {
|
|
|
let params = {};
|
|
|
params.doc = rawNode;
|
|
|
- CommonAjax.postEx("report_tpl_api/updateTreeRootNode", params, 5000, isSync, callback, failCallback, null);
|
|
|
+ CommonAjax.postEx("report_tpl_api/updateTreeRootNode", params, 5000, isAsync, callback, failCallback, null);
|
|
|
+ },
|
|
|
+ updateTopNodeName: function (topNode, isAsync, callback, failCallback) {
|
|
|
+ let params = {};
|
|
|
+ params.compilationId = topNode.compilationId;
|
|
|
+ params.engineerId = topNode.engineerId;
|
|
|
+ params.userId = topNode.userId;
|
|
|
+ params.nodeName = topNode.name;
|
|
|
+ CommonAjax.postEx("report_tpl_api/updateTopNodeName", params, 5000, isAsync, callback, failCallback, null);
|
|
|
+ },
|
|
|
+ updateSubNode: function (topNode, subNode, isAsync, callback, failCallback) {
|
|
|
+ let params = {};
|
|
|
+ params.compilationId = topNode.compilationId;
|
|
|
+ params.engineerId = topNode.engineerId;
|
|
|
+ params.userId = topNode.userId;
|
|
|
+ params.subNode = subNode;
|
|
|
+ CommonAjax.postEx("report_tpl_api/updateSubLevelOneNode", params, 5000, isAsync, callback, failCallback, null);
|
|
|
},
|
|
|
createIniNode: function() {
|
|
|
let rst = {
|
|
|
nodeType: RT.NodeType.TEMPLATE,
|
|
|
refId: -1,
|
|
|
name: "",
|
|
|
+ ID: -1,
|
|
|
items: null
|
|
|
};
|
|
|
return rst;
|
|
|
},
|
|
|
buildRootNodeDoc: function(topNode, excludeNode) {
|
|
|
let me = this, rst = null;
|
|
|
- let private_build_items = function (items) {
|
|
|
- let itemRst = null;
|
|
|
- if (items && items.length > 0) {
|
|
|
- itemRst = [];
|
|
|
- for (let item of items) {
|
|
|
- if (item !== excludeNode) {
|
|
|
- let ir = {};
|
|
|
- ir.nodeType = item.nodeType;
|
|
|
- ir.refId = item.refId;
|
|
|
- ir.name = item.name;
|
|
|
- ir.items = private_build_items(item.items);
|
|
|
- itemRst.push(ir);
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
- return itemRst;
|
|
|
- }
|
|
|
if (topNode) {
|
|
|
rst = {
|
|
|
compilationId: topNode.compilationId,
|
|
@@ -113,26 +100,45 @@ let zTreeOprObj = {
|
|
|
properties: topNode.properties,
|
|
|
released: topNode.released,
|
|
|
isDeleted: topNode.isDeleted,
|
|
|
- items: private_build_items(topNode.items),
|
|
|
+ items: me.private_build_items(topNode.items, excludeNode),
|
|
|
name: topNode.name
|
|
|
};
|
|
|
}
|
|
|
return rst;
|
|
|
},
|
|
|
- createNodeFromZTreeNode: function(treeNode) {
|
|
|
- let rst = {};
|
|
|
- rst.ID = treeNode.ID;
|
|
|
- rst.ParentID = treeNode.ParentID;
|
|
|
- rst.NextSiblingID = treeNode.NextSiblingID;
|
|
|
- rst.grpType = treeNode.grpType;
|
|
|
- rst.nodeType = treeNode.nodeType;
|
|
|
- rst.tplType = treeNode.tplType;
|
|
|
- rst.userId = treeNode.userId;
|
|
|
- rst.refId = treeNode.refId;
|
|
|
- rst.name = treeNode.name;
|
|
|
+ buildSubRootNodeDoc: function(subNode) {
|
|
|
+ let me = this, rst = null;
|
|
|
+ if (subNode) {
|
|
|
+ rst = {
|
|
|
+ nodeType: subNode.nodeType,
|
|
|
+ refId: subNode.refId,
|
|
|
+ ID: subNode.ID,
|
|
|
+ items: me.private_build_items(subNode.items, null),
|
|
|
+ name: subNode.name
|
|
|
+ };
|
|
|
+ }
|
|
|
return rst;
|
|
|
},
|
|
|
|
|
|
+ private_build_items: function (items, excludeNode) {
|
|
|
+ let me = this, itemRst = null;
|
|
|
+ if (items && items.length > 0) {
|
|
|
+ itemRst = [];
|
|
|
+ for (let item of items) {
|
|
|
+ if (item !== excludeNode) {
|
|
|
+ let ir = {};
|
|
|
+ ir.nodeType = item.nodeType;
|
|
|
+ ir.refId = item.refId;
|
|
|
+ ir.name = item.name;
|
|
|
+ ir.ID = item.ID;
|
|
|
+ ir.items = me.private_build_items(item.items);
|
|
|
+ itemRst.push(ir);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ return itemRst;
|
|
|
+ },
|
|
|
+
|
|
|
//*
|
|
|
addHoverDom: function(treeId, treeNode) {
|
|
|
let me = zTreeOprObj, sObj = $("#" + treeNode.tId + "_span");
|
|
@@ -141,35 +147,36 @@ let zTreeOprObj = {
|
|
|
sObj.after(addStr);
|
|
|
let btn = $("#addBtn_"+treeNode.tId);
|
|
|
if (btn) btn.bind("click", function(){
|
|
|
- let rawNode = me.createIniNode();
|
|
|
- rawNode.nodeType = RT.NodeType.NODE;
|
|
|
- rawNode.name = "新增子节点";
|
|
|
- let newNodes = [], isSilent = false;
|
|
|
- newNodes.push(rawNode);
|
|
|
- if (me.treeObj) {
|
|
|
- let insertIdx = -1;
|
|
|
- if (treeNode.items.length > 0) {
|
|
|
- for (let i = treeNode.items.length - 1; i >= 0; i--) {
|
|
|
- if (treeNode.items[i].nodeType === RT.NodeType.NODE) {
|
|
|
- insertIdx = i + 1;
|
|
|
- break;
|
|
|
- } else {
|
|
|
- insertIdx = i;
|
|
|
+ me.getNewNodeID(1, function (newNodeID) {
|
|
|
+ let rawNode = me.createIniNode();
|
|
|
+ rawNode.nodeType = RT.NodeType.NODE;
|
|
|
+ rawNode.name = "新增子节点";
|
|
|
+ rawNode.ID = newNodeID;
|
|
|
+ let newNodes = [], isSilent = false;
|
|
|
+ newNodes.push(rawNode);
|
|
|
+ if (me.treeObj) {
|
|
|
+ let insertIdx = -1;
|
|
|
+ if (treeNode.items && treeNode.items.length > 0) {
|
|
|
+ for (let i = treeNode.items.length - 1; i >= 0; i--) {
|
|
|
+ if (treeNode.items[i].nodeType === RT.NodeType.NODE) {
|
|
|
+ insertIdx = i + 1;
|
|
|
+ break;
|
|
|
+ } else {
|
|
|
+ insertIdx = i;
|
|
|
+ }
|
|
|
}
|
|
|
}
|
|
|
+ me.treeObj.addNodes(treeNode, insertIdx, newNodes, isSilent);
|
|
|
+ let tn = me.getTopNodeByCurrentNode(treeNode);
|
|
|
+ let newTopNode = me.buildRootNodeDoc(tn);
|
|
|
+ me.updateTreeRootNode(newTopNode, true, function(rst){
|
|
|
+ if (!(rst)) {
|
|
|
+ alert("新增节点失败!");
|
|
|
+ }
|
|
|
+ me.refreshNodes();
|
|
|
+ }, null);
|
|
|
}
|
|
|
- me.treeObj.addNodes(treeNode, insertIdx, newNodes, isSilent);
|
|
|
- let tn = me.getTopNodeByCurrentNode(treeNode);
|
|
|
- let newTopNode = me.buildRootNodeDoc(tn);
|
|
|
- me.updateTreeRootNode(newTopNode, true, function(rst){
|
|
|
- if (rst) {
|
|
|
- //
|
|
|
- } else {
|
|
|
- alert("新增节点失败!");
|
|
|
- }
|
|
|
- me.refreshNodes();
|
|
|
- }, null);
|
|
|
- }
|
|
|
+ });
|
|
|
});
|
|
|
},
|
|
|
removeHoverDom: function(treeId, treeNode) {
|
|
@@ -240,26 +247,29 @@ let zTreeOprObj = {
|
|
|
addTplNode: function (){
|
|
|
let me = this;
|
|
|
if (me.currentNode && me.currentNode.nodeType === RT.NodeType.NODE || me.currentNode.level === 0) {
|
|
|
- let rawNode = me.createIniNode();
|
|
|
- rawNode.nodeType = RT.NodeType.TEMPLATE;
|
|
|
- rawNode.name = "新增报表模板";
|
|
|
- let newNodes = [], isSilent = false;
|
|
|
- newNodes.push(rawNode);
|
|
|
- if (me.treeObj) {
|
|
|
+ me.getNewNodeID(1, function (newNodeID) {
|
|
|
+ let rawNode = me.createIniNode();
|
|
|
+ rawNode.nodeType = RT.NodeType.TEMPLATE;
|
|
|
+ rawNode.name = "新增报表模板";
|
|
|
+ rawNode.ID = newNodeID;
|
|
|
+ let newNodes = [], isSilent = false;
|
|
|
+ newNodes.push(rawNode);
|
|
|
me.treeObj.addNodes(me.currentNode, -1, newNodes, isSilent);
|
|
|
- let rawNode = me.buildRootNodeDoc(me.currentNode);
|
|
|
- me.updateTreeRootNode(rawNode, true, function(rst){
|
|
|
- if (rst) {
|
|
|
- //
|
|
|
- } else {
|
|
|
- //
|
|
|
+ let topNode = me.buildRootNodeDoc(me.currentNode);
|
|
|
+ me.updateTreeRootNode(topNode, true, function(rst){
|
|
|
+ if (!(rst)) {
|
|
|
+ alert("新增空白模板失败!");
|
|
|
}
|
|
|
me.refreshNodes();
|
|
|
}, null);
|
|
|
-
|
|
|
- }
|
|
|
+ });
|
|
|
}
|
|
|
},
|
|
|
+ getNewNodeID: function (scope, callback) {
|
|
|
+ let params = {};
|
|
|
+ params.scope = scope;
|
|
|
+ CommonAjax.postEx("report_tpl_api/getNewNodeID", params, 5000, true, callback, null, null);
|
|
|
+ },
|
|
|
addRootNode: function() {
|
|
|
let me = this, rawNode = me.createIniRootNode();
|
|
|
if (!me.chkIfDupRootNode(rawNode)) {
|
|
@@ -329,12 +339,19 @@ let zTreeOprObj = {
|
|
|
onRemove: function(e, treeId, treeNode){
|
|
|
let me = zTreeOprObj, topPNode = me.getTopNodeByCurrentNode(treeNode);
|
|
|
let rawNode = me.buildRootNodeDoc(topPNode, treeNode);
|
|
|
- if (treeNode.level === 0) rawNode.isDeleted = true;
|
|
|
- me.removeTreeRootNode(rawNode, true, function(rst){
|
|
|
- if (!(rst)) {
|
|
|
- alert("删除请求失败!");
|
|
|
- }
|
|
|
- });
|
|
|
+ if (treeNode.level === 0) {
|
|
|
+ me.removeTreeRootNode(rawNode, true, function(rst){
|
|
|
+ if (!(rst)) {
|
|
|
+ alert("删除请求失败!");
|
|
|
+ }
|
|
|
+ });
|
|
|
+ } else {
|
|
|
+ me.updateTreeRootNode(rawNode, true, function(rst){
|
|
|
+ if (!(rst)) {
|
|
|
+ alert("删除请求失败!");
|
|
|
+ }
|
|
|
+ });
|
|
|
+ }
|
|
|
me.refreshNodes();
|
|
|
},
|
|
|
beforeRename: function(treeId, treeNode, newName, isCancel) {
|
|
@@ -345,15 +362,23 @@ let zTreeOprObj = {
|
|
|
},
|
|
|
onRename : function(e, treeId, treeNode, isCancel) {
|
|
|
if (!isCancel) {
|
|
|
- let me = zTreeOprObj, topPNode = me.getTopNodeByCurrentNode(treeNode);
|
|
|
- let rawNode = me.buildRootNodeDoc(topPNode);
|
|
|
- me.updateTreeRootNode(rawNode, true, function(rst){
|
|
|
- if (rst) {
|
|
|
- //
|
|
|
- } else {
|
|
|
- alert('修改名称请求失败!');
|
|
|
- }
|
|
|
- });
|
|
|
+ let me = zTreeOprObj;
|
|
|
+ if (treeNode.level === 0) {
|
|
|
+ me.updateTopNodeName(treeNode, true, function(rst){
|
|
|
+ if (!(rst)) {
|
|
|
+ alert('修改名称请求失败!');
|
|
|
+ }
|
|
|
+ }, null);
|
|
|
+ } else {
|
|
|
+ let subTopNode = me.getSubTopNodeByCurrentNode(treeNode);
|
|
|
+ let topPNode = subTopNode.getParentNode();
|
|
|
+ let rawNode = me.buildSubRootNodeDoc(subTopNode);
|
|
|
+ me.updateSubNode(topPNode, rawNode, true, function(rst){
|
|
|
+ if (!(rst)) {
|
|
|
+ alert('修改名称请求失败!');
|
|
|
+ }
|
|
|
+ });
|
|
|
+ }
|
|
|
}
|
|
|
},
|
|
|
/*/
|
|
@@ -487,6 +512,18 @@ let zTreeOprObj = {
|
|
|
}
|
|
|
},
|
|
|
|
|
|
+ updateNodes: function(nodes){
|
|
|
+ if (nodes && nodes.length > 0) {
|
|
|
+ let me = this;
|
|
|
+ for (let i = 0; i < nodes.length; i++) {
|
|
|
+ if (nodes[i].__v != null) node.__v = nodes[i].__v + 1
|
|
|
+ else nodes[i].__v = 0;
|
|
|
+ }
|
|
|
+ let params = {};
|
|
|
+ params.nodes = nodes;
|
|
|
+ CommonAjax.postEx("report_tpl_api/updateRptTplNodes", params, 5000, true, null, null, null);
|
|
|
+ }
|
|
|
+ },
|
|
|
addRootNode: function() {
|
|
|
let me = this, rawNode = me.createIniRootNode(), lastNodeId = -1, lastNode = null;
|
|
|
if (me.treeObj) {
|
|
@@ -580,7 +617,50 @@ let zTreeOprObj = {
|
|
|
}
|
|
|
}
|
|
|
},
|
|
|
+ createNodeFromZTreeNode: function(treeNode) {
|
|
|
+ let rst = {};
|
|
|
+ rst.ID = treeNode.ID;
|
|
|
+ rst.ParentID = treeNode.ParentID;
|
|
|
+ rst.NextSiblingID = treeNode.NextSiblingID;
|
|
|
+ rst.grpType = treeNode.grpType;
|
|
|
+ rst.nodeType = treeNode.nodeType;
|
|
|
+ rst.tplType = treeNode.tplType;
|
|
|
+ rst.userId = treeNode.userId;
|
|
|
+ rst.refId = treeNode.refId;
|
|
|
+ rst.name = treeNode.name;
|
|
|
+ return rst;
|
|
|
+ },
|
|
|
+
|
|
|
//*/
|
|
|
+ createNewTpl: function () {
|
|
|
+ let me = zTreeOprObj, params = {};
|
|
|
+ if (me.currentNode && me.currentNode.nodeType === RT.NodeType.TEMPLATE) {
|
|
|
+ params.treeNodeId = me.currentNode.ID;
|
|
|
+ let rptTypeId = common_rpt_type_ids.flow;
|
|
|
+ if ($("#crossTypeOpt")[0].checked) rptTypeId = common_rpt_type_ids.cross;
|
|
|
+ if ($("#billTypeOpt")[0].checked) rptTypeId = common_rpt_type_ids.bill;
|
|
|
+ params.rptDftTplId = rptTypeId;
|
|
|
+ params.rptName = me.currentNode.name;
|
|
|
+ params.grpKey = me.getFolderText(me.currentNode, "_");
|
|
|
+ me.currentNode.refId = me.currentNode.ID;
|
|
|
+ let subTopNode = me.getSubTopNodeByCurrentNode(me.currentNode);
|
|
|
+ let topPNode = me.getTopNodeByCurrentNode(subTopNode);
|
|
|
+ let rawNode = me.buildSubRootNodeDoc(subTopNode);
|
|
|
+ params.compilationId = topPNode.compilationId;
|
|
|
+ params.engineerId = topPNode.engineerId;
|
|
|
+ params.userId = topPNode.userId;
|
|
|
+ params.subNode = rawNode;
|
|
|
+ CommonAjax.postEx("report_tpl_api/createDftRptTpl", params, 10000, true, function(result){
|
|
|
+ if (result) {
|
|
|
+ me.currentNode.rptTpl = result;
|
|
|
+ me.chkAndRreshRefTpl();
|
|
|
+ } else {
|
|
|
+ alert('update error!');
|
|
|
+ }
|
|
|
+ }, null, null
|
|
|
+ );
|
|
|
+ }
|
|
|
+ },
|
|
|
onClick: function(event,treeId,treeNode) {
|
|
|
let me = zTreeOprObj;
|
|
|
me.currentNode = treeNode;
|
|
@@ -588,11 +668,7 @@ let zTreeOprObj = {
|
|
|
if (treeNode.nodeType === RT.NodeType.NODE) {
|
|
|
$("#rpt_tpl_display_label")[0].innerText = "...";
|
|
|
} else if (treeNode.nodeType === RT.NodeType.TEMPLATE) {
|
|
|
- let showText = treeNode.name, parentNode = treeNode.getParentNode();
|
|
|
- while (parentNode !== null) {
|
|
|
- showText = parentNode.name + ' > ' + showText;
|
|
|
- parentNode = parentNode.getParentNode();
|
|
|
- }
|
|
|
+ let showText = me.getFolderText(me.currentNode, " > ");
|
|
|
$("#rpt_tpl_display_label")[0].innerText = showText;
|
|
|
if (treeNode.refId < 0) {
|
|
|
//创建新报表模板
|
|
@@ -603,19 +679,17 @@ let zTreeOprObj = {
|
|
|
}
|
|
|
}
|
|
|
},
|
|
|
- createNewTpl: function () {
|
|
|
- let me = zTreeOprObj, params = {};
|
|
|
- if (me.currentNode && me.currentNode.nodeType === RT.NodeType.TEMPLATE) {
|
|
|
- params.treeNodeId = me.currentNode.ID;
|
|
|
- let rptTypeId = common_rpt_type_ids.flow;
|
|
|
- if ($("#crossTypeOpt")[0].checked) rptTypeId = common_rpt_type_ids.cross;
|
|
|
- if ($("#billTypeOpt")[0].checked) rptTypeId = common_rpt_type_ids.bill;
|
|
|
- params.rptDftTplId = rptTypeId;
|
|
|
- CommonAjax.postEx("report_tpl_api/createDftRptTpl", params, 20000, true, function(result){
|
|
|
- me.currentNode.rptTpl = result;
|
|
|
- }, null, null
|
|
|
- );
|
|
|
+ getFolderText: function (treeNode, separator) {
|
|
|
+ let rst = "";
|
|
|
+ if (treeNode) {
|
|
|
+ rst = treeNode.name;
|
|
|
+ let parentNode = treeNode.getParentNode();
|
|
|
+ while (parentNode !== null) {
|
|
|
+ rst = parentNode.name + separator + rst;
|
|
|
+ parentNode = parentNode.getParentNode();
|
|
|
+ }
|
|
|
}
|
|
|
+ return rst;
|
|
|
},
|
|
|
chkAndRreshRefTpl: function() {
|
|
|
let me = zTreeOprObj, params = {};
|
|
@@ -665,5 +739,14 @@ let zTreeOprObj = {
|
|
|
pNode = pNode.getParentNode();
|
|
|
}
|
|
|
return topPNode;
|
|
|
+ },
|
|
|
+ getSubTopNodeByCurrentNode: function (currentNode) {
|
|
|
+ let startNode = currentNode, resultPNode = null, pNode = startNode.getParentNode();
|
|
|
+ while (pNode !== null) {
|
|
|
+ resultPNode = startNode;
|
|
|
+ startNode = pNode;
|
|
|
+ pNode = startNode.getParentNode();
|
|
|
+ }
|
|
|
+ return resultPNode;
|
|
|
}
|
|
|
};
|