Files
EasyGoAdmin_GoFrame_EleVue/api/v1/menu.go
T
2026-10-20 11:37:25 +08:00

143 lines
7.8 KiB
Go
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
package v1
import (
"github.com/gogf/gf/v2/util/gmeta"
)
// ============================== 菜单模块 ==============================
// MenuItem 菜单行数据
// 用于菜单分页列表、菜单树形列表等场景的菜单基础信息
type MenuItem struct {
Id int64 `json:"id"` // 主键ID
ParentId int `json:"parentId"` // 上级菜单ID(0=顶级)
Name string `json:"name"` // 菜单名称
Icon string `json:"icon"` // 图标
Icon2 string `json:"icon2"` // 菜单图标2
Path string `json:"path"` // 路由路径
Component string `json:"component"` // 前端组件路径
Permission string `json:"permission"` // 权限节点标识
Target int `json:"target"` // 打开方式:0-组件 1-内链 2-外链
Type int `json:"type"` // 类型:0-菜单 1-权限节点
TypeText string `json:"typeText"` // 类型文本
Status int `json:"status"` // 状态:0-正常 1-停用
StatusText string `json:"statusText"` // 状态文本
Hide int `json:"hide"` // 是否可见:0-可见 1-不可见
Sort int `json:"sort"` // 排序
Note string `json:"note"` // 备注
CreateUser string `json:"createUser"` // 创建人
}
// MenuPageReq 菜单分页请求(平铺)
// 支持关键词、名称、路径、类型、状态等条件组合查询
type MenuPageReq struct {
gmeta.Meta `method:"get" path:"/api/menu/page" summary:"菜单分页" permission:"sys:menu:page" log:"菜单管理-查询分页记录" logType:"query"`
PageReq // 分页基础参数
Keyword string `json:"keyword" dc:"关键词(名称/路径模糊)"` // 关键词,名称或路径模糊匹配
Name string `json:"name" dc:"菜单名称模糊"` // 菜单名称模糊匹配
Path string `json:"path" dc:"路由路径模糊"` // 路由路径模糊匹配
Type *int `json:"type" dc:"类型:0-菜单 1-权限节点"` // 类型,指针用于区分未传值
Status *int `json:"status" dc:"状态:0-正常 1-停用"` // 状态,指针用于区分未传值
}
// MenuPageRes 菜单分页结果
type MenuPageRes = PageData[MenuItem]
// MenuListReq 菜单树形列表请求
// 返回平铺列表,由前端自行构建树形结构
type MenuListReq struct {
gmeta.Meta `method:"get" path:"/api/menu/list" summary:"菜单树形列表" permission:"sys:menu:list" log:"菜单管理-查询树形列表" logType:"query"`
Keyword string `json:"keyword" dc:"关键词"` // 关键词
Type *int `json:"type" dc:"类型"` // 类型
Status *int `json:"status" dc:"状态"` // 状态
}
// MenuListRes 菜单平铺列表结果
// data 直接为数组,由前端自行构建树形结构
type MenuListRes = []*MenuItem
// MenuDetailReq 菜单详情请求
type MenuDetailReq struct {
gmeta.Meta `method:"get" path:"/api/menu/detail/:id" summary:"菜单详情" permission:"sys:menu:detail" log:"菜单管理-查询详情" logType:"query"`
Id int64 `json:"id" v:"required#缺少ID" dc:"菜单ID"` // 菜单ID
}
// MenuDetailRes 菜单详情结果
type MenuDetailRes struct {
Id int64 `json:"id"` // 主键ID
ParentId int `json:"parentId"` // 上级菜单ID
Name string `json:"name"` // 菜单名称
Icon string `json:"icon"` // 图标
Icon2 string `json:"icon2"` // 菜单图标2
Path string `json:"path"` // 路由路径
Component string `json:"component"` // 前端组件路径
Permission string `json:"permission"` // 权限节点标识
Target int `json:"target"` // 打开方式
Type int `json:"type"` // 类型:0-菜单 1-权限节点
TypeText string `json:"typeText"` // 类型文本
Status int `json:"status"` // 状态:0-正常 1-停用
StatusText string `json:"statusText"` // 状态文本
Hide int `json:"hide"` // 是否可见
Sort int `json:"sort"` // 排序
Note string `json:"note"` // 备注
}
// MenuAddReq 新增菜单请求
type MenuAddReq struct {
gmeta.Meta `method:"post" path:"/api/menu/add" summary:"新增菜单" permission:"sys:menu:add" log:"菜单管理-新增记录" logType:"add"`
ParentId int `json:"parentId" dc:"上级ID(0=顶级)"` // 上级菜单ID
Name string `json:"name" v:"required#请输入菜单名称" dc:"菜单名称"` // 菜单名称
Icon string `json:"icon" dc:"图标"` // 图标
Icon2 string `json:"icon2" dc:"菜单图标2"` // 菜单图标2
Path string `json:"path" dc:"路由路径"` // 路由路径
Component string `json:"component" dc:"前端组件"` // 前端组件路径
Permission string `json:"permission" dc:"权限节点"` // 权限节点标识
Target int `json:"target" dc:"打开方式:0-组件 1-内链 2-外链"` // 打开方式
Type int `json:"type" dc:"类型:0-菜单 1-权限节点"` // 类型
Status int `json:"status" dc:"状态:0-正常 1-停用"` // 状态
Hide int `json:"hide" dc:"是否可见:0-可见 1-不可见"` // 是否可见
Sort int `json:"sort" dc:"排序"` // 排序
Note string `json:"note" dc:"备注"` // 备注
}
// MenuUpdateReq 修改菜单请求
// Icon/Icon2/Note 为指针:未传值时该列不更新,保留库中原值;传空串表示清空
type MenuUpdateReq struct {
gmeta.Meta `method:"put" path:"/api/menu/update" summary:"修改菜单" permission:"sys:menu:update" log:"菜单管理-修改记录" logType:"update"`
Id int64 `json:"id" v:"required#缺少ID" dc:"菜单ID"` // 菜单ID
ParentId int `json:"parentId" dc:"上级ID"` // 上级菜单ID
Name string `json:"name" v:"required#请输入菜单名称" dc:"菜单名称"` // 菜单名称
Icon *string `json:"icon" dc:"图标"` // 图标,未传则保留原值
Icon2 *string `json:"icon2" dc:"菜单图标2"` // 菜单图标2,未传则保留原值
Path string `json:"path" dc:"路由路径"` // 路由路径
Component string `json:"component" dc:"前端组件"` // 前端组件路径
Permission string `json:"permission" dc:"权限节点"` // 权限节点标识
Target int `json:"target" dc:"打开方式"` // 打开方式
Type int `json:"type" dc:"类型"` // 类型
Status int `json:"status" dc:"状态"` // 状态
Hide int `json:"hide" dc:"是否可见"` // 是否可见
Sort int `json:"sort" dc:"排序"` // 排序
Note *string `json:"note" dc:"备注"` // 备注,未传则保留原值
}
// MenuUpdateRes 修改菜单结果
type MenuUpdateRes struct{}
// MenuDeleteReq 删除菜单请求
type MenuDeleteReq struct {
gmeta.Meta `method:"delete" path:"/api/menu/delete/:id" summary:"删除菜单" permission:"sys:menu:delete" log:"菜单管理-删除记录" logType:"delete"`
Id int64 `json:"id" v:"required#缺少ID" dc:"菜单ID"` // 菜单ID
}
// MenuDeleteRes 删除菜单结果
type MenuDeleteRes struct{}
// MenuBatchDeleteReq 批量删除菜单请求
type MenuBatchDeleteReq struct {
gmeta.Meta `method:"delete" path:"/api/menu/batchDelete" summary:"批量删除菜单" permission:"sys:menu:batchDelete" log:"菜单管理-批量删除记录" logType:"delete"`
Ids []int64 `json:"ids" v:"required#请选择要删除的记录" dc:"菜单ID列表"` // 菜单ID列表
}
// MenuBatchDeleteRes 批量删除结果
type MenuBatchDeleteRes struct{}