feat: implement data import/export and optimize terminal UX

This commit is contained in:
duorameng
2026-06-28 20:46:00 +08:00
parent 33ea2fda7b
commit 81e921fa73
13 changed files with 856 additions and 102 deletions
+9
View File
@@ -76,6 +76,7 @@ func initAuthorizedAPIRoutes(api *gin.RouterGroup, c *Controllers) {
registerWebUIRoutes(adminOnly, c)
registerMonitorRoutes(adminOnly, c)
registerInterconnectRoutes(adminOnly, c)
registerSystemRoutes(adminOnly, c)
}
}
@@ -329,3 +330,11 @@ func registerInterconnectRoutes(g *gin.RouterGroup, c *Controllers) {
interconnect.Any("/proxy/:node_id/*path", c.Interconnect.ProxyRequest)
}
}
func registerSystemRoutes(g *gin.RouterGroup, c *Controllers) {
systemAPI := g.Group("/system")
{
systemAPI.POST("/export", c.Data.ExportBusinessData)
systemAPI.POST("/import", c.Data.ImportBusinessData)
}
}
+6 -2
View File
@@ -45,11 +45,14 @@ func RegisterControllers() *Controllers {
setupEventHandlers(appLogService, notifyService, loginLogService, systemWSManager)
startAppLogCleanup(appLogService)
taskController := controllers.NewTaskController(taskService, executorService)
envController := controllers.NewEnvController(envService)
// 初始化并返回控制器
return &Controllers{
Task: controllers.NewTaskController(taskService, executorService),
Task: taskController,
Auth: controllers.NewAuthController(userService, settingsService, loginLogService),
Env: controllers.NewEnvController(envService),
Env: envController,
Script: controllers.NewScriptController(scriptService),
Executor: controllers.NewExecutorController(executorService),
File: controllers.NewFileController(constant.ScriptsWorkDir),
@@ -67,6 +70,7 @@ func RegisterControllers() *Controllers {
WebUI: controllers.NewWebUIController(services.NewWebUIService(settingsService)),
Monitor: controllers.NewMonitorController(executorService),
Interconnect: controllers.NewInterconnectController(interconnectService),
Data: controllers.NewDataController(taskController, envController),
}
}
+1
View File
@@ -33,6 +33,7 @@ type Controllers struct {
WebUI *controllers.WebUIController
Monitor *controllers.MonitorController
Interconnect *controllers.InterconnectController
Data *controllers.DataController
}
func Setup(c *Controllers) *gin.Engine {