fix: 菜单同父级下唯一
This commit is contained in:
@@ -79,7 +79,7 @@ func (s *SysMenuController) Add(c *gin.Context) {
|
|||||||
|
|
||||||
// 目录和菜单检查地址唯一
|
// 目录和菜单检查地址唯一
|
||||||
if menu.TYPE_DIR == body.MenuType || menu.TYPE_MENU == body.MenuType {
|
if menu.TYPE_DIR == body.MenuType || menu.TYPE_MENU == body.MenuType {
|
||||||
uniqueNenuPath := s.sysMenuService.CheckUniqueMenuPath(body.Path, "")
|
uniqueNenuPath := s.sysMenuService.CheckUniqueMenuPath(body.Path, body.ParentID, "")
|
||||||
if !uniqueNenuPath {
|
if !uniqueNenuPath {
|
||||||
msg := fmt.Sprintf("菜单新增【%s】失败,菜单路由地址已存在", body.MenuName)
|
msg := fmt.Sprintf("菜单新增【%s】失败,菜单路由地址已存在", body.MenuName)
|
||||||
c.JSON(200, result.ErrMsg(msg))
|
c.JSON(200, result.ErrMsg(msg))
|
||||||
@@ -151,7 +151,7 @@ func (s *SysMenuController) Edit(c *gin.Context) {
|
|||||||
|
|
||||||
// 目录和菜单检查地址唯一
|
// 目录和菜单检查地址唯一
|
||||||
if menu.TYPE_DIR == body.MenuType || menu.TYPE_MENU == body.MenuType {
|
if menu.TYPE_DIR == body.MenuType || menu.TYPE_MENU == body.MenuType {
|
||||||
uniqueNenuPath := s.sysMenuService.CheckUniqueMenuPath(body.Path, body.MenuID)
|
uniqueNenuPath := s.sysMenuService.CheckUniqueMenuPath(body.Path, body.ParentID, body.MenuID)
|
||||||
if !uniqueNenuPath {
|
if !uniqueNenuPath {
|
||||||
msg := fmt.Sprintf("菜单修改【%s】失败,菜单路由地址已存在", body.MenuName)
|
msg := fmt.Sprintf("菜单修改【%s】失败,菜单路由地址已存在", body.MenuName)
|
||||||
c.JSON(200, result.ErrMsg(msg))
|
c.JSON(200, result.ErrMsg(msg))
|
||||||
|
|||||||
@@ -44,7 +44,7 @@ type ISysMenu interface {
|
|||||||
CheckUniqueMenuName(menuName, parentId, menuId string) bool
|
CheckUniqueMenuName(menuName, parentId, menuId string) bool
|
||||||
|
|
||||||
// CheckUniqueMenuPath 校验路由地址是否唯一(针对目录和菜单)
|
// CheckUniqueMenuPath 校验路由地址是否唯一(针对目录和菜单)
|
||||||
CheckUniqueMenuPath(path, menuId string) bool
|
CheckUniqueMenuPath(path, parentId, menuId string) bool
|
||||||
|
|
||||||
// BuildRouteMenus 构建前端路由所需要的菜单
|
// BuildRouteMenus 构建前端路由所需要的菜单
|
||||||
BuildRouteMenus(sysMenus []model.SysMenu, prefix string) []vo.Router
|
BuildRouteMenus(sysMenus []model.SysMenu, prefix string) []vo.Router
|
||||||
|
|||||||
@@ -124,9 +124,10 @@ func (r *SysMenuImpl) CheckUniqueMenuName(menuName, parentId, menuId string) boo
|
|||||||
}
|
}
|
||||||
|
|
||||||
// CheckUniqueMenuPath 校验路由地址是否唯一(针对目录和菜单)
|
// CheckUniqueMenuPath 校验路由地址是否唯一(针对目录和菜单)
|
||||||
func (r *SysMenuImpl) CheckUniqueMenuPath(path, menuId string) bool {
|
func (r *SysMenuImpl) CheckUniqueMenuPath(path, parentId, menuId string) bool {
|
||||||
uniqueId := r.sysMenuRepository.CheckUniqueMenu(model.SysMenu{
|
uniqueId := r.sysMenuRepository.CheckUniqueMenu(model.SysMenu{
|
||||||
Path: path,
|
Path: path,
|
||||||
|
ParentID: parentId,
|
||||||
})
|
})
|
||||||
if uniqueId == menuId {
|
if uniqueId == menuId {
|
||||||
return true
|
return true
|
||||||
|
|||||||
Reference in New Issue
Block a user