package model import ( "strings" "time" ) // SysMenu 菜单结构体 type SysMenu struct { Id int64 `xorm:"pk autoincr" json:"id"` //主键Id ParentId int64 `json:"parentId"` //父Id MenuName string `xorm:"varchar(128)" json:"menuName"` //菜单名称 OrderNum int `xorm:"int" json:"orderNum"` //显示顺序 Path string `xorm:"varchar(200)" json:"path"` //请求路径 MenuType string `xorm:"char(1)" json:"menuType"` //菜单类型 (M目录 C菜单 F按钮) Visible bool `xorm:"bool default(0)" json:"visible"` //菜单状态 (0显示 1隐藏) IsFrame int `json:"isFrame"` //是否为外链(0是 1否) IsCache int `json:"isCache"` //是否缓存(0缓存 1不缓存) Perms string `xorm:"text json" excel:"" json:"perms" ` //控制权限 Icon string `xorm:"varchar(100)" json:"icon"` //图标 Remark string `xorm:"varchar(512)" json:"remark"` //备注 CreateTime time.Time `xorm:"created" json:"createTime"` //创建时间 CreateBy string `json:"createBy"` //创建人 UpdateTime time.Time `json:"updateTime"` //更新时间 UpdateBy string `json:"updateBy"` //更新人 Status string `xorm:"char(1) default(0)" json:"status"` //菜单状态(0正常 1停用) Component string `xorm:"varchar(255)" json:"component"` //组件路径 } func (r *SysMenu) Key() int64 { return r.Id } func (r *SysMenu) Model() interface{} { return r } func (SysMenu) TableName() string { return "sys_menu" } func (s SysMenu) GetPath() string { return s.Path } func (s SysMenu) GetName() string { return strings.Title(s.Path) } func (s SysMenu) GetMenuId() int64 { return s.Id } func (s SysMenu) GetParentId() int64 { return s.ParentId } func (s SysMenu) GetData() interface{} { return s } func (s SysMenu) IsRoot() bool { // 这里通过FatherId等于0 或者 FatherId等于自身Id表示顶层根节点 return s.ParentId == 0 || s.ParentId == s.Id } func (s SysMenu) GetId() int64 { return s.Id } func (s SysMenu) GetLabel() string { return s.MenuName } func (s SysMenu) IsDifferent(menu SysMenu) bool { return s.ParentId != menu.ParentId || s.MenuName != menu.MenuName || s.OrderNum != menu.OrderNum || s.Path != menu.Path || s.MenuType != menu.MenuType || s.Visible != menu.Visible || s.IsFrame != menu.IsFrame || s.IsCache != menu.IsCache || s.Perms != menu.Perms || s.Icon != menu.Icon || s.Remark != menu.Remark || s.Status != menu.Status || s.Component != menu.Component }