/** * Created by Tony on 2017/4/27. */ function getQueryString(key){ var reg = new RegExp("(^|&)"+key+"=([^&]*)(&|$)"); var result = window.location.search.substr(1).match(reg); return result?decodeURIComponent(result[2]):null; } var pageOprObj = { initParam : function() { var rationLibName = getQueryString("repository");//获取定额库参数 if (rationLibName) { params.realLibName = rationLibName; zTreeOprObj.getRationTree(); } else{ params = JSON.parse(getQueryString("params")); zTreeOprObj.getRationTree(); } } } var zTreeOprObj = { getRationTree: function(){ var me = this; $.ajax({ type:"POST", url:"api/getRationTree", data:{"rationLibName": params.realLibName}, dataType:"json", cache:false, timeout:20000, success:function(result,textStatus,status){ if(status.status == 200) { me.createRationTree(result.data); } }, error:function(err){ alert(err.responseJSON.error); } }) }, createRationTree: function(sourceData){ var treeArr = tree_Data_Helper.buildTreeNodeDirectly(sourceData); for (var i = 0; i < treeArr.length; i++) { if (treeArr[i].ParentID = -1) { // } } treeObj = $.fn.zTree.init($("#rationChapterTree"), setting, treeArr); treeObj.expandAll(true); }, addRootNode: function() { var me = this, rawNode = {ParentID: -1, NextSiblingID: -1, name: "新增节点"}, lastNodeId = -1; if (treeObj) { var rootNodes = treeObj.getNodes(); if (rootNodes.length > 0) { lastNodeId = rootNodes[rootNodes.length - 1].ID; } } me.addNewNode(rawNode, lastNodeId, function(err, rst){ if (!(err)) { var newNodes = [], isSilent = false; newNodes.push({ rationRepId: rst.data.rationRepId, ID: rst.data.ID, ParentID:-1, NextSiblingID:-1, name:"新增节点",isParent:false, items:[]}); if (treeObj) { treeObj.addNodes(null, -1, newNodes, isSilent); } else { treeObj = $.fn.zTree.init($("#rationChapterTree"), setting, newNodes); } } }); }, addNewNode : function(rawNode, lastNodeId, callback){ $.ajax({ type:"POST", url:"api/createNewNode", data:{"rationLibName":params.realLibName,"lastNodeId": lastNodeId, "rawNodeData": JSON.stringify(rawNode)}, dataType:"json", cache:false, timeout:1000, success: function(result,textStatus,status){ callback(false, result); }, error:function(err){ callback(err); } }) }, beforeRename: function(treeId, treeNode, newName, isCancel) { className = (className === "dark" ? "":"dark"); if (newName.length == 0) { return false; } return true; }, onRename : function(e, treeId, treeNode, isCancel) { var nodes = []; nodes.push(treeNode); zTreeOprObj.updateNodes(nodes); }, onBeforeRemove: function(treeId, treeNode){ var nodeIds = [], preNode = treeNode.getPreNode(), preNodeId = -1; if (preNode) { preNodeId = preNode.ID; } nodeIds.push(treeNode.ID); for (var i = 0; i < treeNode.items.length; i++) { nodeIds.push(treeNode.items[i].ID); } $.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 pNode = treeObj.getNodeByTId(treeNode.parentTId); if (pNode && pNode.items && pNode.items.length == 0) { pNode.isParent = false; treeObj.refresh(); //treeObj.updateNode(pNode, false); //这方法有后遗症,多次操作后会造成节点新增子节点时,父节点icon显示不正确 } }, beforeDrag: function(treeId, treeNodes) { return false; }, updateNodes: function(nodes){ if (nodes && nodes.length > 0) { var reqData = [] for (var i = 0; i < nodes.length; i++) { var node = {}; node.rationRepId = nodes[i].rationRepId; node.ID = nodes[i].ID; node.ParentID = nodes[i].ParentID; node.NextSiblingID = nodes[i].NextSiblingID; node.name = nodes[i].name; if (nodes[i].__v != null) node.__v = nodes[i].__v + 1 else node.__v = 0; reqData.push(node); } $.ajax({ type:"POST", url:"api/updateNodes", data:{"nodes": JSON.stringify(reqData)}, dataType:"json", cache:false, timeout:5000, success:function(result,textStatus,status){ console.log(status + ' : ' + result); }, error:function(){ } }) } }, addHoverDom: function(treeId, treeNode) { var sObj = $("#" + treeNode.tId + "_span"); //if (treeNode.editNameFlag || $("#addBtn_"+treeNode.tId).length>0||(treeNode.level==2)) return; 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 = {ParentID: treeNode.ID, NextSiblingID: -1, name: "新增子节点"}, lastNodeId = -1; if (treeNode.items.length > 0) { lastNodeId = treeNode.items[treeNode.items.length - 1].ID; } zTreeOprObj.addNewNode(rawNode, lastNodeId, function(err, rst){ if (!(err)) { var newNodes = [], isSilent = false; newNodes.push({ rationRepId: rst.data.rationRepId, ID: rst.data.ID, ParentID: rst.data.ParentID, NextSiblingID:-1, name:"新增子节点",isParent:false, items:[]}); treeNode.isParent = true; if (treeObj) { treeObj.addNodes(treeNode, -1, newNodes, isSilent); } else { treeObj = $.fn.zTree.init($("#rationChapterTree"), setting, newNodes); } } }); }); } };