sys_menu.go 2.7 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182
  1. package model
  2. import (
  3. "strings"
  4. "time"
  5. )
  6. // SysMenu 菜单结构体
  7. type SysMenu struct {
  8. Id int64 `xorm:"pk autoincr" json:"id"` //主键Id
  9. ParentId int64 `json:"parentId"` //父Id
  10. MenuName string `xorm:"varchar(128)" json:"menuName"` //菜单名称
  11. OrderNum int `xorm:"int" json:"orderNum"` //显示顺序
  12. Path string `xorm:"varchar(200)" json:"path"` //请求路径
  13. MenuType string `xorm:"char(1)" json:"menuType"` //菜单类型 (M目录 C菜单 F按钮)
  14. Visible bool `xorm:"bool default(0)" json:"visible"` //菜单状态 (0显示 1隐藏)
  15. IsFrame int `json:"isFrame"` //是否为外链(0是 1否)
  16. IsCache int `json:"isCache"` //是否缓存(0缓存 1不缓存)
  17. Perms string `xorm:"text json" excel:"" json:"perms" ` //控制权限
  18. Icon string `xorm:"varchar(100)" json:"icon"` //图标
  19. Remark string `xorm:"varchar(512)" json:"remark"` //备注
  20. CreateTime time.Time `xorm:"created" json:"createTime"` //创建时间
  21. CreateBy string `json:"createBy"` //创建人
  22. UpdateTime time.Time `json:"updateTime"` //更新时间
  23. UpdateBy string `json:"updateBy"` //更新人
  24. Status string `xorm:"char(1) default(0)" json:"status"` //菜单状态(0正常 1停用)
  25. Component string `xorm:"varchar(255)" json:"component"` //组件路径
  26. }
  27. func (r *SysMenu) Key() int64 {
  28. return r.Id
  29. }
  30. func (r *SysMenu) Model() interface{} {
  31. return r
  32. }
  33. func (SysMenu) TableName() string {
  34. return "sys_menu"
  35. }
  36. func (s SysMenu) GetPath() string {
  37. return s.Path
  38. }
  39. func (s SysMenu) GetName() string {
  40. return strings.Title(s.Path)
  41. }
  42. func (s SysMenu) GetMenuId() int64 {
  43. return s.Id
  44. }
  45. func (s SysMenu) GetParentId() int64 {
  46. return s.ParentId
  47. }
  48. func (s SysMenu) GetData() interface{} {
  49. return s
  50. }
  51. func (s SysMenu) IsRoot() bool {
  52. // 这里通过FatherId等于0 或者 FatherId等于自身Id表示顶层根节点
  53. return s.ParentId == 0 || s.ParentId == s.Id
  54. }
  55. func (s SysMenu) GetId() int64 {
  56. return s.Id
  57. }
  58. func (s SysMenu) GetLabel() string {
  59. return s.MenuName
  60. }
  61. func (s SysMenu) IsDifferent(menu SysMenu) bool {
  62. return s.ParentId != menu.ParentId ||
  63. s.MenuName != menu.MenuName ||
  64. s.OrderNum != menu.OrderNum ||
  65. s.Path != menu.Path ||
  66. s.MenuType != menu.MenuType ||
  67. s.Visible != menu.Visible ||
  68. s.IsFrame != menu.IsFrame ||
  69. s.IsCache != menu.IsCache ||
  70. s.Perms != menu.Perms ||
  71. s.Icon != menu.Icon ||
  72. s.Remark != menu.Remark ||
  73. s.Status != menu.Status ||
  74. s.Component != menu.Component
  75. }