|
@@ -10,16 +10,38 @@ var rptTplObj = {
|
|
|
|
|
|
var zTreeOprObj = {
|
|
|
treeObj: null,
|
|
|
+ currentNode: null,
|
|
|
getReportTemplateTree: function(grpType) {
|
|
|
var me = zTreeOprObj, params = {};
|
|
|
params.grpType = grpType;
|
|
|
params.userId = userID;
|
|
|
params.tplType = RT.TplType.ALL;
|
|
|
CommonAjax.postEx("report_tpl_api/getRptTplTree", params, 20000, function(result){
|
|
|
- zTreeHelper.createTree(result, setting, "rptTplTree", me);
|
|
|
- }, null, null
|
|
|
+ zTreeHelper.createTree(result, setting, "rptTplTree", me);
|
|
|
+ me.refreshNodes();
|
|
|
+ }, null, null
|
|
|
);
|
|
|
},
|
|
|
+ refreshNodes: function() {
|
|
|
+ var me = this;
|
|
|
+ private_setupIsParent = function(node){
|
|
|
+ if (node.nodeType == RT.NodeType.NODE) {
|
|
|
+ node.isParent = true;
|
|
|
+ } else {
|
|
|
+ node.isParent = false;
|
|
|
+ }
|
|
|
+ if (node.items && node.items.length) {
|
|
|
+ for (var i = 0; i < node.items.length; i++) {
|
|
|
+ private_setupIsParent(node.items[i]);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ };
|
|
|
+ var topNodes = me.treeObj.getNodes();
|
|
|
+ for (var i = 0; i < topNodes.length; i++) {
|
|
|
+ private_setupIsParent(topNodes[i]);
|
|
|
+ }
|
|
|
+ me.treeObj.refresh();
|
|
|
+ },
|
|
|
addRootNode: function() {
|
|
|
var me = this, rawNode = me.createIniRootNode(), lastNodeId = -1;
|
|
|
if (me.treeObj) {
|
|
@@ -30,7 +52,7 @@ var zTreeOprObj = {
|
|
|
me.addNewNode(rawNode, lastNodeId, function(rst){
|
|
|
var newNodes = [], isSilent = false;
|
|
|
rawNode.ID = rst.ID;
|
|
|
- rawNode.isParent = false;
|
|
|
+ rawNode.isParent = true;
|
|
|
rawNode.items = [];
|
|
|
newNodes.push(rawNode);
|
|
|
if (me.treeObj) {
|
|
@@ -54,7 +76,31 @@ var zTreeOprObj = {
|
|
|
}
|
|
|
},
|
|
|
addTplNode: function (){
|
|
|
- //
|
|
|
+ var me = this;
|
|
|
+ if (me.currentNode) {
|
|
|
+ var rawNode = me.createIniRootNode(), lastNodeId = -1;
|
|
|
+ rawNode.nodeType = RT.NodeType.TEMPLATE;
|
|
|
+ rawNode.ParentID = me.currentNode.ID;
|
|
|
+ rawNode.name = "新增报表模板";
|
|
|
+ if (me.treeObj) {
|
|
|
+ var nodes = me.currentNode.items;
|
|
|
+ if (nodes.length > 0) {
|
|
|
+ lastNodeId = nodes[nodes.length - 1].ID;
|
|
|
+ }
|
|
|
+ me.addNewNode(rawNode, lastNodeId, function(rst){
|
|
|
+ var newNodes = [], isSilent = false;
|
|
|
+ rawNode.ID = rst.ID;
|
|
|
+ rawNode.isParent = false;
|
|
|
+ rawNode.items = [];
|
|
|
+ newNodes.push(rawNode);
|
|
|
+ if (me.treeObj) {
|
|
|
+ me.treeObj.addNodes(me.currentNode, -1, newNodes, isSilent);
|
|
|
+ } else {
|
|
|
+ me.treeObj = $.fn.zTree.init($("#rptTplTree"), setting, newNodes);
|
|
|
+ }
|
|
|
+ }, null);
|
|
|
+ }
|
|
|
+ }
|
|
|
},
|
|
|
addNewNode: function(rawNode, lastNodeId, callback, failcallback) {
|
|
|
var params = {};
|
|
@@ -96,21 +142,28 @@ var zTreeOprObj = {
|
|
|
sObj.after(addStr);
|
|
|
var btn = $("#addBtn_"+treeNode.tId);
|
|
|
if (btn) btn.bind("click", function(){
|
|
|
- var rawNode = me.createIniRootNode(), lastNodeId = -1;
|
|
|
+ var rawNode = me.createIniRootNode(), lastNodeId = -1, insertIdx = -1;
|
|
|
rawNode.ParentID = treeNode.ID;
|
|
|
rawNode.name = "新增子节点";
|
|
|
if (treeNode.items.length > 0) {
|
|
|
lastNodeId = treeNode.items[treeNode.items.length - 1].ID;
|
|
|
+ for (var i = treeNode.items.length - 1; i >= 0; i--) {
|
|
|
+ if (treeNode.items[i].nodeType == RT.NodeType.NODE) {
|
|
|
+ lastNodeId = treeNode.items[i].ID;
|
|
|
+ rawNode.NextSiblingID = treeNode.items[i].NextSiblingID;
|
|
|
+ insertIdx = i + 1;
|
|
|
+ }
|
|
|
+ }
|
|
|
}
|
|
|
zTreeOprObj.addNewNode(rawNode, lastNodeId, function(rst){
|
|
|
var newNodes = [], isSilent = false;
|
|
|
rawNode.ID = rst.ID;
|
|
|
- rawNode.isParent = false;
|
|
|
+ rawNode.isParent = true;
|
|
|
rawNode.items = [];
|
|
|
newNodes.push(rawNode);
|
|
|
treeNode.isParent = true;
|
|
|
if (me.treeObj) {
|
|
|
- me.treeObj.addNodes(treeNode, -1, newNodes, isSilent);
|
|
|
+ me.treeObj.addNodes(treeNode, insertIdx, newNodes, isSilent);
|
|
|
} else {
|
|
|
me.treeObj = $.fn.zTree.init($("#rptTplTree"), setting, newNodes);
|
|
|
}
|
|
@@ -175,6 +228,11 @@ var zTreeOprObj = {
|
|
|
me.updateNodes(nodes);
|
|
|
},
|
|
|
onClick: function(event,treeId,treeNode) {
|
|
|
- var sectionID = treeNode.ID;
|
|
|
+ var me = zTreeOprObj;
|
|
|
+ if (treeNode.nodeType == RT.NodeType.NODE) {
|
|
|
+ me.currentNode = treeNode;
|
|
|
+ } else if (treeNode.nodeType == RT.NodeType.TEMPLATE) {
|
|
|
+ me.currentNode = null;
|
|
|
+ }
|
|
|
}
|
|
|
}
|