获取应用的菜单信息原创
金蝶云社区-拾柒_
拾柒_
5人赞赏了该文章 573次浏览 未经作者许可,禁止转载编辑于2023年07月06日 09:54:33

1.获取当前应用下的全部菜单信息设置为不可见时将不包含在里面

List<AppMenuInfo> menus = AppMetadataCache.getAppMenusInfoByAppId("应用编码");

2.获取到全部的菜单信息后可能包含当前用户没有权限的菜单,可以通过下面方法进行过滤

// 判断当前用户是否为管理员
PermissionServiceHelper.isAdminUser(Long.valueOf(RequestContext.get().getUserId()), "10");
//通过应用编码获取当前用户没有的菜单权限
PermissionServiceHelper.getAllNoPermMenuIdsByAppId(UserServiceHelper.getCurrentUserId(),"应用编码");

3.通过菜单id和应用编码来获取单个菜单对象

AppMenuInfo menu = AppMetadataCache.getAppMenuInfo("应用编码", "菜单id");

4.代码打开应用

OpenPageUtils.openApp("应用编码", null,null, this.getView());

5.代码通过菜单信息打开页面

AppMenuInfo menu = AppMetadataCache.getAppMenuInfo("应用编码", "菜单id");
    Map<String, Object> map = Maps.newHashMapWithExpectedSize(7);
    map.put("view", this.getView());
    map.put("formnumber", menu.getFormId());
    map.put("parametertype", menu.getParamType());
    map.put("parameter", JSONArray.parseObject(menu.getParams()));
    map.put("menuname", menu.getName());
    map.put("openType", menu.getOpenType());
    map.put("permItem", menu.getPermission());
    OpenPageUtils.openApp(appId, menuId, map, this.getView());


赞 5