菜单新增 alwaysShow 总是展示、componentName 组件名
This commit is contained in:
@@ -31,6 +31,9 @@ public class AuthMenuRespVO {
|
||||
@ApiModelProperty(value = "组件路径", example = "system/post/index", notes = "仅菜单类型为菜单时,才需要传")
|
||||
private String component;
|
||||
|
||||
@ApiModelProperty(value = "组件名", example = "SystemUser")
|
||||
private String componentName;
|
||||
|
||||
@ApiModelProperty(value = "菜单图标", example = "/menu/list", notes = "仅菜单类型为菜单或者目录时,才需要传")
|
||||
private String icon;
|
||||
|
||||
@@ -40,6 +43,9 @@ public class AuthMenuRespVO {
|
||||
@ApiModelProperty(value = "是否缓存", required = true, example = "false")
|
||||
private Boolean keepAlive;
|
||||
|
||||
@ApiModelProperty(value = "是否总是显示", example = "false")
|
||||
private Boolean alwaysShow;
|
||||
|
||||
/**
|
||||
* 子路由
|
||||
*/
|
||||
|
||||
@@ -46,6 +46,9 @@ public class MenuBaseVO {
|
||||
@Size(max = 200, message = "组件路径不能超过255个字符")
|
||||
private String component;
|
||||
|
||||
@ApiModelProperty(value = "组件名", example = "SystemUser")
|
||||
private String componentName;
|
||||
|
||||
@ApiModelProperty(value = "状态", required = true, example = "1", notes = "见 CommonStatusEnum 枚举")
|
||||
@NotNull(message = "状态不能为空")
|
||||
private Integer status;
|
||||
@@ -56,4 +59,7 @@ public class MenuBaseVO {
|
||||
@ApiModelProperty(value = "是否缓存", example = "false")
|
||||
private Boolean keepAlive;
|
||||
|
||||
@ApiModelProperty(value = "是否总是显示", example = "false")
|
||||
private Boolean alwaysShow;
|
||||
|
||||
}
|
||||
|
||||
@@ -21,7 +21,12 @@ import lombok.EqualsAndHashCode;
|
||||
public class MenuDO extends BaseDO {
|
||||
|
||||
/**
|
||||
* 菜单ID
|
||||
* 菜单编号 - 根节点
|
||||
*/
|
||||
public static final Long ID_ROOT = 0L;
|
||||
|
||||
/**
|
||||
* 菜单编号
|
||||
*/
|
||||
@TableId
|
||||
private Long id;
|
||||
@@ -56,6 +61,8 @@ public class MenuDO extends BaseDO {
|
||||
private Long parentId;
|
||||
/**
|
||||
* 路由地址
|
||||
*
|
||||
* 如果 path 为 http(s) 时,则它是外链
|
||||
*/
|
||||
private String path;
|
||||
/**
|
||||
@@ -66,6 +73,10 @@ public class MenuDO extends BaseDO {
|
||||
* 组件路径
|
||||
*/
|
||||
private String component;
|
||||
/**
|
||||
* 组件名
|
||||
*/
|
||||
private String componentName;
|
||||
/**
|
||||
* 状态
|
||||
*
|
||||
@@ -82,9 +93,15 @@ public class MenuDO extends BaseDO {
|
||||
/**
|
||||
* 是否缓存
|
||||
*
|
||||
* 只有菜单、目录使用
|
||||
* 是否使用 Vue 路由的 keep-alive 特性
|
||||
* 只有菜单、目录使用,否使用 Vue 路由的 keep-alive 特性
|
||||
* 注意:如果开启缓存,则必须填写 {@link #componentName} 属性,否则无法缓存
|
||||
*/
|
||||
private Boolean keepAlive;
|
||||
/**
|
||||
* 是否总是显示
|
||||
*
|
||||
* 如果为 false 时,当该菜单只有一个子菜单时,不展示自己,直接展示子菜单
|
||||
*/
|
||||
private Boolean alwaysShow;
|
||||
|
||||
}
|
||||
|
||||
@@ -278,6 +278,7 @@ public class MenuServiceImpl implements MenuService {
|
||||
// 菜单为按钮类型时,无需 component、icon、path 属性,进行置空
|
||||
if (MenuTypeEnum.BUTTON.getType().equals(menu.getType())) {
|
||||
menu.setComponent("");
|
||||
menu.setComponentName("");
|
||||
menu.setIcon("");
|
||||
menu.setPath("");
|
||||
}
|
||||
|
||||
@@ -31,7 +31,6 @@ import static org.mockito.ArgumentMatchers.argThat;
|
||||
import static org.mockito.Mockito.doNothing;
|
||||
import static org.mockito.Mockito.verify;
|
||||
|
||||
// TODO @芋艿:单测的代码质量可以提升下
|
||||
@Import(MenuServiceImpl.class)
|
||||
public class MenuServiceTest extends BaseDbUnitTest {
|
||||
|
||||
|
||||
@@ -76,9 +76,11 @@ CREATE TABLE IF NOT EXISTS "system_menu" (
|
||||
"path" varchar(200) DEFAULT '',
|
||||
"icon" varchar(100) DEFAULT '#',
|
||||
"component" varchar(255) DEFAULT NULL,
|
||||
"component_name" varchar(255) DEFAULT NULL,
|
||||
"status" tinyint NOT NULL DEFAULT '0',
|
||||
"visible" bit NOT NULL DEFAULT TRUE,
|
||||
"keep_alive" bit NOT NULL DEFAULT TRUE,
|
||||
"always_show" bit NOT NULL DEFAULT TRUE,
|
||||
"creator" varchar(64) DEFAULT '',
|
||||
"create_time" timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
||||
"updater" varchar(64) DEFAULT '',
|
||||
|
||||
Reference in New Issue
Block a user