如何增加用户中心的菜单

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").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").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

相关推荐

  • DsHint和BatchSizeHint的使用        后端

    DsHint和BatchSizeHint的使用

    概述和使用场景 DsHintApi ,强制指定数据源, BatchSizeHintApi ,强制指定查询批量数量 API定义 DsHintApi public static DsHintApi model(String model/**模型编码*/) { // 具体实现 } public DsHintApi(Object dsKey/***数据源名称*/) …

    2天前
    00
  • 工作流审核撤回/回退/拒绝钩子使用        后端

    工作流审核撤回/回退/拒绝钩子使用

    目录 1. 流程撤回、拒绝和回退调用自定义函数1.1 工作流【撤销】回调钩子1.2 撤销【回退】回调钩子1.3 工作流【拒绝】回调钩子1.4 回调钩子在业务系统中的调用示例2. 自定义审批方式、自定义审批节点名称 1.流程撤回、拒绝和回退调用自定义函数 1.1工作流【撤销】回调钩子 使用方式:把该方法放置到XXX模型的Action下面,或@Fun(XXX.M…

    2023年11月15日
    00
  • 如何在代码中生成ID和Code

    在使用继承IDModel或CodeModel时,id和code是系统默认自动生成,再特殊情况下需要落库前先生成可参照如下代码 /** * 在特定场景下需要手动生成Id或者code时,可参照这个示例 */ public void manualSetIdCode(){ DemoItem demoItem = new DemoItem(); //手动生成ID和co…

    后端 2023年11月7日
    00
  • Oinone开发实践-业务实现多租户方案        后端

    Oinone开发实践-业务实现多租户方案

    总体方案 业务项目中,需要隔离的模型自定义增加租户字段进行数据隔离; 参考了Mybatis-Plus插件的TenantSqlParser进行的JPA实现,使用jsqlparser解析并修改SQL; 实现获取当前用户租户ID,SQL增删改查时处理租户字段,实现租户数据的隔离 参考项目: https://github.com/baomidou/mybatis-p…

    2024年4月6日
    00
  • 如何发送邮箱、手机短信以及设置

    1.邮件发送 1.1 邮件服务设置 1.1.1 方法一:通过yaml文件配置 pamirs: email: smtp: smtpHost: smtp.exmail.qq.com smtpUser: xxx@xxx.com smtpPassword: xxxxxx smtpPort: 465 smtpSecurity: SSL #邮件模块可后续后台自行添加 t…

    后端 2023年11月6日
    00

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注