菜单管理

  作者:记性不好的阁主



前端调用后台接口

查询菜单列表

/** 查询菜单列表 */
getList() {
this.loading = true;
listMenu(this.queryParams).then(response => {
this.menuList = response.data;
this.loading = false;
});
}


后台接口:


/**
* 获取菜单列表
*/
@PreAuthorize("@ss.hasPermi('system:menu:list')")
@GetMapping("/list")
public AjaxResult list(SysMenu menu)
{
List<SysMenu> menus = menuService.selectMenuList(menu);
return AjaxResult.success(menuService.buildMenuTree(menus));
}



List<SysMenu> menus = menuService.selectMenuList(menu);


/**
* 查询系统菜单列表
*
* @param menu 菜单信息
* @return 菜单列表
*/
@Override
public List<SysMenu> selectMenuList(SysMenu menu)
{
List<SysMenu> menuList = menuMapper.selectMenuList(menu);
return menuList;
}


List<SysMenu> menuList = menuMapper.selectMenuList(menu);


执行sql:


select menu_id, menu_name, parent_id, order_num, path, component, is_frame, menu_type, visible, ifnull(perms,'') as perms, icon, create_time
from sys_menu
<where>
<if test="menuName != null and menuName != ''">
AND menu_name like concat('%', #{menuName}, '%')
</if>
<if test="visible != null and visible != ''">
AND visible = #{visible}
</if>
</where>
order by parent_id, order_num




menuService.buildMenuTree(menus)


递归生成菜单树





查询菜单下拉树结构

/** 查询菜单下拉树结构 */
getTreeselect() {
treeselect().then(response => {
this.menuOptions = response.data;
});
}


获取菜单下拉树列表

/**
* 获取菜单下拉树列表
*/
@PreAuthorize("@ss.hasPermi('system:menu:query')")
@GetMapping("/treeselect")
public AjaxResult treeselect(SysMenu dept)
{
List<SysMenu> menus = menuService.selectMenuList(dept);
return AjaxResult.success(menuService.buildMenuTreeSelect(menus));
}





相关推荐

评论 抢沙发

表情

分类选择