如何增加用户中心的菜单

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

相关推荐

  • Schedule相关

    1、Schedule初始化 TODO 2、Schedule执行器的入口 通常本地创建了Schedule,没有被正常执行,可以通过这个入口去排查问题 pro.shushi.pamirs.middleware.schedule.core.tasks.AbstractScheduleTaskDealSingle#selectTasks 3、Schedule执行环境…

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

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

    2024年4月23日
    8300
  • IWrapper、QueryWrapper和LambdaQueryWrapper使用

    条件更新updateByWrapper 通常我们在更新的时候new一个对象出来在去更新,减少更新的字段 Integer update = new DemoUser().updateByWrapper(new DemoUser().setFirstLogin(Boolean.FALSE), Pops.<DemoUser>lambdaUpdate()…

    2024年5月25日
    25500
  • 首次登录修改密码和自定义密码规则等

    场景描述 在某些场景下,可能需要实现 用户首次登录强制修改密码的功能,或者存在修改平台默认密码等校验规则等需求;本文将讲解不改变平台代码的情况下,如何实现这些功能需求。 首次登录修改密码 方案概述 自定义User增加是否是第一次登录的属性,登录后执行一个扩展点。 判断是否是一次登录,如果是则返回对应的状态码,前端根据状态码重定向到修改密码的页面。修改完成则充…

    2024年5月25日
    27900
  • 【PostgreSQL】后端部署使用PostgreSQL数据库

    PostgreSQL数据库配置 驱动配置 Maven配置(目前maven仓库最新版本) <postgresql.version>42.6.0</postgresql.version> <dependency> <groupId>org.postgresql</groupId> <artifac…

    2023年11月1日
    5400

发表回复

登录后才能评论