Browse Source

daily check in

TonyKang 8 years ago
parent
commit
68fe2da6c4

+ 0 - 2
modules/reports/models/tpl_tree_node.js

@@ -43,8 +43,6 @@ RplTplTreeDAO.prototype.getTplTreeNodes = function(grpType, userId, tplType, cal
 RplTplTreeDAO.prototype.updateTreeNodes = function(nodes, callback) {
     var functions = [];
     for (var i=0; i < nodes.length; i++) {
-        //var md = new rationChapterTreeModel(nodes[i]);
-        //md.isNew = false;
         functions.push((function(doc) {
             return function(cb) {
                 TreeNodeModel.update({ID: doc.ID}, doc, cb);

+ 66 - 8
web/maintain/report/js/rpt_tpl_main.js

@@ -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;
+        }
     }
 }

+ 1 - 0
web/maintain/report/rpt_tpl_main.html

@@ -40,6 +40,7 @@
                 <div class="main-side col-lg-3 p-0">
                     <div class="tab-bar">
                         <a onclick="zTreeOprObj.addRootNode()" class="btn btn-secondary btn-sm">增加根节点</a>
+                        <a onclick="zTreeOprObj.addTplNode()" class="btn btn-secondary btn-sm">增加模板节点</a>
                     </div>
                     <div class="tab-content">
                         <ul id="rptTplTree" class="ztree"></ul>