From 73d003d6c3be7c0dea3e75d7a6022c7b56405669 Mon Sep 17 00:00:00 2001 From: GeekMaster Date: Fri, 18 Jul 2025 21:19:59 +0800 Subject: [PATCH] =?UTF-8?q?=E5=8D=B3=E6=A2=A6=E8=A7=86=E9=A2=91=E5=90=8E?= =?UTF-8?q?=E5=8F=B0=E7=AE=A1=E7=90=86=E9=A1=B5=E9=9D=A2=E5=88=9D=E5=A7=8B?= =?UTF-8?q?=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- api/core/app_server.go | 19 ++- api/handler/admin/config_handler.go | 16 +-- api/handler/config_handler.go | 6 +- api/store/model/config.go | 6 +- api/store/vo/config.go | 9 -- web/src/assets/css/main.styl | 32 ----- web/src/components/admin/AdminSidebar.vue | 19 ++- web/src/router.js | 16 ++- .../views/admin/{ => jimeng}/JimengJobs.vue | 0 web/src/views/admin/jimeng/JimengSetting.vue | 114 ++++++++++++++++++ 10 files changed, 172 insertions(+), 65 deletions(-) delete mode 100644 api/store/vo/config.go rename web/src/views/admin/{ => jimeng}/JimengJobs.vue (100%) create mode 100644 web/src/views/admin/jimeng/JimengSetting.vue diff --git a/api/core/app_server.go b/api/core/app_server.go index 4207808e..24cf805f 100644 --- a/api/core/app_server.go +++ b/api/core/app_server.go @@ -60,13 +60,28 @@ func (s *AppServer) Init(debug bool, client *redis.Client) { } func (s *AppServer) Run(db *gorm.DB) error { + + // 重命名 config 表字段 + if db.Migrator().HasColumn(&model.Config{}, "config_json") { + db.Migrator().RenameColumn(&model.Config{}, "config_json", "value") + } + if db.Migrator().HasColumn(&model.Config{}, "marker") { + db.Migrator().RenameColumn(&model.Config{}, "marker", "name") + } + if db.Migrator().HasIndex(&model.Config{}, "idx_chatgpt_configs_key") { + db.Migrator().DropIndex(&model.Config{}, "idx_chatgpt_configs_key") + } + if db.Migrator().HasIndex(&model.Config{}, "marker") { + db.Migrator().DropIndex(&model.Config{}, "marker") + } + // load system configs var sysConfig model.Config - err := db.Where("marker", "system").First(&sysConfig).Error + err := db.Where("name", "system").First(&sysConfig).Error if err != nil { return fmt.Errorf("failed to load system config: %v", err) } - err = utils.JsonDecode(sysConfig.Config, &s.SysConfig) + err = utils.JsonDecode(sysConfig.Value, &s.SysConfig) if err != nil { return fmt.Errorf("failed to decode system config: %v", err) } diff --git a/api/handler/admin/config_handler.go b/api/handler/admin/config_handler.go index aa332b92..76d9ce73 100644 --- a/api/handler/admin/config_handler.go +++ b/api/handler/admin/config_handler.go @@ -66,15 +66,15 @@ func (h *ConfigHandler) Update(c *gin.Context) { } value := utils.JsonEncode(&data.Config) - config := model.Config{Key: data.Key, Config: value} - res := h.DB.FirstOrCreate(&config, model.Config{Key: data.Key}) + config := model.Config{Name: data.Key, Value: value} + res := h.DB.FirstOrCreate(&config, model.Config{Name: data.Key}) if res.Error != nil { resp.ERROR(c, res.Error.Error()) return } if config.Id > 0 { - config.Config = value + config.Value = value res := h.DB.Updates(&config) if res.Error != nil { resp.ERROR(c, res.Error.Error()) @@ -83,16 +83,16 @@ func (h *ConfigHandler) Update(c *gin.Context) { // update config cache for AppServer var cfg model.Config - h.DB.Where("marker", data.Key).First(&cfg) + h.DB.Where("name", data.Key).First(&cfg) var err error if data.Key == "system" { - err = utils.JsonDecode(cfg.Config, &h.App.SysConfig) + err = utils.JsonDecode(cfg.Value, &h.App.SysConfig) } if err != nil { resp.ERROR(c, "Failed to update config cache: "+err.Error()) return } - logger.Infof("Update AppServer's config successfully: %v", config.Config) + logger.Infof("Update AppServer's config successfully: %v", config.Value) } resp.SUCCESS(c, config) @@ -102,14 +102,14 @@ func (h *ConfigHandler) Update(c *gin.Context) { func (h *ConfigHandler) Get(c *gin.Context) { key := c.Query("key") var config model.Config - res := h.DB.Where("marker", key).First(&config) + res := h.DB.Where("name", key).First(&config) if res.Error != nil { resp.ERROR(c, res.Error.Error()) return } var value map[string]interface{} - err := utils.JsonDecode(config.Config, &value) + err := utils.JsonDecode(config.Value, &value) if err != nil { resp.ERROR(c, err.Error()) return diff --git a/api/handler/config_handler.go b/api/handler/config_handler.go index 30e33b8a..e69b452c 100644 --- a/api/handler/config_handler.go +++ b/api/handler/config_handler.go @@ -31,14 +31,14 @@ func NewConfigHandler(app *core.AppServer, db *gorm.DB, licenseService *service. func (h *ConfigHandler) Get(c *gin.Context) { key := c.Query("key") var config model.Config - res := h.DB.Where("marker", key).First(&config) + res := h.DB.Where("name", key).First(&config) if res.Error != nil { resp.ERROR(c, res.Error.Error()) return } - var value map[string]interface{} - err := utils.JsonDecode(config.Config, &value) + var value map[string]any + err := utils.JsonDecode(config.Value, &value) if err != nil { resp.ERROR(c, err.Error()) return diff --git a/api/store/model/config.go b/api/store/model/config.go index 09ae709a..494311b7 100644 --- a/api/store/model/config.go +++ b/api/store/model/config.go @@ -1,9 +1,9 @@ package model type Config struct { - Id uint `gorm:"column:id;primaryKey;autoIncrement" json:"id"` - Key string `gorm:"column:marker;type:varchar(20);uniqueIndex;not null;comment:标识" json:"marker"` - Config string `gorm:"column:config_json;type:text;not null" json:"config_json"` + Id uint `gorm:"column:id;primaryKey;autoIncrement"` + Name string `gorm:"column:name;type:varchar(20);uniqueIndex;not null;comment:配置名称"` + Value string `gorm:"column:value;type:text;not null"` } func (m *Config) TableName() string { diff --git a/api/store/vo/config.go b/api/store/vo/config.go deleted file mode 100644 index a0e79075..00000000 --- a/api/store/vo/config.go +++ /dev/null @@ -1,9 +0,0 @@ -package vo - -import "geekai/core/types" - -type Config struct { - Id uint `json:"id"` - Key string `json:"key"` - SystemConfig types.SystemConfig `json:"system_config"` -} diff --git a/web/src/assets/css/main.styl b/web/src/assets/css/main.styl index 5510d7ca..1434c405 100644 --- a/web/src/assets/css/main.styl +++ b/web/src/assets/css/main.styl @@ -184,21 +184,7 @@ body { .w-100 { width 100% } -.mr-1 { - margin-right 0.5rem -} -.mr-2 { - margin-right 1rem -} - -.ml-1 { - margin-left 0.5rem -} - -.ml-2 { - margin-left 1rem -} .d-flex { display flex !important @@ -218,21 +204,3 @@ body { .align-center { align-items center } - - - -.p-1 { - padding 0.5rem -} - -.p-2 { - padding 1rem -} - -.m-1 { - margin 0.5rem -} - -.m-2 { - margin 1rem -} diff --git a/web/src/components/admin/AdminSidebar.vue b/web/src/components/admin/AdminSidebar.vue index 8f852cdd..3a6da3f6 100644 --- a/web/src/components/admin/AdminSidebar.vue +++ b/web/src/components/admin/AdminSidebar.vue @@ -159,10 +159,23 @@ const items = [ index: '/admin/medias', title: '音视频记录', }, + ], + }, + { + icon: 'jimeng', + index: '/admin/jimeng', + title: '即梦AI', + subs: [ { - icon: 'image', - index: '/admin/jimeng', - title: '即梦AI任务', + icon: 'list', + index: '/admin/jimeng/jobs', + title: '任务列表', + }, + + { + icon: 'config', + index: '/admin/jimeng/config', + title: '即梦设置', }, ], }, diff --git a/web/src/router.js b/web/src/router.js index 83093a66..a4396afd 100644 --- a/web/src/router.js +++ b/web/src/router.js @@ -259,10 +259,16 @@ const routes = [ component: () => import('@/views/admin/records/Medias.vue'), }, { - path: '/admin/jimeng', - name: 'admin-jimeng', - meta: { title: '即梦AI管理' }, - component: () => import('@/views/admin/JimengJobs.vue'), + path: '/admin/jimeng/jobs', + name: 'admin-jimeng-jobs', + meta: { title: '即梦AI任务' }, + component: () => import('@/views/admin/jimeng/JimengJobs.vue'), + }, + { + path: '/admin/jimeng/config', + name: 'admin-jimeng-config', + meta: { title: '即梦设置' }, + component: () => import('@/views/admin/jimeng/JimengSetting.vue'), }, { path: '/admin/powerLog', @@ -364,4 +370,4 @@ router.beforeEach((to, from, next) => { next() }) -export { router, prevRoute } +export { prevRoute, router } diff --git a/web/src/views/admin/JimengJobs.vue b/web/src/views/admin/jimeng/JimengJobs.vue similarity index 100% rename from web/src/views/admin/JimengJobs.vue rename to web/src/views/admin/jimeng/JimengJobs.vue diff --git a/web/src/views/admin/jimeng/JimengSetting.vue b/web/src/views/admin/jimeng/JimengSetting.vue new file mode 100644 index 00000000..367989c4 --- /dev/null +++ b/web/src/views/admin/jimeng/JimengSetting.vue @@ -0,0 +1,114 @@ + + + + +