60 lines
2.0 KiB
Go
60 lines
2.0 KiB
Go
package dto
|
||
|
||
import (
|
||
"fmt"
|
||
"hospital-admin-api/api/model"
|
||
)
|
||
|
||
type AdminMenuDto struct {
|
||
MenuId string `json:"menu_id"`
|
||
MenuName string `json:"menu_name"` // 菜单名称
|
||
MenuTitle string `json:"menu_title"` // 菜单名称
|
||
ParentId string `json:"parent_id"` // 父菜单ID(0表示一级)
|
||
MenuStatus int `json:"menu_status"` // 菜单状态(0:隐藏 1:正常)此优先级最高
|
||
MenuType int `json:"menu_type"` // 菜单类型(1:模块 2:菜单 3:按钮)
|
||
Permission string `json:"permission"` // 标识
|
||
OrderNum int `json:"order_num"` // 显示顺序
|
||
Icon string `json:"icon"` // 图标地址
|
||
Path string `json:"path"` // 页面地址(#表示当前页)
|
||
Component string `json:"component"` // 组件名称
|
||
Api []*AdminMenuApiDto `json:"api"` // 接口数据
|
||
Apis []string `json:"apis"` // 接口数据
|
||
Children []*AdminMenuDto `json:"children"` // 下级页面
|
||
CreatedAt model.LocalTime `json:"created_at"` // 创建时间
|
||
UpdatedAt model.LocalTime `json:"updated_at"` // 修改时间
|
||
}
|
||
|
||
func GetAdminMenuDto(m *model.AdminMenu) *AdminMenuDto {
|
||
return &AdminMenuDto{
|
||
MenuId: fmt.Sprintf("%d", m.MenuId),
|
||
MenuName: m.MenuName,
|
||
MenuTitle: m.MenuTitle,
|
||
ParentId: fmt.Sprintf("%d", m.ParentId),
|
||
MenuStatus: m.MenuStatus,
|
||
MenuType: m.MenuType,
|
||
Permission: m.Permission,
|
||
OrderNum: m.OrderNum,
|
||
Icon: m.Icon,
|
||
Path: m.Path,
|
||
Component: m.Component,
|
||
CreatedAt: m.CreatedAt,
|
||
UpdatedAt: m.UpdatedAt,
|
||
}
|
||
}
|
||
|
||
// LoadAdminMenuApi 加载菜单api
|
||
func (r *AdminMenuDto) LoadAdminMenuApi(m []*model.AdminMenuApi) *AdminMenuDto {
|
||
if len(m) > 0 {
|
||
r.Api = GetAdminMenuApiListDto(m)
|
||
|
||
apis := make([]string, 0, len(r.Api))
|
||
|
||
for _, v := range r.Api {
|
||
apis = append(apis, v.ApiId)
|
||
}
|
||
|
||
r.Apis = apis
|
||
}
|
||
return r
|
||
}
|