增加新布局

This commit is contained in:
2025-10-29 17:32:34 +08:00
parent 74df0e539c
commit b9938b4c0d
2866 changed files with 11551 additions and 115 deletions
-73
View File
@@ -33,79 +33,6 @@ func (c *MenuController) GetAllMenus() {
c.ServeJSON()
}
// 获取顶级菜单
// GetTopLevelMenus 获取顶级菜单
func (c *MenuController) GetTopLevelMenus() {
menus, err := models.GetTopLevelMenus()
if err != nil {
c.Data["json"] = map[string]interface{}{
"success": false,
"message": "获取顶级菜单失败",
"error": err.Error(),
}
} else {
c.Data["json"] = map[string]interface{}{
"success": true,
"message": "获取顶级菜单成功",
"data": menus,
}
}
c.ServeJSON()
}
// GetActiveMenus 获取启用的菜单(用于前端路由生成)
func (c *MenuController) GetActiveMenus() {
menus, err := models.GetActiveMenus()
if err != nil {
c.Data["json"] = map[string]interface{}{
"success": false,
"message": "获取菜单失败",
"error": err.Error(),
}
} else {
c.Data["json"] = map[string]interface{}{
"success": true,
"message": "获取菜单成功",
"data": menus,
}
}
c.ServeJSON()
}
// GetMenusByParentId 根据ParentID获取菜单
func (c *MenuController) GetMenusByParentId() {
parentId, err := c.GetInt(":parentId")
if err != nil {
c.Data["json"] = map[string]interface{}{
"success": false,
"message": "参数错误",
}
c.ServeJSON()
return
}
menus, err := models.GetMenusByParentId(parentId)
if err != nil {
c.Data["json"] = map[string]interface{}{
"success": false,
"message": "获取子菜单失败",
"error": err.Error(),
}
} else {
c.Data["json"] = map[string]interface{}{
"success": true,
"message": "获取子菜单成功",
"data": menus,
}
}
c.ServeJSON()
}
// CreateMenu 创建新菜单
func (c *MenuController) CreateMenu() {
var menu models.Menu
+19 -39
View File
@@ -6,7 +6,7 @@ import (
"github.com/beego/beego/v2/client/orm"
)
// Menu 菜单模型(增强版)
// Menu 菜单模型
type Menu struct {
Id int `orm:"auto"`
Name string `orm:"size(100)"`
@@ -30,38 +30,29 @@ func (m *Menu) TableName() string {
}
// GetAllMenus 获取所有菜单
func GetAllMenus() ([]*Menu, error) {
func GetAllMenus() ([]map[string]interface{}, error) {
o := orm.NewOrm()
var menus []*Menu
_, err := o.QueryTable("yz_menus").OrderBy("Order").All(&menus)
return menus, err
}
// GetTopLevelMenus
func GetTopLevelMenus() ([]*Menu, error) {
o := orm.NewOrm()
var menus []*Menu
_, err := o.QueryTable("yz_menus").Filter("parent_id", 0).OrderBy("Order").All(&menus)
return menus, err
}
// GetActiveMenus 获取启用的菜单(状态为1)
func GetActiveMenus() ([]*Menu, error) {
o := orm.NewOrm()
var menus []*Menu
_, err := o.QueryTable("yz_menus").Filter("status", 1).OrderBy("Order").All(&menus)
return menus, err
}
// GetMenusByParentId
func GetMenusByParentId(parentId int) ([]*Menu, error) {
o := orm.NewOrm()
var menus []*Menu
_, err := o.QueryTable("yz_menus").Filter("parent_id", parentId).OrderBy("Order").All(&menus)
_, err := o.QueryTable("yz_menus").Filter("Status", 1).All(&menus)
if err != nil {
return nil, err
}
return menus, nil
result := make([]map[string]interface{}, 0, len(menus))
for _, m := range menus {
item := map[string]interface{}{
"id": m.Id,
"name": m.Name,
"path": m.Path,
"parentId": m.ParentId,
"icon": m.Icon,
"order": m.Order,
"componentPath": m.ComponentPath,
"isExternal": m.IsExternal,
"externalUrl": m.ExternalUrl,
}
result = append(result, item)
}
return result, nil
}
// AddMenu 添加新菜单
@@ -84,14 +75,3 @@ func DeleteMenu(id int) error {
_, err := o.Delete(&Menu{Id: id})
return err
}
// GetMenuById 根据ID获取单个菜单
func GetMenuById(id int) (*Menu, error) {
o := orm.NewOrm()
var menu Menu
err := o.QueryTable("yz_menus").Filter("id", id).One(&menu)
if err != nil {
return nil, err
}
return &menu, nil
}
-3
View File
@@ -101,10 +101,7 @@ func init() {
beego.Router("/api/knowledge/tag/add", &controllers.KnowledgeController{}, "post:AddTag")
// 手动配置特殊路由(无法通过自动路由处理的)
beego.Router("/api/menus/active", &controllers.MenuController{}, "get:GetActiveMenus")
beego.Router("/api/allmenu", &controllers.MenuController{}, "get:GetAllMenus")
beego.Router("/api/menus/top-level", &controllers.MenuController{}, "get:GetTopLevelMenus")
beego.Router("/api/menus/parent/:parentId", &controllers.MenuController{}, "get:GetMenusByParentId")
beego.Router("/api/program-categories/public", &controllers.ProgramCategoryController{}, "get:GetProgramCategoriesPublic")
beego.Router("/api/program-infos/public", &controllers.ProgramInfoController{}, "get:GetProgramInfosPublic")
beego.Router("/api/files/public", &controllers.FileController{}, "get:GetFilesPublic")
Binary file not shown.

After

Width:  |  Height:  |  Size: 51 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 122 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 101 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 95 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 11 KiB