feat(menu): 添加菜单样式属性支持

- 在 SysMenu 实体类中新增 style 字段用于存储菜单样式
- 在 MetaVo 类中添加 style 属性以传递样式信息
- 更新 SysMenuMapper.xml 映射文件中的字段映射和查询语句
- 修改 SysMenuServiceImpl 中的路由构建逻辑以设置菜单样式
- 为不同类型的菜单路由节点添加样式属性的赋值处理
This commit is contained in:
2026-06-27 10:33:28 +08:00
parent b246a2fac7
commit c29f074eae
4 changed files with 25 additions and 5 deletions

View File

@@ -96,6 +96,11 @@ public class SysMenu extends TreeEntity<SysMenu> {
*/ */
private String icon; private String icon;
/**
* 样式
*/
private String style;
/** /**
* 备注 * 备注
*/ */

View File

@@ -32,6 +32,11 @@ public class MetaVo {
*/ */
private String link; private String link;
/**
* 菜单样式
*/
private String style;
public MetaVo(String title, String icon) { public MetaVo(String title, String icon) {
this.title = title; this.title = title;
this.icon = icon; this.icon = icon;

View File

@@ -161,7 +161,9 @@ public class SysMenuServiceImpl implements ISysMenuService {
router.setPath(getRouterPath(menu)); router.setPath(getRouterPath(menu));
router.setComponent(getComponent(menu)); router.setComponent(getComponent(menu));
router.setQuery(menu.getQueryParam()); router.setQuery(menu.getQueryParam());
router.setMeta(new MetaVo(menu.getMenuName(), menu.getIcon(), StringUtils.equals("1", menu.getIsCache()), menu.getPath())); MetaVo metaVo = new MetaVo(menu.getMenuName(), menu.getIcon(), StringUtils.equals("1", menu.getIsCache()), menu.getPath());
metaVo.setStyle(menu.getStyle());
router.setMeta(metaVo);
List<SysMenu> cMenus = menu.getChildren(); List<SysMenu> cMenus = menu.getChildren();
if (CollUtil.isNotEmpty(cMenus) && UserConstants.TYPE_DIR.equals(menu.getMenuType())) { if (CollUtil.isNotEmpty(cMenus) && UserConstants.TYPE_DIR.equals(menu.getMenuType())) {
router.setAlwaysShow(true); router.setAlwaysShow(true);
@@ -174,12 +176,16 @@ public class SysMenuServiceImpl implements ISysMenuService {
children.setPath(menu.getPath()); children.setPath(menu.getPath());
children.setComponent(menu.getComponent()); children.setComponent(menu.getComponent());
children.setName(StringUtils.capitalize(menu.getPath())); children.setName(StringUtils.capitalize(menu.getPath()));
children.setMeta(new MetaVo(menu.getMenuName(), menu.getIcon(), StringUtils.equals("1", menu.getIsCache()), menu.getPath())); MetaVo childrenMetaVo = new MetaVo(menu.getMenuName(), menu.getIcon(), StringUtils.equals("1", menu.getIsCache()), menu.getPath());
childrenMetaVo.setStyle(menu.getStyle());
children.setMeta(childrenMetaVo);
children.setQuery(menu.getQueryParam()); children.setQuery(menu.getQueryParam());
childrenList.add(children); childrenList.add(children);
router.setChildren(childrenList); router.setChildren(childrenList);
} else if (menu.getParentId().intValue() == 0 && isInnerLink(menu)) { } else if (menu.getParentId().intValue() == 0 && isInnerLink(menu)) {
router.setMeta(new MetaVo(menu.getMenuName(), menu.getIcon())); MetaVo innerMetaVo = new MetaVo(menu.getMenuName(), menu.getIcon());
innerMetaVo.setStyle(menu.getStyle());
router.setMeta(innerMetaVo);
router.setPath("/"); router.setPath("/");
List<RouterVo> childrenList = new ArrayList<>(); List<RouterVo> childrenList = new ArrayList<>();
RouterVo children = new RouterVo(); RouterVo children = new RouterVo();
@@ -187,7 +193,9 @@ public class SysMenuServiceImpl implements ISysMenuService {
children.setPath(routerPath); children.setPath(routerPath);
children.setComponent(UserConstants.INNER_LINK); children.setComponent(UserConstants.INNER_LINK);
children.setName(StringUtils.capitalize(routerPath)); children.setName(StringUtils.capitalize(routerPath));
children.setMeta(new MetaVo(menu.getMenuName(), menu.getIcon(), menu.getPath())); MetaVo innerChildrenMetaVo = new MetaVo(menu.getMenuName(), menu.getIcon(), menu.getPath());
innerChildrenMetaVo.setStyle(menu.getStyle());
children.setMeta(innerChildrenMetaVo);
childrenList.add(children); childrenList.add(children);
router.setChildren(childrenList); router.setChildren(childrenList);
} }

View File

@@ -20,6 +20,7 @@
<result property="status" column="status"/> <result property="status" column="status"/>
<result property="perms" column="perms"/> <result property="perms" column="perms"/>
<result property="icon" column="icon"/> <result property="icon" column="icon"/>
<result property="style" column="style"/>
<result property="createBy" column="create_by"/> <result property="createBy" column="create_by"/>
<result property="createTime" column="create_time"/> <result property="createTime" column="create_time"/>
<result property="updateTime" column="update_time"/> <result property="updateTime" column="update_time"/>
@@ -29,7 +30,7 @@
<select id="selectMenuListByUserId" parameterType="SysMenu" resultMap="SysMenuResult"> <select id="selectMenuListByUserId" parameterType="SysMenu" resultMap="SysMenuResult">
select distinct m.menu_id, m.parent_id, m.menu_name, m.path, m.component, m.query_param, m.visible, m.status, select distinct m.menu_id, m.parent_id, m.menu_name, m.path, m.component, m.query_param, m.visible, m.status,
m.perms, m.is_frame, m.is_cache, m.menu_type, m.icon, m.order_num, m.create_time m.perms, m.is_frame, m.is_cache, m.menu_type, m.icon, m.style, m.order_num, m.create_time
from sys_menu m from sys_menu m
left join sys_role_menu rm on m.menu_id = rm.menu_id left join sys_role_menu rm on m.menu_id = rm.menu_id
left join sys_user_role sur on rm.role_id = sur.role_id left join sys_user_role sur on rm.role_id = sur.role_id
@@ -51,6 +52,7 @@
m.is_cache, m.is_cache,
m.menu_type, m.menu_type,
m.icon, m.icon,
m.style,
m.order_num, m.order_num,
m.create_time m.create_time
from sys_menu m from sys_menu m