/** * **************************** 总体说明 ************************ * 1. 该接口是菜单权限管理控制接口. * 2. 需要引入到您的页面里,完成菜单的显示,以及功能点的控制. * 3. 我们提供了如下3个方法, * 3.1 获得菜单目录菜单的 GPM_GenerMenumsDB(appNo)。 * 3.2 判断是否可以执行特定功能的GPM_IsCanExecuteFunction(appNo,functionFlat) * 3.3 自动设置页面元素显示隐藏的. */ /** * 获得当前操作员的菜单与目录的API * @param {系统编号} appNo * * 返回:两个结果集合的JSON,可以通过下列方式获取到他. var dirs = data["Dirs"]; //获得目录. var menus = data["Menus"]; //获得菜单. 说明: 1. 系统返回两个API接口. 目录与菜单,分别是两个数据集合。 2. 目录的数据结构:dirs No=编号,Name=标签, Icon=图标 3. 菜单的数据结构:menus No=编号,Name=标签, Icon=图标,URL=连接, Target=打开方式0=新窗口,1=本窗口,2=覆盖新窗口. ParentNo=目录编码 4. 您可以自己组织这些数据根据自己的需要生成菜单框架. 5. ccbpm提供了两套风格,您可以参考 /Portal/GPMMenus.js , /Portal20/GPMMenus.js */ function GPM_GenerMenumsDB() { var handler = new HttpHandler("BP.WF.HttpHandler.GPMPage"); // alert(appNo); if (appNo == null) { alert('没有配置appNo,或者没有引入config.js 。'); return; } handler.AddPara("AppNo", appNo); var data = handler.DoMethodReturnJSON("GPM_DB_Menus"); //获得菜单. return data; } /** * 判断当前用户是否可以执行当前的功能点 * * @param {项目编号} appNo * @param {标记} funcFlag * * 返回true ,是可以执行这个功能点. false=不可以执行功能点. * * 说明:用于页面的功能点控制, 例如: * 1. 获取是否可以删除的权限. * 2. IsCanDeleteUser 是在新建菜单的时候做的标记. * 3. 调用接口true,false 用于显示隐藏功能按钮. * * var isCanDeleteUser=GPM_IsCanExecuteFunction('CCOA','DeleteUser'); * * if (isCanDeleteUser==false) * $("#Btn_Delete").hid(); * else * $("#Btn_Delete").show(); * */ function GPM_IsCanExecuteFunction(appNo, funcFlag) { var handler = new HttpHandler("BP.WF.HttpHandler.GPMPage"); handler.AddPara("AppNo", appNo); handler.AddPara("FuncFlag", funcFlag); var data = handler.DoMethodReturnJSON("GPM_IsCanExecuteFunction"); //获得菜单. if (data == "1") return true; return false; } /** * 自动显示隐藏页面元素(批量控制页面元素的显示隐藏元素.) * * @param {系统编号} appNo * * 应用场景: * 1. 首先在前台配置好功能控制点标记,并把功能控制点分给相关的人员, 功能控制点的标记要与要控制的页面元素id对应. * 2. 其次需要把/GPM/API.js 引入到要控制的页面里面. * 3. 开发的个性化需要控制的元素ID,默认都是隐藏的. * */ function GPM_AutoHidShowPageElement(appNo) { var handler = new HttpHandler("BP.WF.HttpHandler.GPMPage"); handler.AddPara("AppNo", appNo); var data = handler.DoMethodReturnJSON("GPM_AutoHidShowPageElement"); //获得所有的标记数据. for (var i = 0; i < data.length; i++) { var ctrl = data[i].Flag; var ctl = $("#" + ctrl); if (ctl == null) continue; ctl.show(); //让其显示出来. } }