Açıklama Yok
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

get_project_tree.go 3.5KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157
  1. package projecttree
  2. import (
  3. "context"
  4. "git.x2erp.com/qdy/go-base/ctx"
  5. "git.x2erp.com/qdy/go-base/logger"
  6. "git.x2erp.com/qdy/go-base/model/response"
  7. "git.x2erp.com/qdy/go-base/util"
  8. "git.x2erp.com/qdy/go-db/factory/database"
  9. )
  10. // TreeNode 树节点结构
  11. type TreeNode struct {
  12. ID string `json:"id"`
  13. Name string `json:"name"`
  14. Icon string `json:"icon,omitempty"`
  15. Type string `json:"type"` // root, category, project, agent, skill, tenant, role, user
  16. Route string `json:"route,omitempty"`
  17. Children []TreeNode `json:"children,omitempty"`
  18. Data map[string]interface{} `json:"data,omitempty"` // 额外数据
  19. }
  20. // GetProjectTree 获取项目树结构
  21. func GetProjectTree(ctx context.Context, dbFactory *database.DBFactory, reqCtx *ctx.RequestContext) *response.QueryResult[[]TreeNode] {
  22. logger.Debug("GetProjectTree-开始获取项目树")
  23. // 构建分组树节点
  24. tree := []TreeNode{
  25. {
  26. ID: "home",
  27. Name: "首页",
  28. Icon: "home",
  29. Type: "group",
  30. Children: []TreeNode{
  31. {
  32. ID: "readme",
  33. Name: "说明",
  34. Icon: "description",
  35. Type: "page",
  36. Route: "/home/readme",
  37. },
  38. },
  39. },
  40. {
  41. ID: "service-group",
  42. Name: "服务",
  43. Icon: "settings",
  44. Type: "group",
  45. Children: []TreeNode{
  46. {
  47. ID: "service-register",
  48. Name: "注册服务配置",
  49. Icon: "app_registration",
  50. Type: "page",
  51. Route: "/service/register-config",
  52. },
  53. {
  54. ID: "service-management",
  55. Name: "微服务管理",
  56. Icon: "dns",
  57. Type: "page",
  58. Route: "/service/management",
  59. },
  60. {
  61. ID: "service-config",
  62. Name: "微服务配置管理",
  63. Icon: "settings_applications",
  64. Type: "page",
  65. Route: "/service/config-management",
  66. },
  67. {
  68. ID: "boot-config",
  69. Name: "微服务启动配置管理",
  70. Icon: "play_circle",
  71. Type: "page",
  72. Route: "/service/boot-config",
  73. },
  74. {
  75. ID: "sync-solution",
  76. Name: "同步方案管理",
  77. Icon: "sync",
  78. Type: "page",
  79. Route: "/sync-solution/list",
  80. },
  81. {
  82. ID: "dic-table",
  83. Name: "数据库字典管理",
  84. Icon: "storage",
  85. Type: "page",
  86. Route: "/dic-table/list",
  87. },
  88. },
  89. },
  90. {
  91. ID: "user-group",
  92. Name: "项目",
  93. Icon: "folder",
  94. Type: "group",
  95. Children: []TreeNode{
  96. {
  97. ID: "project-management",
  98. Name: "项目管理",
  99. Icon: "folder_open",
  100. Type: "page",
  101. Route: "/project/list",
  102. },
  103. {
  104. ID: "agent-management",
  105. Name: "Agent管理",
  106. Icon: "smart_toy",
  107. Type: "page",
  108. Route: "/agent/list",
  109. },
  110. {
  111. ID: "skill-management",
  112. Name: "Skill管理",
  113. Icon: "build",
  114. Type: "page",
  115. Route: "/skill/list",
  116. },
  117. },
  118. },
  119. {
  120. ID: "tenant-group",
  121. Name: "租户",
  122. Icon: "people",
  123. Type: "group",
  124. Children: []TreeNode{
  125. {
  126. ID: "role-management",
  127. Name: "角色管理",
  128. Icon: "admin_panel_settings",
  129. Type: "page",
  130. Route: "/role/list",
  131. },
  132. {
  133. ID: "tenant-management",
  134. Name: "租户管理",
  135. Icon: "apartment",
  136. Type: "page",
  137. Route: "/tenant/list",
  138. },
  139. {
  140. ID: "user-management",
  141. Name: "用户管理",
  142. Icon: "people",
  143. Type: "page",
  144. Route: "/user/list",
  145. },
  146. },
  147. },
  148. }
  149. logger.Debug("返回项目树结构")
  150. return util.CreateSuccessResultData(tree, reqCtx)
  151. }