如何增加用户中心的菜单

1.工程中引起pamirs-user-api

<dependency>
<groupId>pro.shushi.pamirs.core</groupId>
<artifactId>pamirs-user-api</artifactId>
</dependency>

2.实现扩展接口TopBarUserBlockDataApi

/**
 * 自定义扩展TopBarUserBlock
 */
@Order(10)
@Component
@SPI.Service
public class DemoTopBarUserBlockDataApi implements TopBarUserBlockDataApi {

    @Override
    public TopBarUserBlock extendData(TopBarUserBlock data) {
        List<TopBarActionGroup> actionGroups = data.getActionGroups();
        TopBarActionGroup actionGroup = new TopBarActionGroup();
        List<Action> actions = new ArrayList<>();

        //例如增加一个菜单
        ViewAction demoViewAction = new ViewAction().setName("DemoMenus_ItemPMenu_DemoItemMenu").setModel(ProducePlanDetail.MODEL_MODEL).queryOne();
        if(demoViewAction != null){

            //设置菜单的icon
            Map<String, Object> attributes = Optional.ofNullable(demoViewAction.getAttributes()).orElse(new HashMap<>());
            attributes.put("icon", "oinone-xiugaimima");
            demoViewAction.setAttributes(attributes);
            actions.add(demoViewAction);
            actionGroup.setActions(actions);
        }
        //例如增加一个菜单
        ViewAction demoViewAction2 = new ViewAction().setName("DemoMenus_ItemPMenu_DemoItemCategoryMenu").setModel(ProducePlanDetail.MODEL_MODEL).queryOne();
        if(demoViewAction2 != null){

            //设置菜单2的icon
            Map<String, Object> attributes = Optional.ofNullable(demoViewAction2.getAttributes()).orElse(new HashMap<>());
            attributes.put("icon", "oinone-xiugaimima");
            demoViewAction2.setAttributes(attributes);
            actions.add(demoViewAction2);
            actionGroup.setActions(actions);
        }
        actionGroups.add(new TopBarActionGroup().setActions(actions));
        data.setActionGroups(actionGroups);
        return data;
    }
}

实现效果

如何增加用户中心的菜单

Oinone社区 作者:数式-海波原创文章,如若转载,请注明出处:https://doc.oinone.top/backend/4764.html

访问Oinone官网:https://www.oinone.top获取数式Oinone低代码应用平台体验

(0)
数式-海波的头像数式-海波数式管理员
上一篇 2023年11月27日 上午11:14
下一篇 2023年11月27日 下午4:30

相关推荐

  • Excel导入导出模板翻译

    导出翻译项 与翻译的导出全部翻译项类似,只是该操作目前没有加入到页面交互中,需要通过工具发起后端服务请求。 mutation { excelExportTaskMutation { createExportTask( data: { workbookDefinition: { model: "file.ExcelWorkbookDefinition…

    2024年12月5日
    23400
  • 自定义数据权限拦截处理

    业务场景 公司给员工对哪些模块有访问权限,这个时候就需要在员工访问模块表的时候做数据过滤, 解决方案 我们可以通过平台提供的数据过滤占位符解决这个问题,新建一条数据行权限,过滤语句条件是占位符,再编写占位符的解析逻辑 1.初始化权限基础数据 package pro.shushi.pamirs.demo.core.init; import com.google…

    2023年11月24日
    45000
  • 【Excel导入/导出】多Sheet导入导出示例(4.7.x及以上版本)

    代码示例 示例仅供参考 点击下载代码示例 业务场景 准备工作:两个模型,物料(Material)和物料类别(MaterialCategory)。目标:在一个Excel模板中同时导入和导出两个模型的数据。 Material模型 @Model.model(Material.MODEL_MODEL) @Model.Advanced(unique = {"…

    2024年4月23日
    52500
  • 缓存连接由Jedis切换为Lettuce

    Jedis和Lettuce的区别 Jedis是同步的,不支持异步,Jedis客户端实例不是线程安全的,需要每个线程一个Jedis实例,所以一般通过连接池来使用Jedis; Lettuce是基于Netty框架的事件驱动的Redis客户端,其方法调用是异步的,Lettuce的API也是线程安全的,所以多个线程可以操作单个Lettuce连接来完成各种操作,同时Le…

    2024年2月2日
    38400

发表回复

登录后才能评论