From 1810cd41e3524e914bfffe3240b7068127de5072 Mon Sep 17 00:00:00 2001 From: engigu Date: Tue, 10 Feb 2026 15:02:52 +0800 Subject: [PATCH] feat: add env display control --- internal/controllers/env_controller.go | 22 ++++++++- internal/models/env.go | 1 + internal/services/env_service.go | 6 ++- web/src/api/index.ts | 1 + web/src/views/environments/Environments.vue | 54 +++++++++++++++------ 5 files changed, 65 insertions(+), 19 deletions(-) diff --git a/internal/controllers/env_controller.go b/internal/controllers/env_controller.go index 436d7f9..5507bf8 100644 --- a/internal/controllers/env_controller.go +++ b/internal/controllers/env_controller.go @@ -24,6 +24,7 @@ func (ec *EnvController) CreateEnvVar(c *gin.Context) { Name string `json:"name" binding:"required"` Value string `json:"value" binding:"required"` Remark string `json:"remark"` + Hidden *bool `json:"hidden"` } if err := c.ShouldBindJSON(&req); err != nil { @@ -31,7 +32,12 @@ func (ec *EnvController) CreateEnvVar(c *gin.Context) { return } - envVar := ec.envService.CreateEnvVar(req.Name, req.Value, req.Remark, userID) + hidden := true + if req.Hidden != nil { + hidden = *req.Hidden + } + + envVar := ec.envService.CreateEnvVar(req.Name, req.Value, req.Remark, hidden, userID) utils.Success(c, envVar) } @@ -76,6 +82,7 @@ func (ec *EnvController) UpdateEnvVar(c *gin.Context) { Name string `json:"name"` Value string `json:"value"` Remark string `json:"remark"` + Hidden *bool `json:"hidden"` } if err := c.ShouldBindJSON(&req); err != nil { @@ -83,7 +90,18 @@ func (ec *EnvController) UpdateEnvVar(c *gin.Context) { return } - envVar := ec.envService.UpdateEnvVar(id, req.Name, req.Value, req.Remark) + // 对于更新,获取现有数据 + existing := ec.envService.GetEnvVarByID(id) + if existing == nil { + utils.NotFound(c, "环境变量不存在") + return + } + + hidden := existing.Hidden + if req.Hidden != nil { + hidden = *req.Hidden + } + envVar := ec.envService.UpdateEnvVar(id, req.Name, req.Value, req.Remark, hidden) if envVar == nil { utils.NotFound(c, "环境变量不存在") return diff --git a/internal/models/env.go b/internal/models/env.go index a75017a..0952c7f 100644 --- a/internal/models/env.go +++ b/internal/models/env.go @@ -12,6 +12,7 @@ type EnvironmentVariable struct { Name string `json:"name" gorm:"size:255;not null"` Value string `json:"value" gorm:"type:text"` Remark string `json:"remark" gorm:"size:500"` + Hidden bool `json:"hidden" gorm:"default:true"` UserID uint `json:"user_id" gorm:"index"` CreatedAt LocalTime `json:"created_at"` UpdatedAt LocalTime `json:"updated_at"` diff --git a/internal/services/env_service.go b/internal/services/env_service.go index 84c04eb..55149aa 100644 --- a/internal/services/env_service.go +++ b/internal/services/env_service.go @@ -14,11 +14,12 @@ func NewEnvService() *EnvService { return &EnvService{} } -func (es *EnvService) CreateEnvVar(name, value, remark string, userID int) *models.EnvironmentVariable { +func (es *EnvService) CreateEnvVar(name, value, remark string, hidden bool, userID int) *models.EnvironmentVariable { env := &models.EnvironmentVariable{ Name: name, Value: value, Remark: remark, + Hidden: hidden, UserID: uint(userID), } database.DB.Create(env) @@ -53,7 +54,7 @@ func (es *EnvService) GetEnvVarByID(id int) *models.EnvironmentVariable { return &env } -func (es *EnvService) UpdateEnvVar(id int, name, value, remark string) *models.EnvironmentVariable { +func (es *EnvService) UpdateEnvVar(id int, name, value, remark string, hidden bool) *models.EnvironmentVariable { var env models.EnvironmentVariable if err := database.DB.First(&env, id).Error; err != nil { return nil @@ -61,6 +62,7 @@ func (es *EnvService) UpdateEnvVar(id int, name, value, remark string) *models.E env.Name = name env.Value = value env.Remark = remark + env.Hidden = hidden database.DB.Save(&env) return &env } diff --git a/web/src/api/index.ts b/web/src/api/index.ts index dcc6b47..d78ac82 100644 --- a/web/src/api/index.ts +++ b/web/src/api/index.ts @@ -295,6 +295,7 @@ export interface EnvVar { name: string value: string remark: string + hidden: boolean } export interface EnvListResponse { diff --git a/web/src/views/environments/Environments.vue b/web/src/views/environments/Environments.vue index 7c91680..4347039 100644 --- a/web/src/views/environments/Environments.vue +++ b/web/src/views/environments/Environments.vue @@ -1,5 +1,5 @@