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

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

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