/** * Created by Tony on 2017/6/1. */ var rptTplObj = { iniPage: function() { var me = this zTreeOprObj.getReportTemplateTree(RT.GrpType.CONSTRUCT); } } var zTreeOprObj = { treeObj: 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 ); }, addRootNode: function() { var me = this, rawNode = me.createIniRootNode(), lastNodeId = -1; if (me.treeObj) { var rootNodes = me.treeObj.getNodes(); if (rootNodes.length > 0) { lastNodeId = rootNodes[rootNodes.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(null, -1, newNodes, isSilent); } else { me.treeObj = $.fn.zTree.init($("#rptTplTree"), setting, newNodes); } }, null); } }, updateNodes: function(nodes){ if (nodes && nodes.length > 0) { var me = this; for (var i = 0; i < nodes.length; i++) { if (nodes[i].__v != null) node.__v = nodes[i].__v + 1 else nodes[i].__v = 0; } var params = {}; params.nodes = nodes; CommonAjax.postEx("report_tpl_api/updateTptTplNodes", params, 5000, null, null, null); } }, addTplNode: function (){ // }, addNewNode: function(rawNode, lastNodeId, callback, failcallback) { var params = {}; params.lastNodeId = lastNodeId; params.rawNodeData = rawNode; CommonAjax.postEx("report_tpl_api/createTplTreeNode", params, 5000, callback, failcallback, null); }, createIniRootNode: function() { var rst = { ID: -1, ParentID: -1, NextSiblingID: -1, grpType: RT.GrpType.CONSTRUCT, nodeType: RT.NodeType.NODE, tplType: RT.TplType.ALL, userId: userID, refId: -1, name: '新增节点' }; return rst; }, createNodeFromZTreeNode: function(treeNode) { var 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; }, addHoverDom: function(treeId, treeNode) { var me = zTreeOprObj, sObj = $("#" + treeNode.tId + "_span"); if (treeNode.editNameFlag || $("#addBtn_"+treeNode.tId).length>0) return; var addStr = ""; sObj.after(addStr); var btn = $("#addBtn_"+treeNode.tId); if (btn) btn.bind("click", function(){ var rawNode = me.createIniRootNode(), lastNodeId = -1; rawNode.ParentID = treeNode.ID; rawNode.name = "新增子节点"; if (treeNode.items.length > 0) { lastNodeId = treeNode.items[treeNode.items.length - 1].ID; } zTreeOprObj.addNewNode(rawNode, lastNodeId, function(rst){ var newNodes = [], isSilent = false; rawNode.ID = rst.ID; rawNode.isParent = false; rawNode.items = []; newNodes.push(rawNode); treeNode.isParent = true; if (me.treeObj) { me.treeObj.addNodes(treeNode, -1, newNodes, isSilent); } else { me.treeObj = $.fn.zTree.init($("#rptTplTree"), setting, newNodes); } }, null); }); }, removeHoverDom: function(treeId, treeNode) { $("#addBtn_"+treeNode.tId).unbind().remove(); }, onBeforeRemove: function(treeId, treeNode){ var nodeIds = [], preNode = treeNode.getPreNode(), preNodeId = -1; if (preNode) { preNodeId = preNode.ID; } private_fetchAllSubItems = function(pItem){ nodeIds.push(pItem.ID); if (pItem.items && pItem.items.length > 0) { for (var i = 0; i < pItem.items.length; i++) { private_fetchAllSubItems(pItem.items[i]); } } }; nodeIds.push(treeNode.ID); for (var i = 0; i < treeNode.items.length; i++) { private_fetchAllSubItems(treeNode.items[i]); } //$.ajax({ // type:"POST", // url:"api/deleteNodes", // data:{"nodes": JSON.stringify(nodeIds), "preNodeId": preNodeId, "preNodeNextId": treeNode.NextSiblingID}, // dataType:"json", // cache:false, // timeout:5000, // success:function(result,textStatus,status){ // var pNode = treeNode.getParentNode(); // if (pNode && pNode.items && pNode.items.length == 1) { // pNode.isParent = false; // } // }, // error:function(){ // } //}); return true; }, onRemove: function(e, treeId, treeNode){ var me = zTreeOprObj, pNode = me.treeObj.getNodeByTId(treeNode.parentTId); if (pNode && pNode.items && pNode.items.length == 0) { pNode.isParent = false; me.treeObj.refresh(); //me.treeObj.updateNode(pNode, false); //这方法有后遗症,多次操作后会造成节点新增子节点时,父节点icon显示不正确 } }, beforeRename: function(treeId, treeNode, newName, isCancel) { if (newName.length == 0) { return false; } return true; }, onRename : function(e, treeId, treeNode, isCancel) { var me = zTreeOprObj, nodes = []; nodes.push(me.createNodeFromZTreeNode(treeNode)); me.updateNodes(nodes); }, onClick: function(event,treeId,treeNode) { var sectionID = treeNode.ID; } }