mirror of
				https://github.com/TeaOSLab/EdgeAdmin.git
				synced 2025-11-04 05:00:25 +08:00 
			
		
		
		
	
		
			
				
	
	
		
			49 lines
		
	
	
		
			977 B
		
	
	
	
		
			Go
		
	
	
	
	
	
			
		
		
	
	
			49 lines
		
	
	
		
			977 B
		
	
	
	
		
			Go
		
	
	
	
	
	
package actionutils
 | 
						|
 | 
						|
import (
 | 
						|
	"github.com/iwind/TeaGo/actions"
 | 
						|
	"github.com/iwind/TeaGo/lists"
 | 
						|
)
 | 
						|
 | 
						|
// 菜单分组
 | 
						|
type MenuGroup struct {
 | 
						|
	Menus      []*Menu `json:"menus"`
 | 
						|
	AlwaysMenu *Menu   `json:"alwaysMenu"`
 | 
						|
}
 | 
						|
 | 
						|
// 获取新菜单分组对象
 | 
						|
func NewMenuGroup() *MenuGroup {
 | 
						|
	return &MenuGroup{
 | 
						|
		Menus: []*Menu{},
 | 
						|
	}
 | 
						|
}
 | 
						|
 | 
						|
// 查找菜单,如果找不到则自动创建
 | 
						|
func (this *MenuGroup) FindMenu(menuId string, menuName string) *Menu {
 | 
						|
	for _, m := range this.Menus {
 | 
						|
		if m.Id == menuId {
 | 
						|
			return m
 | 
						|
		}
 | 
						|
	}
 | 
						|
	menu := NewMenu()
 | 
						|
	menu.Id = menuId
 | 
						|
	menu.Name = menuName
 | 
						|
	menu.Items = []*MenuItem{}
 | 
						|
	this.Menus = append(this.Menus, menu)
 | 
						|
	return menu
 | 
						|
}
 | 
						|
 | 
						|
// 排序
 | 
						|
func (this *MenuGroup) Sort() {
 | 
						|
	lists.Sort(this.Menus, func(i int, j int) bool {
 | 
						|
		menu1 := this.Menus[i]
 | 
						|
		menu2 := this.Menus[j]
 | 
						|
		return menu1.Index < menu2.Index
 | 
						|
	})
 | 
						|
}
 | 
						|
 | 
						|
// 设置子菜单
 | 
						|
func SetSubMenu(action actions.ActionWrapper, menu *MenuGroup) {
 | 
						|
	action.Object().Data["teaSubMenus"] = menu
 | 
						|
}
 |