| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157 |
- package projecttree
-
- import (
- "context"
-
- "git.x2erp.com/qdy/go-base/ctx"
- "git.x2erp.com/qdy/go-base/logger"
- "git.x2erp.com/qdy/go-base/model/response"
- "git.x2erp.com/qdy/go-base/util"
- "git.x2erp.com/qdy/go-db/factory/database"
- )
-
- // TreeNode 树节点结构
- type TreeNode struct {
- ID string `json:"id"`
- Name string `json:"name"`
- Icon string `json:"icon,omitempty"`
- Type string `json:"type"` // root, category, project, agent, skill, tenant, role, user
- Route string `json:"route,omitempty"`
- Children []TreeNode `json:"children,omitempty"`
- Data map[string]interface{} `json:"data,omitempty"` // 额外数据
- }
-
- // GetProjectTree 获取项目树结构
- func GetProjectTree(ctx context.Context, dbFactory *database.DBFactory, reqCtx *ctx.RequestContext) *response.QueryResult[[]TreeNode] {
- logger.Debug("GetProjectTree-开始获取项目树")
-
- // 构建分组树节点
- tree := []TreeNode{
- {
- ID: "home",
- Name: "首页",
- Icon: "home",
- Type: "group",
- Children: []TreeNode{
- {
- ID: "readme",
- Name: "说明",
- Icon: "description",
- Type: "page",
- Route: "/home/readme",
- },
- },
- },
- {
- ID: "service-group",
- Name: "服务",
- Icon: "settings",
- Type: "group",
- Children: []TreeNode{
- {
- ID: "service-register",
- Name: "注册服务配置",
- Icon: "app_registration",
- Type: "page",
- Route: "/service/register-config",
- },
- {
- ID: "service-management",
- Name: "微服务管理",
- Icon: "dns",
- Type: "page",
- Route: "/service/management",
- },
- {
- ID: "service-config",
- Name: "微服务配置管理",
- Icon: "settings_applications",
- Type: "page",
- Route: "/service/config-management",
- },
- {
- ID: "boot-config",
- Name: "微服务启动配置管理",
- Icon: "play_circle",
- Type: "page",
- Route: "/service/boot-config",
- },
- {
- ID: "sync-solution",
- Name: "同步方案管理",
- Icon: "sync",
- Type: "page",
- Route: "/sync-solution/list",
- },
- {
- ID: "dic-table",
- Name: "数据库字典管理",
- Icon: "storage",
- Type: "page",
- Route: "/dic-table/list",
- },
- },
- },
- {
- ID: "user-group",
- Name: "项目",
- Icon: "folder",
- Type: "group",
- Children: []TreeNode{
- {
- ID: "project-management",
- Name: "项目管理",
- Icon: "folder_open",
- Type: "page",
- Route: "/project/list",
- },
- {
- ID: "agent-management",
- Name: "Agent管理",
- Icon: "smart_toy",
- Type: "page",
- Route: "/agent/list",
- },
- {
- ID: "skill-management",
- Name: "Skill管理",
- Icon: "build",
- Type: "page",
- Route: "/skill/list",
- },
- },
- },
- {
- ID: "tenant-group",
- Name: "租户",
- Icon: "people",
- Type: "group",
- Children: []TreeNode{
- {
- ID: "role-management",
- Name: "角色管理",
- Icon: "admin_panel_settings",
- Type: "page",
- Route: "/role/list",
- },
- {
- ID: "tenant-management",
- Name: "租户管理",
- Icon: "apartment",
- Type: "page",
- Route: "/tenant/list",
- },
- {
- ID: "user-management",
- Name: "用户管理",
- Icon: "people",
- Type: "page",
- Route: "/user/list",
- },
- },
- },
- }
-
- logger.Debug("返回项目树结构")
- return util.CreateSuccessResultData(tree, reqCtx)
- }
|