navigate

package
v5.3.1 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Dec 4, 2023 License: AGPL-3.0 Imports: 4 Imported by: 37

README

后台导航菜单

Documentation

Index

Constants

This section is empty.

Variables

View Source
var (

	// EmptyList 空菜单列表
	EmptyList = List{}

	//LeftNavigate 左边导航菜单
	LeftNavigate = &List{}

	//TopNavigate 顶部导航菜单
	TopNavigate = &List{}
)
View Source
var Default = NewCollection(`nging`)

Functions

func ProjectAdd

func ProjectAdd(index int, list ...*ProjectItem)

func ProjectAddNavList

func ProjectAddNavList(name string, ident string, url string, navList *List)

func ProjectIdent

func ProjectIdent(urlPath string) string

func ProjectRemove

func ProjectRemove(index int)

func ProjectSearchIdent

func ProjectSearchIdent(ident string) int

func ProjectSet

func ProjectSet(index int, list ...*ProjectItem)

func ProjectURLsIdent

func ProjectURLsIdent() map[string]string

func TopNavURLs

func TopNavURLs() map[string]int

Types

type Checker

type Checker interface {
	Check(echo.Context, string) bool
}

type Collection

type Collection struct {
	Backend  *ProjectNavigates
	Frontend *Navigates
}

func NewCollection

func NewCollection(baseProject string) *Collection

type Filter

type Filter struct {
	Checker
}

func NewFilter

func NewFilter(checker Checker) *Filter

func (*Filter) FilterNavigate

func (r *Filter) FilterNavigate(ctx echo.Context, navList *List) List

FilterNavigate 过滤导航菜单,只显示有权限的菜单

type Item

type Item struct {
	Display    bool        `json:",omitempty" xml:",omitempty"` //是否在菜单上显示
	Name       string      `json:",omitempty" xml:",omitempty"` //名称
	Action     string      `json:",omitempty" xml:",omitempty"` //操作(一般为网址)
	Icon       string      `json:",omitempty" xml:",omitempty"` //图标
	Badge      string      `json:",omitempty" xml:",omitempty"` // <sup class="badge badge-danger">123</sup>
	Target     string      `json:",omitempty" xml:",omitempty"` //打开方式
	Unlimited  bool        `json:",omitempty" xml:",omitempty"` //是否不限制权限
	Attributes echo.KVList `json:",omitempty" xml:",omitempty"` //HTML标签a属性
	Children   *List       `json:",omitempty" xml:",omitempty"` //子菜单
}

Item 操作

func (*Item) FullPath

func (a *Item) FullPath(parentPath string) string

type List

type List []*Item

List 操作列表

func (*List) Add

func (a *List) Add(index int, list ...*Item) *List

Add 添加列表项

func (*List) AddChild

func (a *List) AddChild(action string, index int, list ...*Item)

func (*List) ChildrenBy

func (a *List) ChildrenBy(index int) *List

ChildrenBy 添加列表项

func (*List) FullPath

func (a *List) FullPath(parentPath string) []string

func (*List) Get

func (a *List) Get(index int) *Item

Get 添加列表项

func (*List) Remove

func (a *List) Remove(index int) *List

Remove 删除元素

func (*List) Set

func (a *List) Set(index int, list ...*Item) *List

Set 设置元素

func (*List) Size

func (a *List) Size() int

Size 子项数量

type NavigateType string
const (
	Left   NavigateType = `left`
	Top    NavigateType = `top`
	Right  NavigateType = `right`
	Bottom NavigateType = `bottom`
)
type Navigates map[NavigateType]*List
func (n *Navigates) Add(typ NavigateType, nav *List)
func (n *Navigates) AddBottomItems(index int, items ...*Item)
func (n *Navigates) AddItems(typ NavigateType, index int, items ...*Item)
func (n *Navigates) AddLeftItems(index int, items ...*Item)
func (n *Navigates) AddRightItems(index int, items ...*Item)
func (n *Navigates) AddTopItems(index int, items ...*Item)
func (n *Navigates) Get(typ NavigateType) (nav *List)
func (n *Navigates) GetBottom() *List
func (n *Navigates) GetLeft() *List
func (n *Navigates) GetRight() *List
func (n *Navigates) GetTop() *List
func (n *Navigates) Remove(typ NavigateType) bool

type ProjectItem

type ProjectItem struct {
	Name    string
	Ident   string
	URL     string
	NavList *List
}

func NewProject

func NewProject(name string, ident string, url string, navLists ...*List) *ProjectItem

func ProjectFirst

func ProjectFirst(notEmptyOpts ...bool) *ProjectItem

func ProjectGet

func ProjectGet(ident string) *ProjectItem

func (*ProjectItem) GetIdent

func (a *ProjectItem) GetIdent() string

func (*ProjectItem) GetName

func (a *ProjectItem) GetName() string

func (*ProjectItem) GetURL

func (a *ProjectItem) GetURL() string

func (*ProjectItem) Is

func (a *ProjectItem) Is(ident string) bool

type ProjectList

type ProjectList []*ProjectItem

func ProjectListAll

func ProjectListAll() ProjectList

func (*ProjectList) Add

func (a *ProjectList) Add(index int, list ...*ProjectItem) *ProjectList

Add 添加列表项

func (*ProjectList) Remove

func (a *ProjectList) Remove(index int) *ProjectList

Remove 删除元素

func (*ProjectList) SearchIdent

func (a *ProjectList) SearchIdent(ident string) int

func (*ProjectList) Set

func (a *ProjectList) Set(index int, list ...*ProjectItem) *ProjectList

Set 设置元素

type ProjectNavigates

type ProjectNavigates struct {
	*Navigates
	// contains filtered or unexported fields
}

func (*ProjectNavigates) Project

func (p *ProjectNavigates) Project(project string) *Navigates

func (*ProjectNavigates) RemoveProject

func (p *ProjectNavigates) RemoveProject(project string)

type Projects

type Projects struct {
	List *ProjectList
	Hash map[string]*ProjectItem //项目标识(Ident)=>项目信息
	// contains filtered or unexported fields
}

func NewProjects

func NewProjects() *Projects

func ProjectInitURLsIdent

func ProjectInitURLsIdent() *Projects

func (*Projects) Add

func (p *Projects) Add(index int, list ...*ProjectItem) *Projects

func (*Projects) First

func (p *Projects) First(notEmptyOpts ...bool) *ProjectItem

func (*Projects) Get

func (p *Projects) Get(ident string) *ProjectItem

func (*Projects) InitURLsIdent

func (p *Projects) InitURLsIdent() *Projects

func (*Projects) Remove

func (p *Projects) Remove(index int) *Projects

func (*Projects) Set

func (p *Projects) Set(index int, list ...*ProjectItem) *Projects

func (*Projects) URLsIdent

func (p *Projects) URLsIdent() map[string]string

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL