ccflow (ccoa)修改菜单

来源:互联网 发布:ios开发 耗电量优化 编辑:程序博客网 时间:2024/05/21 18:33

1、首页 Default.aspx  

首页是用的LigerUI 来控制的布局

前台代码(从后台得到菜单的JSon格式)

        var _menus = {            "menus":<% =MenuList %>        };

后台代码:

 /// <summary>        /// 用户菜单接口,用户菜单自定义,必须按格式输出。        /// </summary>        public string MenuList        {            get            {                //测试用                //return BP.DA.DataType.ReadTextFile(Server.MapPath("doc/DefaultMenu.txt"));                //使用GPM后删除上面一句                string userName = BP.Web.WebUser.No;                DataTable dtMenu = BP.OA.GPM.GetUserMenuOfDatatable(userName);                //转化成可用的DataTable,此数据从GPM来                if (dtMenu != null)                {                    dtMenu.Columns["FK_Menu"].ColumnName = "menuid";                    dtMenu.Columns["Name"].ColumnName = "menuname";                    dtMenu.Columns["ParentNo"].ColumnName = "parentid";                    dtMenu.Columns["Url"].ColumnName = "url";                    dtMenu.Columns["WebPath"].ColumnName = "icon";                    dtMenu.Columns["MenuType"].ColumnName = "degree";                }                foreach (DataRow dr in dtMenu.Rows)                {                    string icon = String.Format("{0}", dr["icon"]);                    if (!String.IsNullOrEmpty(icon) && icon.StartsWith("//")) icon = icon.Substring(2);                    icon = String.Format("{0}{1}", this.GPM_HomePage, icon);                    dr["icon"] = string.IsNullOrEmpty(icon) ? BP.WF.Glo.CCFlowAppPath + "WF/Img/FileType/ie.gif" : icon;                    //string icon = String.Format("{0}", dr["icon"]);                    //if (!String.IsNullOrEmpty(icon) && icon.StartsWith("//")) icon = icon.Substring(2);                    //icon = String.Format("{0}{1}", this.GPM_HomePage, icon);                    //dr["icon"] = icon;                }                //return dtMenu.Rows.Count.ToString();                //进入面板,得转化成面板的规则                return new BuildUserMenus(dtMenu).GetUserMenu(AppMenuNo);            }        }

3 、数据库

表(视图):

V_GPM_EmpMenu


视图数据从被集成的系统影射(下面两个表)

gpm_menu   系统菜单


gpm_usermenu 菜单的用户权限


添加菜单

webconfig 默认设置的菜单的开始ID 是2002   

<!--系统菜单编号开始值:-->    <add key="AppMenuNo" value="2002" />
添加菜单时,给gpm_menu 表添加一条记录

ParentNo 设为2002    如果有子菜单 MenuType设为3  否则设为4   FK_App  是系统,如果是OA就填CCOA,是权限管理填GPM,是url是要跳转到的页面


为用户添加这个菜单的权限gpm_usermenu

(可以在gpm里改,也可以直接在数据库里加)


FK_MENU 为菜单ID




4、为OA系统加上权限管理菜单

OA系统默认是不带权限管理的,是两个分开的系统,权限管理和组织结构都放在了GPM里,需要跳到这个系统,才能设置。为了操作方便,我将权限管理直接放到OA菜单里

gpm的菜单是从CCOA\WF\DATA\XML\menu.xml文件里设置的

所以将menu.xml里的数据加到gpm_menu表里即可

  <Item No="02" Name="权限管理" Url="" Img="../Images/Btn/Help.gif" ForUser="" DESC=""  DFor="" Enable="">    <Item No="0200" Name="系统类别" Url="/Comm/SearchEUI.aspx?EnsName=BP.GPM.AppSorts" Img="/Images/Btn/Card.gif" />    <!--<Item No="0201" Name="系统与菜单" Url="/Comm/Search.aspx?EnsName=BP.GPM.Apps"          Img="/GPM/Images/Menu/application.png" />-->        <Item No="0201" Name="系统与菜单" Url="AppList.aspx" Img="/GPM/Images/Menu/application.png" />    <Item No="0202" Name="权限组" Url="/Comm/SearchEUI.aspx?EnsName=BP.GPM.Groups" Img="/Images/Btn/Group.gif" />    <Item No="0202" Name="按菜单分配权限" Url="AppMenuToEmp.aspx" Img="/Images/Btn/Menu.gif" />    <Item No="0203" Name="按用户分配权限" Url="EmpForMenus.aspx" Img="/Images/Btn/User.gif" />    <Item No="0204" Name="按岗位分配权限" Url="StationForMenus.aspx" Img="/Images/Btn/Users.gif" />    <Item No="0205" Name="按权限组分配权限" Url="EmpGroupForMenus.aspx" Img="/Images/Btn/Users.gif" />


注:菜单的MenuType如果设为3,就必须为此菜单加上下级菜单,否则无法正常显示

0 0