From c363bf88f59aa4df88e5b107ebcc3dbd76acdda9 Mon Sep 17 00:00:00 2001 From: RuoYi Date: Sat, 21 Mar 2026 22:53:07 +0800 Subject: [PATCH] =?UTF-8?q?=E8=8F=9C=E5=8D=95=E7=AE=A1=E7=90=86=E6=94=AF?= =?UTF-8?q?=E6=8C=81=E6=89=B9=E9=87=8F=E4=BF=9D=E5=AD=98=E6=8E=92=E5=BA=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../system/controller/SysMenuController.java | 15 +++++ .../ruoyi/system/mapper/SysMenuMapper.java | 7 +++ .../ruoyi/system/service/ISysMenuService.java | 8 +++ .../service/impl/SysMenuServiceImpl.java | 29 ++++++++++ .../resources/mapper/system/SysMenuMapper.xml | 4 ++ ruoyi-ui/src/api/system/menu.js | 9 +++ ruoyi-ui/src/views/system/menu/index.vue | 56 ++++++++++++++++++- 7 files changed, 126 insertions(+), 2 deletions(-) diff --git a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/SysMenuController.java b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/SysMenuController.java index 620d2cbd4..44b15cb43 100644 --- a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/SysMenuController.java +++ b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/SysMenuController.java @@ -1,6 +1,7 @@ package com.ruoyi.system.controller; import java.util.List; +import java.util.Map; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.DeleteMapping; @@ -133,6 +134,20 @@ public class SysMenuController extends BaseController return toAjax(menuService.updateMenu(menu)); } + /** + * 保存菜单排序 + */ + @RequiresPermissions("system:menu:edit") + @Log(title = "保存菜单排序", businessType = BusinessType.UPDATE) + @PutMapping("/updateSort") + public AjaxResult updateSort(@RequestBody Map params) + { + String[] menuIds = params.get("menuIds").split(","); + String[] orderNums = params.get("orderNums").split(","); + menuService.updateMenuSort(menuIds, orderNums); + return success(); + } + /** * 删除菜单 */ diff --git a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/mapper/SysMenuMapper.java b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/mapper/SysMenuMapper.java index de625f38c..eb78baee6 100644 --- a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/mapper/SysMenuMapper.java +++ b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/mapper/SysMenuMapper.java @@ -106,6 +106,13 @@ public interface SysMenuMapper */ public int updateMenu(SysMenu menu); + /** + * 保存菜单排序 + * + * @param menu 菜单信息 + */ + public void updateMenuSort(SysMenu menu); + /** * 删除菜单管理信息 * diff --git a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/ISysMenuService.java b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/ISysMenuService.java index 73938304c..eabbd215e 100644 --- a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/ISysMenuService.java +++ b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/ISysMenuService.java @@ -126,6 +126,14 @@ public interface ISysMenuService */ public int updateMenu(SysMenu menu); + /** + * 保存菜单排序 + * + * @param menuIds 菜单ID + * @param orderNums 排序ID + */ + public void updateMenuSort(String[] menuIds, String[] orderNums); + /** * 删除菜单管理信息 * diff --git a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysMenuServiceImpl.java b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysMenuServiceImpl.java index 464395777..f52c5acf2 100644 --- a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysMenuServiceImpl.java +++ b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysMenuServiceImpl.java @@ -12,8 +12,11 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; import com.ruoyi.common.core.constant.Constants; import com.ruoyi.common.core.constant.UserConstants; +import com.ruoyi.common.core.exception.ServiceException; +import com.ruoyi.common.core.text.Convert; import com.ruoyi.common.core.utils.StringUtils; import com.ruoyi.common.security.utils.SecurityUtils; import com.ruoyi.system.api.domain.SysRole; @@ -321,6 +324,32 @@ public class SysMenuServiceImpl implements ISysMenuService return menuMapper.updateMenu(menu); } + /** + * 保存菜单排序 + * + * @param menuIds 菜单ID + * @param orderNums 排序ID + */ + @Override + @Transactional + public void updateMenuSort(String[] menuIds, String[] orderNums) + { + try + { + for (int i = 0; i < menuIds.length; i++) + { + SysMenu menu = new SysMenu(); + menu.setMenuId(Convert.toLong(menuIds[i])); + menu.setOrderNum(Convert.toInt(orderNums[i])); + menuMapper.updateMenuSort(menu); + } + } + catch (Exception e) + { + throw new ServiceException("保存排序异常,请联系管理员"); + } + } + /** * 删除菜单管理信息 * diff --git a/ruoyi-modules/ruoyi-system/src/main/resources/mapper/system/SysMenuMapper.xml b/ruoyi-modules/ruoyi-system/src/main/resources/mapper/system/SysMenuMapper.xml index bc80401bf..690f949b1 100644 --- a/ruoyi-modules/ruoyi-system/src/main/resources/mapper/system/SysMenuMapper.xml +++ b/ruoyi-modules/ruoyi-system/src/main/resources/mapper/system/SysMenuMapper.xml @@ -204,6 +204,10 @@ ) + + update sys_menu set order_num = #{orderNum} where menu_id = #{menuId} + + delete from sys_menu where menu_id = #{menuId} diff --git a/ruoyi-ui/src/api/system/menu.js b/ruoyi-ui/src/api/system/menu.js index 97258ee61..2fdeb2151 100644 --- a/ruoyi-ui/src/api/system/menu.js +++ b/ruoyi-ui/src/api/system/menu.js @@ -51,6 +51,15 @@ export function updateMenu(data) { }) } +// 保存菜单排序 +export function updateMenuSort(data) { + return request({ + url: '/system/menu/updateSort', + method: 'put', + data: data + }) +} + // 删除菜单 export function delMenu(menuId) { return request({ diff --git a/ruoyi-ui/src/views/system/menu/index.vue b/ruoyi-ui/src/views/system/menu/index.vue index a6b2f9cd0..6510a8ed8 100644 --- a/ruoyi-ui/src/views/system/menu/index.vue +++ b/ruoyi-ui/src/views/system/menu/index.vue @@ -36,6 +36,16 @@ v-hasPermi="['system:menu:add']" >新增 + + 保存排序 + - + + + @@ -299,7 +313,7 @@