前端调用后台接口
查询菜单列表
/** 查询菜单列表 */
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));
}