⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 menu.js

📁 上传的控件
💻 JS
📖 第 1 页 / 共 2 页
字号:
            var FileURL = "",parames = "";
            FileURL = G.ActionURL.PageDataURL;
            parames = "Type=Feed&Action=FeedNew&Code=" + menufeed.Code;
            parames = "module=xml&action=" + G.ActionURL.SaveData + "&" + parames;
            G_RequestObj.send(FileURL,parames,null,"get");    
            
           // var FileURL = "",parames = "";
           // FileURL = G.ActionURL.PageDataURL;
            parames = "Type=Menu&Code="+ this.menubaseinfo.Code +"&IsHaveAdded=1";
            parames = "module=xml&action=" + G.ActionURL.SaveData + "&" + parames;
            G_RequestObj.send(FileURL,parames,null,"get");    
            
            //增加完成后关闭Feed容器框(调用关闭处理方法)
            G_DMFeed.MouseClickEventHandler();
            
        },
        
        //需要改变经过时的样式,并且可能需要弹出提示框
        MenuMouseoverEventHandler: function()
        {
            var oEvent = G.EventUtil.getEvent();

            //如果需要提示则弹出提示框
            if(this.menubaseinfo.IsDisDescription&&this.menubaseinfo.Description != null&&this.menubaseinfo.Description != "")
            {
                if((this.menubaseinfo.Type=="Module"&&(G_DMFeed.CurMenu==null||G_DMFeed.CurMenu != this))||this.menubaseinfo.Type=="Menu")
                {
                    G.HiddenODisplayFrame(G.PageObj.Div_Info,oEvent.type);
                    //用来美化信息弹出框
                    var divSpace = document.createElement("div");
                    var table = new Array();              
                    
                    table.push("<table cellpadding='0px' cellspacing='0px' border='0px' width='100%' height='100%'><td><div style='margin:10px 6px 6px 10px'></div></td></tr></table>");
                    divSpace.innerHTML = table.join("");
                    var divMessage = divSpace.getElementsByTagName("div");
                    divMessage[0].innerHTML = this.menubaseinfo.Description;                 

                    var PageObj = $(G.PageObj.Div_Info);                
                    
                    if(PageObj)
                    {
                        PageObj.appendChild(divSpace);
                        //把指定对象定位到指定指定的父亲对象旁边几个像素位置
                        G.PosToFather(PageObj,this.menuup,this.Frame);
                    }
                }                    
            }
        },
        
        //移出事件,要改变外观和处理后续动作
        //当已经点击了有附件的Module类型菜单时,
        MenuMouseoutEventHandler: function()
        {
            var oEvent = G.EventUtil.getEvent();
            G.HiddenODisplayFrame(G.PageObj.Div_Info,oEvent.type);             
        } ,
        
        //装载子菜单,处理菜单读取的回发,
        LoadSubMenuSuccess: function(response)
        {
           //根据返回值来完成子菜单基本信息的创建,然后调用自身方法,把所有的子菜单加载出来。            
            G_BLLFeed.CreateSubMenuByResponse(response,this);
            if(this.menubaseinfo.SubMenuInfo.length !=0)
            {
                this.AddSubMenu(this.menubaseinfo.SubMenuInfo);
            }           
            
        },
        //创建基子菜单的基本信息,并装载子菜单
        //传入参数:response=请求返回字符串
        //原理如下:父亲菜单发出请求,然后处理请求为子菜单基本信息,最后再增加为子菜单
        CreateSubBaseInfoLoadSubMenu:function(response)
        {
            //清空隔时对象         
                var rootNode = G_XML.XmlDom.createDomFromResponse(response);
                var MenuItemNodes = rootNode.getElementsByTagName("Item");
                for(var i=0; i<MenuItemNodes.length; i++)
                {   
                    var MBInfo = G_BLLFeed.CreateAllMenubaseInfoToMenu(MenuItemNodes[i]);
                    this.menubaseinfo.AddSubMenuInfo(MBInfo);
                }
                //生成子菜单
                this.MenuSubPart.setPromptc("");
                if(this.menubaseinfo.SubMenuInfo.length != 0)
                {
                    this.AddSubMenu(this.menubaseinfo.SubMenuInfo);
                }
                else
                {
                    //提示装载失败
                   this.MenuSubPart.setPromptc("failure,Try again!");
                }             
            
        }  
    }
}



//------------------------------------------------MenuBaseInfo--------------------------------------------------------//
/*
    名称:菜单基本描述信息
    功能及构成描述: 这些描述是一个完整的菜单项必须具有的.一个菜单要包括的东西比Feed多
    初始化参数:
        Code = 菜单的代号(是在数据库中产生的唯一代号,可以用来生成模块号)
        TeamNum = 组号。菜单在生成时按组可以分开不同的功能区
        Title-菜单标题,
        IsDisDescription=是否显示描述,有的在后台定义为不用显示,当有这个参数时,就不会触发shubiao的那个MouseOver事件了. 
        Description-描述,这是对所加菜单意图的解析说明,以便用户可以更清晰的理解菜单功能.
        Type = 是导航菜单还是模块生成菜单,Menu,Module.如要是Menu则继续读取下一子菜单,如果是Module则显示要编辑的模块
        Pos = 其显示的序号,序号越小,显示位置越靠上
        IsExpand = 菜单是否是展开的.如果有子菜单可以设定菜单是否是默认展开
        FatherMenuCode= 父亲菜单代号, 如果是最高级则代号为0,只能在同一级菜单才有用
        IsHaveSub = 是否有子菜单项,如果有则菜单样式是不一样的.其点击菜单的行为也是有区别的,主要是为了区别这两种菜单的区别
        //一个完整的菜单包含的内容要大于Feed,最后要根据菜单基本信息在菜单对象中要完成Feed(在点击是Module发生事件后才创建)的创建.
        XSL = 数据显示模板,用来显示数据的
        DUrl = 数据加载的URL.可以静态指定,也可以动态生成
        EditTMP = 编辑所使用的模板
        DCount = 数据显示的条数
        ColumnNum = 生成Feed时所在的列号.如在第一列就是1,依次类推.
        ContentJSTMP = 生成内容区的JS编辑模板,例如在设计中首页的栏目我的配置中心就是很特别的栏目,就需要单独创建一个Feed的内容区
        arySubFeed = 内容区中各子栏目的定义数组,在当点击菜单时要生成一个完整的Feed. 生成一个复杂Feed的必备数据
        level = 菜单的级别 一级菜单为1,其它级别依次类推.
        IsHaveAdded = 是否增加到了页面,如果用户已经增加了该模块则该菜单是作灰色显示
        
        IsHaveIcon = Module类菜单前是否有小图标
        IconFileName = 指定小图标的名字
        
*/
MenuBaseInfo = Class.create();
MenuBaseInfo.prototype = {    //现共15个参数,如有不够以后再扩充.2006-12-1
    initialize: function(Code,FatherMenuCode,TeamNum,Title,IsDisDescription,Description,Type,Pos,IsExpand,level,IsHaveAdded,IsHaveIcon,IsUseFNL,IconFileName,MenuFeedBaseInfo)
    {
        this.Code = Code;
        this.FatherMenuCode = FatherMenuCode;
        this.TeamNum = TeamNum;
        this.Title = Title;
        this.IsDisDescription;
        this.Description = Description;
        this.Type = Type;
        this.Pos = Pos;
        this.IsExpand = IsExpand;   //是否默认展开状态,如果是则要获取下级菜单显示出来.        
        this.Level = level;
        this.IsHaveAdded =  IsHaveAdded;       
        this.MenuFeedBaseInfo = MenuFeedBaseInfo;
        this.IsHaveIcon = IsHaveIcon;
        this.IsUseFNL = IsUseFNL;
        this.IconFileName = IconFileName;
        //容纳子菜单信息
        this.SubMenuInfo = new Array();

    },

    //增加其子菜单信息,最多保存两级
    AddSubMenuInfo: function(MenuBaseInfo)
    {
        this.SubMenuInfo.push(MenuBaseInfo);
    }
     
}
//-------------------------------------------------MenuSubPartFrame-------------------------------------------------------//
/*
    名称:每个子菜单外观框架生成类
    功能及构成描述:定义了每个子菜单的基本的外观,其行为还是要在菜单创建内容赋予,通过自身方法赋予
                    一个菜单外观的默认值:1.子菜单区隐藏,2.没有加载任何图标 3.图标区未隐藏
    初始化参数:
*/
MenuSubPartFrame = Class.create();
MenuSubPartFrame.prototype = {    
    initialize: function()
    {        
                
     //不用div来组织菜单, 全部改为table来组织要强一点
     //其格式为:
//     <table>
//       <tbody>
//         <tr name="MenuUpFrame">
//            <td> 
//                <div  name='MenuIconArea'></div>             
//            </td>
//            <td> 
//                <div  name='MenuTitle'></div>               
//            </td>
//         </tr>
//         <tr>
//            <td></td>
//            <td>
//                <div  name='SubMenuArea'>                   
//                </div>
//            </td>
//         </tr>
//       </tbody>
//     </table>
       
       var tableMenu = GCO.$("table");
       var tbody = GCO.$("tbody");
       tableMenu.appendChild(tbody);
       
       tbody.insertRow(0);
       var rowsMenuup = tbody.rows[0];
       tbody.insertRow(1);
       var rowsSubmenu = tbody.rows[1]; rowsSubmenu.style.display = "none";
       rowsMenuup.insertCell(0);
       var cellIcon = rowsMenuup.cells[0]; var divMenuIcon = GCO.$("div"); cellIcon.appendChild(divMenuIcon);cellIcon.align = "center";
       rowsMenuup.insertCell(1);
       var cellTitle = rowsMenuup.cells[1];var divMenuTitle = GCO.$("div"); cellTitle.appendChild(divMenuTitle);
       rowsSubmenu.insertCell(0);
       rowsSubmenu.insertCell(1);
       var cellSubmenu = rowsSubmenu.cells[1];var divSubmenu = GCO.$("div"); cellSubmenu.appendChild(divSubmenu); divSubmenu.innerHTML = "loading.....";
       cellSubmenu.align = "left";
       //样式
       tableMenu.className = "TableMenu";
       rowsMenuup.className = "rowsMenuup";
       rowsSubmenu.className = "rowsSubmenu";
       cellIcon.className = "cellIcon";
       cellTitle.className = "cellTitle";
       divMenuIcon.className = "divMenuIcon";
       divMenuTitle.className = "divMenuTitle"; 
       divSubmenu.className = "divSubmenu";
       
       //公开对象
       //最外框架部分
       this.TableMenu = tableMenu; 
        //第一行部分,有点击事件
       this.RowsMenuup = rowsMenuup; 
        //子菜单行 有隐藏责任
       this.RowsSubmenu = rowsSubmenu;
       //图标附加对象 
       this.divMenuIcon   = divMenuIcon;
       //标题附加对象
       this.divMenuTitle  = divMenuTitle;
       
       this.divSubMenu = divSubmenu;
 
    },
    //增加标题
    //传入参数:text=标题文本(必要参数)Level=菜单等级(非必要参数)
    AddTitle: function(Text,Level,IsHaveAdded,MenuType){
        this.divMenuTitle.innerHTML = "<a href='javascript:void(0);'>" + Text + "</a>";
        if(typeof Level != "undefined"&&Level != null)
        {
            //如果是一级菜单,则菜单文本的样式是不一样的
            if(Level == "1"&&MenuType == "Menu")
            {
                //this.divMenuTitle.className = G.Style.Menu.MenuTitleForLevel1;
                this.setTitleStyle(G.Style.Menu.MenuTitleForLevel1);
                this.RowsMenuup.className = "rowsMenuupLevel1";
            }
            if(IsHaveAdded&&MenuType=="Module")
            {
                //this.divMenuTitle.className = G.Style.Menu.ModuleForbid;
                this.setTitleForbid(true);
            }
        }
    },
    //增加菜单前方图标
    //传入参数: IconFileName=图标文件名称
    AddMenuIcon: function(IconFileName){
        
            this.divMenuIcon.innerHTML = "<a href='javascript:void(0);'><img src='" + G.SysPicture.MenuIconPath + IconFileName  + "' border='0px' /></a>" ;
            //this.divMenuIcon.style.marginRight = "5px";
    },
    //增加菜单折叠和展开图标
    //传入参数: EOCObj=折叠和展开对象
    AddECIcon: function(EOCObj){
        
        if(typeof this.divMenuIcon.firstChild != "undefined")
        {
            var firstChild = this.divMenuIcon.firstChild;
            if(firstChild != null)
                firstChild.removeNode(true);
            
        }
        
        this.divMenuIcon.appendChild(EOCObj);
    },

    //菜单上半部分的点击事件
    AddMenuupCE:function(EHandler){
         G.EventUtil.$ADE(this.RowsMenuup,"click",EHandler);            
    },
    showSubmenu:function(IsShow){
        
        this.RowsSubmenu.style.display = IsShow?"block":"none";
            
    },
   
    setPromptc:function(text){
        this.divSubMenu.innerHTML = text;
    },
    //增加子菜单到框架
    appendSubMenuFrame:function(frame){
        this.divSubMenu.appendChild(frame);
    },
    //设定标题样式, 所有和标题有关的全在这里管理
    setTitleStyle:function(stylename){
        this.divMenuTitle.className = stylename;
    },
    //设定禁用
    setTitleForbid:function(IsForbid){
       this.setTitleStyle(IsForbid?"ModuleForbid":"MenuTitle");
    }
}



⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -