潘志宝
2024-08-21 c39abccd937de093fc067abffac5f66b758bc97b
提交 | 用户 | 时间
e7c126 1 package com.iailab.module.system.dal.dataobject.permission;
H 2
3 import com.iailab.framework.common.enums.CommonStatusEnum;
4 import com.iailab.framework.mybatis.core.dataobject.BaseDO;
5 import com.iailab.module.system.enums.permission.MenuTypeEnum;
6 import com.baomidou.mybatisplus.annotation.KeySequence;
7 import com.baomidou.mybatisplus.annotation.TableId;
8 import com.baomidou.mybatisplus.annotation.TableName;
9 import lombok.Data;
10 import lombok.EqualsAndHashCode;
11
12 /**
13  * 菜单 DO
14  *
15  * @author ruoyi
16  */
17 @TableName("system_menu")
18 @KeySequence("system_menu_seq") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。如果是 MySQL 等数据库,可不写。
19 @Data
20 @EqualsAndHashCode(callSuper = true)
21 public class MenuDO extends BaseDO {
22
23     /**
24      * 菜单编号 - 根节点
25      */
26     public static final Long ID_ROOT = 0L;
27
28     /**
29      * 菜单编号
30      */
31     @TableId
32     private Long id;
33     /**
34      * 菜单名称
35      */
36     private String name;
37     /**
38      * 权限标识
39      *
40      * 一般格式为:${系统}:${模块}:${操作}
41      * 例如说:system:admin:add,即 system 服务的添加管理员。
42      *
43      * 当我们把该 MenuDO 赋予给角色后,意味着该角色有该资源:
44      * - 对于后端,配合 @PreAuthorize 注解,配置 API 接口需要该权限,从而对 API 接口进行权限控制。
45      * - 对于前端,配合前端标签,配置按钮是否展示,避免用户没有该权限时,结果可以看到该操作。
46      */
47     private String permission;
48     /**
49      * 菜单类型
50      *
51      * 枚举 {@link MenuTypeEnum}
52      */
53     private Integer type;
54     /**
55      * 显示顺序
56      */
57     private Integer sort;
58     /**
59      * 父菜单ID
60      */
61     private Long parentId;
62     /**
63      * 路由地址
64      *
65      * 如果 path 为 http(s) 时,则它是外链
66      */
67     private String path;
68     /**
69      * 菜单图标
70      */
71     private String icon;
72     /**
73      * 组件路径
74      */
75     private String component;
76     /**
77      * 组件名
78      */
79     private String componentName;
80     /**
81      * 状态
82      *
83      * 枚举 {@link CommonStatusEnum}
84      */
85     private Integer status;
86     /**
87      * 是否可见
88      *
89      * 只有菜单、目录使用
90      * 当设置为 true 时,该菜单不会展示在侧边栏,但是路由还是存在。例如说,一些独立的编辑页面 /edit/1024 等等
91      */
92     private Boolean visible;
93     /**
94      * 是否缓存
95      *
96      * 只有菜单、目录使用,否使用 Vue 路由的 keep-alive 特性
97      * 注意:如果开启缓存,则必须填写 {@link #componentName} 属性,否则无法缓存
98      */
99     private Boolean keepAlive;
100     /**
101      * 是否总是显示
102      *
103      * 如果为 false 时,当该菜单只有一个子菜单时,不展示自己,直接展示子菜单
104      */
105     private Boolean alwaysShow;
106
107 }