You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

98 lines
3.4 KiB
Plaintext

11 months ago
/**
* **************************** 总体说明 ************************
* 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(); //让其显示出来.
}
}