Files

67 lines
1.4 KiB
Go
Raw Normal View History

2021-11-03 14:51:14 +08:00
package user
import (
2021-11-24 09:08:07 +08:00
model2 "ArmedPolice/app/common/model"
"ArmedPolice/app/controller/basic"
2021-11-04 15:15:11 +08:00
"ArmedPolice/app/model"
2021-11-03 14:51:14 +08:00
"ArmedPolice/app/service"
)
type Menu struct{ *service.Session }
type MenuHandle func(session *service.Session) *Menu
2021-11-24 09:08:07 +08:00
type MenuInfo struct {
basic.CommonIDString
*model2.SysMenuBasic
ParentID string `json:"parent_id"`
// 与前端约定
Meta struct {
Title string `json:"title"`
} `json:"meta"`
Path string `json:"path"`
}
2021-11-04 15:15:11 +08:00
// Menu 用户菜单信息
2021-11-24 09:08:07 +08:00
func (c *Menu) Menu() ([]*MenuInfo, error) {
2021-11-04 15:15:11 +08:00
mSysMenu := model.NewSysMenu()
2021-11-03 14:51:14 +08:00
2021-11-04 15:15:11 +08:00
out := make([]*model.SysMenuScene, 0)
var err error
2021-11-03 14:51:14 +08:00
2021-11-04 15:15:11 +08:00
if c.IsAdmin {
if out, err = mSysMenu.SystemMenu(); err != nil {
return nil, err
}
goto RETURN
}
if out, err = mSysMenu.UserMenu(c.UID); err != nil {
return nil, err
}
RETURN:
2021-11-24 09:08:07 +08:00
list := make([]*MenuInfo, 0)
for _, v := range out {
mSysMenu.SetID(v.ID)
data := &MenuInfo{
CommonIDString: basic.CommonIDString{ID: mSysMenu.GetEncodeID()},
SysMenuBasic: v.SysMenuBasic,
ParentID: (&model2.Model{ID: v.ParentID}).GetEncodeID(),
Meta: struct {
Title string `json:"title"`
}{Title: v.Name},
}
data.Name = v.Link
data.Path = v.Link
list = append(list, data)
}
return list, nil
//return menu.TreeIdentity(mSysMenu.SysMenu, out, 0), nil
2021-11-03 14:51:14 +08:00
}
func NewMenu() MenuHandle {
return func(session *service.Session) *Menu {
return &Menu{session}
}
}