自定义隐藏菜单

栏目:云苍穹知识作者:金蝶来源:金蝶云社区发布:2024-09-23浏览:1

自定义隐藏菜单

# 业务背景 ### 诉求: 期望按照特定规则隐藏左侧菜单项 ### 痛点分析: 通常情况下,我们是通过配置单据权限来实现菜单的显隐。但是这样会遇到几个问题: 1. 针对全员应用不验权的单据,虽然我们也有方法配置全员应用指定单据验权功能,但是配置麻烦; 2. 只有实体才可以配置权限,有些菜单并非实体表单,所以在权限配置界面选不到; 3. 有些场景下,需要限制普通用户对各功能模块的基础资料的修改,那么在权限配置的时候,需要去各个云节点下授权,工作量太大 # 效果预览 1. 开发平台菜单配置情况: ![image.webp](/download/01007be1b6640d6441e6b8ee39ea6a895f05.webp) 2. 页面原始显示效果如图: ![image.webp](/download/0100fbf90a7e6c6e4c2683b370e0c63aecb0.webp) 3. 最终想要实现的效果:隐藏【测试单据一】 ![image.webp](/download/0100b2b5e0667fbd4704aa547d7b5f593ea0.webp) # 实现步骤 1. 访问路径:【开发服务云】--【扩展平台】--【业务扩展点】--【业务扩展场景】 2. 搜索编码BOS_SVC_PORTAL_MENU_PERM,如图: ![image.webp](/download/0100e7f573fb12e44d75976f551a791a3fd4.webp) 3. 点击【绑定插件】按钮,然后在详情页注册我们自己写的插件,如图: ![image.webp](/download/010052d9eb06347c4bc1bb5532b4077302ce.webp) 4. 插件代码如下: ``` package kd.hr.hrt.dada.demo.LicenseCheck; import kd.bos.algo.DataSet; import kd.bos.algo.Row; import kd.bos.db.DB; import kd.bos.db.DBRoute; import kd.bos.portal.service.IPortalAppMenuExtService; import java.util.*; public class PortalAppMenuExtDemoservice implements IPortalAppMenuExtService { @Override public Map<String, Set<String>> getHideMenuIdsByBizAppIds(Long userId, Map<String, Set<String>> appIdAndMenuIdMap) { Map<String, Set<String>> map = new HashMap<>(); //获取对应表单挂载的应用下的菜单id列表; String sql = "select fid from t_meta_menuruntime tmm where fformid = ?"; Object[] params = new Object[]{"testone"}; DataSet dataSet = DB.queryDataSet(this.getClass().getName(), DBRoute.meta, sql, params); List<String> idList = new ArrayList<>(); for (Row row : dataSet) { idList.add((String) row.get("fid")); } for (Map.Entry<String, Set<String>> stringSetEntry : appIdAndMenuIdMap.entrySet()) { //appIdAndMenuIdMap的key就是appId,value是一个set,存储的就是对应菜单的id Set<String> hideMenus = new HashSet<>(); //初始化一个set,用来存储需要隐藏的菜单id Iterator iterator = stringSetEntry.getValue().iterator(); while (iterator.hasNext()) { String str = (String) iterator.next(); if (idList.contains(str)) { //遍历当前应用下的菜单,判断菜单id是否是所要隐藏的表单的菜单id,如果是,则要将该菜单id加入hideMenus中 hideMenus.add(str); } } map.put(stringSetEntry.getKey(), hideMenus); } return map; } } ``` # 功能影响范围 - 快速发起 - 统计卡片 - 我的收藏 - 最近使用 - 应用首页左侧菜单 - 新门户应用中心的应用菜单 - 新版菜单搜索 - 首页右上角旧版搜索

自定义隐藏菜单

# 业务背景### 诉求:期望按照特定规则隐藏左侧菜单项### 痛点分析:通常情况下,我们是通过配置单据权限来实现菜单的显隐。但是这样会...
点击下载文档
确认删除?
回到顶部
客服QQ
  • 客服QQ点击这里给我发消息