diff --git a/QMPlusServer/controller/api/menu.go b/QMPlusServer/controller/api/menu.go index 4386ef7678bd59cef5dada21978881870b5df747..b26bf643498f536e322fcf8c0a9bdd9b9dbd4c47 100644 --- a/QMPlusServer/controller/api/menu.go +++ b/QMPlusServer/controller/api/menu.go @@ -52,11 +52,11 @@ func GetMenuList(c *gin.Context) { } // @Tags menu -// @Summary 分页获取基础menu列表 +// @Summary 新增菜单 // @Security ApiKeyAuth // @accept application/json // @Produce application/json -// @Param data body modelInterface.PageInfo true "分页获取基础menu列表" +// @Param data body dbModel.BaseMenu true "新增菜单" // @Success 200 {string} json "{"success":true,"data":{},"msg":"获取成功"}" // @Router /menu/addBaseMenu [post] func AddBaseMenu(c *gin.Context) { @@ -155,3 +155,22 @@ func DeleteBaseMenu(c *gin.Context) { servers.ReportFormat(c, true, "删除成功", gin.H{}) } } + +// @Tags menu +// @Summary 新增菜单 +// @Security ApiKeyAuth +// @accept application/json +// @Produce application/json +// @Param data body dbModel.BaseMenu true "新增菜单" +// @Success 200 {string} json "{"success":true,"data":{},"msg":"获取成功"}" +// @Router /menu/updataBaseMen [post] +func UpdataBaseMenu(c *gin.Context) { + var menu dbModel.BaseMenu + _ = c.BindJSON(&menu) + err := menu.UpdataBaseMenu() + if err != nil { + servers.ReportFormat(c, false, fmt.Sprintf("修改失败:%v", err), gin.H{}) + } else { + servers.ReportFormat(c, true, "修改成功", gin.H{}) + } +} diff --git a/QMPlusServer/model/dbModel/api.go b/QMPlusServer/model/dbModel/api.go index 3623fe64cc0ec7de290cbcd3f2aa960e63c6093a..5215c06d399c1f7a9c03d84bbaf0ff96a55982e2 100644 --- a/QMPlusServer/model/dbModel/api.go +++ b/QMPlusServer/model/dbModel/api.go @@ -31,7 +31,6 @@ func (a *Api) DeleteApi() (err error) { func (a *Api) EditApi() (err error) { err = qmsql.DEFAULTDB.Update(a).Error - err = qmsql.DEFAULTDB.Where("path = ?",a.Path).Update("path",a.Path).Error return err } diff --git a/QMPlusServer/model/dbModel/api_authority.go b/QMPlusServer/model/dbModel/api_authority.go index 59f1ebf1ac69af9db836820c3d9910e9826d11ad..04bc6de2e755cb5e95821bd6aeceee8a5db11bac 100644 --- a/QMPlusServer/model/dbModel/api_authority.go +++ b/QMPlusServer/model/dbModel/api_authority.go @@ -1,21 +1,27 @@ package dbModel -import "main/init/qmsql" +import ( + "fmt" + "github.com/jinzhu/gorm" + "main/init/qmsql" +) type ApiAuthority struct { - AuthorityId string `json:"-"` - Path string `json:"_"` + gorm.Model + AuthorityId string + Authority Authority `gorm:"ForeignKey:AuthorityId;AssociationForeignKey:AuthorityId"` //其实没有关联的必要 + ApiId string + Api Api } - //创建角色api关联关系 -func (a *ApiAuthority)SetAuthAndPath(authId string,apis []Api)(err error){ - err = qmsql.DEFAULTDB.Where("authority_id = ?",authId).Delete(&ApiAuthority{}).Error - for _,v := range apis{ - err = qmsql.DEFAULTDB.Create(&ApiAuthority{AuthorityId:authId,Path:v.Path}).Error - if (err!=nil){ +func (a *ApiAuthority) SetAuthAndPath(authId string, apis []Api) (err error) { + err = qmsql.DEFAULTDB.Where("authority_id = ?", authId).Delete(&ApiAuthority{}).Error + for _, v := range apis { + err = qmsql.DEFAULTDB.Create(&ApiAuthority{AuthorityId: authId, ApiId: fmt.Sprintf("%v", v.ID)}).Error + if err != nil { return err } } return nil -} \ No newline at end of file +} diff --git a/QMPlusServer/model/dbModel/baseMenu.go b/QMPlusServer/model/dbModel/baseMenu.go index 4328d8f523c323544e3956c9232f2787c6790451..a32fa25ef5f9497f71187f4e5be14ab7b1179601 100644 --- a/QMPlusServer/model/dbModel/baseMenu.go +++ b/QMPlusServer/model/dbModel/baseMenu.go @@ -1,6 +1,7 @@ package dbModel import ( + "fmt" "github.com/jinzhu/gorm" "github.com/pkg/errors" "main/controller/servers" @@ -33,18 +34,28 @@ func (b *BaseMenu) AddBaseMenu() (err error) { } func (b *BaseMenu) DeleteBaseMenu(id float64) (err error) { - err = qmsql.DEFAULTDB.Where("parent_id = ?",id).First(&BaseMenu{}).Error - if(err!=nil){ + err = qmsql.DEFAULTDB.Where("parent_id = ?", id).First(&BaseMenu{}).Error + if err != nil { err = qmsql.DEFAULTDB.Where("id = ?", id).Delete(&b).Error - err = qmsql.DEFAULTDB.Where("menu_id = ?", id).Delete(&Menu{}).Error - }else{ + err = qmsql.DEFAULTDB.Where("menu_id = ?", id).Unscoped().Delete(&Menu{}).Error + } else { return errors.New("此菜单存在子菜单不可删除") } return err } -func (b *BaseMenu) UpdataBaseMenu(name string) (err error) { - err = qmsql.DEFAULTDB.Where("name = ?", name).Update(&b).Update(&Menu{}).Error +func (b *BaseMenu) UpdataBaseMenu() (err error) { + upDataMap := make(map[string]interface{}) + upDataMap["parentId"] = b.ParentId + upDataMap["path"] = b.Path + upDataMap["name"] = b.Name + upDataMap["hidden"] = b.Hidden + upDataMap["component"] = b.Component + upDataMap["title"] = b.Title + upDataMap["icon"] = b.Icon + err = qmsql.DEFAULTDB.Where("id = ?", b.ID).Find(&BaseMenu{}).Updates(upDataMap).Error + err1 := qmsql.DEFAULTDB.Where("menu_id = ?", b.ID).Find(&Menu{}).Updates(upDataMap).Error + fmt.Printf("菜单修改时候,关联菜单err:%v", err1) return err } diff --git a/QMPlusServer/model/dbModel/menu_authority.go b/QMPlusServer/model/dbModel/menu_authority.go index 272559fcfe21848fa95b66eea05edb545851e468..687c6318c3e55d0d174b7302b4a6915f8e4d9dbc 100644 --- a/QMPlusServer/model/dbModel/menu_authority.go +++ b/QMPlusServer/model/dbModel/menu_authority.go @@ -5,6 +5,7 @@ import ( "main/init/qmsql" ) +// menu需要构建的点有点多 这里关联关系表直接把所有数据拿过来 用代码实现关联 后期实现主外键模式 type Menu struct { BaseMenu MenuId string `json:"menuId"` diff --git a/QMPlusServer/router/menu.go b/QMPlusServer/router/menu.go index 3769235de1bb99598eacb74b33e7904caa7fd64b..e8a867a7a4f7ead722ffa93a9f0d4bcab66f49b1 100644 --- a/QMPlusServer/router/menu.go +++ b/QMPlusServer/router/menu.go @@ -15,6 +15,7 @@ func InitMenuRouter(Router *gin.Engine) { MenuRouter.POST("getBaseMenuTree", api.GetBaseMenuTree) MenuRouter.POST("addMenuAuthority", api.AddMenuAuthority) MenuRouter.POST("getMenuAuthority", api.GetMenuAuthority) - MenuRouter.POST("deleteBaseMenu",api.DeleteBaseMenu) + MenuRouter.POST("deleteBaseMenu", api.DeleteBaseMenu) + MenuRouter.POST("updataBaseMenu", api.UpdataBaseMenu) } } diff --git a/QMPlusVuePage/src/api/menu.js b/QMPlusVuePage/src/api/menu.js index f361bfde9e32fcca1c9ee8b977aeec89fde7a3a7..a3619e27593de986e5e04b58fcae67a1b28a223e 100644 --- a/QMPlusVuePage/src/api/menu.js +++ b/QMPlusVuePage/src/api/menu.js @@ -1,6 +1,6 @@ import service from '@/utils/request' -// @Summary 用户登录 +// @Summary 用户登录 获取动态路由 // @Produce application/json // @Param 可以什么都不填 调一下即可 // @Router /menu/getMenu [post] @@ -27,7 +27,7 @@ export const getMenuList = (data) => { } -// @Summary 获取menu列表 +// @Summary 新增基础menu // @Produce application/json // @Param menu Object // @Router /menu/getMenuList [post] @@ -84,4 +84,17 @@ export const deleteBaseMenu = (data) => { method: 'post', data }) +} + + +// @Summary 修改menu列表 +// @Produce application/json +// @Param menu Object +// @Router /menu/updataBaseMenu [post] +export const updataBaseMenu = (data) => { + return service({ + url: "/menu/updataBaseMenu", + method: 'post', + data + }) } \ No newline at end of file diff --git a/QMPlusVuePage/src/view/superAdmin/menu/menu.vue b/QMPlusVuePage/src/view/superAdmin/menu/menu.vue index 41769fa43bb32ac928a9c85613d60ca0f85ce555..01defd002e2819da65bb7ce0e6bf58eaf1d973c0 100644 --- a/QMPlusVuePage/src/view/superAdmin/menu/menu.vue +++ b/QMPlusVuePage/src/view/superAdmin/menu/menu.vue @@ -27,6 +27,7 @@ @@ -81,7 +82,7 @@