//菜单的节点 function Node(object,fulldata) { this.object=object; this.fulldata=fulldata; if(object!=null) { this.evaluate1(); this.evaluate2(); }else { this.Name="院系管理"; this.Id=0; this.evaluate2(); } } //取菜单项的名称,如果为空,则为null Node.prototype.Name="null"; //节点的id Node.prototype.Id=0; //菜单的类型,item为菜单项,link为超链接,line为分隔符 Node.prototype.Type="item"; //导航地址 Node.prototype.Link="#"; //颜色 Node.prototype.Color="#000000"; //字体 Node.prototype.Font ="宋体"; //是否粗体 Node.prototype.IsBold=false; //是否斜体 Node.prototype.IsItalic=false; //节点的状态,如果为true则,在页面显示时为展开状态 Node.prototype.State=true; //菜单项的父节点id Node.prototype.PatId=0; //菜单树的id Node.prototype.Root=0; //排序号 Node.prototype.Tax=0; //菜单项是否启用,默认为true Node.prototype.IsUse=true; //该菜单是否显示,默认为true Node.prototype.IsShow=true; //该菜单是为根节点 Node.prototype.IsRoot=true; //小图标 Node.prototype.IcoS=""; //大图标 Node.prototype.IcoB=""; //菜单项的介绍或说明 Node.prototype.Intro=""; // //该节点的子节点 Node.prototype.Childs=null; //该节点的兄弟节点 Node.prototype.Siblings=null; //该节点,是否有子级 Node.prototype.IsChilds=false; //该节点,是否是第一个节点 Node.prototype.IsFirst=false; //当前节点的上一个 Node.prototype.Pre=null; //该节点,是否是最后一个节点 Node.prototype.IsLast=false; //当前节点的下一个; Node.prototype.Next=null; //当前节点的上一级 Node.prototype.Parent=null; //节点相对于根节点的路,路径名为中文,分隔符为逗号 Node.prototype.Path=""; //给各个属性赋值 Node.prototype.evaluate1=function() { //属性参数 this.Name=this.getValue("MM_Name"); this.Id=Number(this.getValue("MM_Id")); this.Type=this.getValue("MM_Type"); this.Link=this.getValue("MM_Link"); this.Color=this.getValue("MM_Color"); this.Font=this.getValue("MM_Font "); this.IsBold=this.getValue("MM_IsBold")=="false" ? false : true; this.IsItalic=this.getValue("MM_IsItalic")=="false" ? false : true; this.PatId=Number(this.getValue("MM_PatId")); this.IsRoot=this.PatId==0 ? true : false; this.State=this.getValue("MM_State")=="false" ? false : true; this.Root=Number(this.getValue("MM_Root")); this.Tax=Number(this.getValue("MM_Tax")); this.IsUse=this.getValue("MM_IsUse")=="false" ? false : true;; this.IsShow=this.getValue("MM_IsShow")=="false" ? false : true; this.IcoS=this.getValue("IcoS"); this.IcoB=this.getValue("IcoB"); this.Intro=this.getValue("MM_Intro"); }; Node.prototype.evaluate2=function() { //特性参数 this.State=this.PatId==0 ? true : this.State; this.IsBold=this.PatId==0 ? true : this.IsBold; this.Childs=this.GetChilds(); this.Siblings=this.GetSiblings(); this.Parent=this.GetParent(); this.IsChilds=this.Childs.length>0 ? true : false; this.IsFirst=this.SetIsFirst(); this.IsLast=this.SetIsLast(); this.Pre=this.GetPre(); this.Next=this.GetNext(); } //获取节点的相关属性 //keyName:属性名 Node.prototype.getValue=function(keyName) { var node=this.object.find(">"+keyName); if(node==null||node.length<1) { return ""; } return node.text().toLowerCase(); } //获取子级 Node.prototype.GetChilds=function() { var fulldata=this.fulldata; var nodes=this.fulldata.find("ManageMenu"); var id=this.Id; //alert(id); var arr=new Array(); nodes.each( function() { var n=Number($(this).find("MM_PatId").text().toLowerCase()); if(n==id) { arr.push($(this)); } } ); arr=this.SetOrder(arr); return arr; } //获取上级,xml对象,非node对象 Node.prototype.GetParent=function() { var fulldata=this.fulldata; var nodes=this.fulldata.find("ManageMenu"); var pid=this.PatId; //alert(pid); var arr=new Array(); nodes.each( function() { var n=Number($(this).find("MM_Id").text().toLowerCase()); if(n==pid) { arr.push($(this)); } } ); if(arr.length>0)return arr[0]; return null; } //获取兄弟子级 Node.prototype.GetSiblings=function() { var nodes=this.fulldata.find("ManageMenu"); var pid=this.PatId; //alert(id); var arr=new Array(); nodes.each( function() { var n=Number($(this).find("MM_PatId").text().toLowerCase()); if(n==pid) { arr.push($(this)); } } ); arr=this.SetOrder(arr); return arr; } //将数组类的列排序 Node.prototype.SetOrder=function(array) { for (var i = 0; i <= array.length - 1; i++) { for (var j = array.length - 1; j > i; j--) { var jj=Number(array[j].find("MM_Tax").text().toLowerCase()); var jn=Number(array[j-1].find("MM_Tax").text().toLowerCase()); if (jj < jn ) { var temp = array[j]; array[j] = array[j - 1]; array[j - 1] = temp; } } } for (var i = 0; i < array.length; i++) { array[i].find("MM_Tax").text((i+1)*10); } return array; } //是不是第一个节点 Node.prototype.SetIsFirst=function() { var arr=this.Siblings; var len=arr.length; if(arr.length>0) { var id=Number(arr[0].find("MM_Id").text().toLowerCase()); if(id==this.Id) { return true; } } return false; } //是不是最后一个节点 Node.prototype.SetIsLast=function() { var arr=this.Siblings; var len=arr.length; if(arr.length>0) { var id=Number(arr[len-1].find("MM_Id").text().toLowerCase()); if(id==this.Id) { return true; } } return false; } //当前节点的上一个节点 Node.prototype.GetPre=function() { //如果自身是第一个节点,则返回Null if(this.IsFirst)return null; var arr=this.Siblings; var len=arr.length; for(var i=0;i