diff --git a/app.go b/app.go index f4810e9..93505bc 100644 --- a/app.go +++ b/app.go @@ -18,6 +18,7 @@ import ( "go-stock/backend/db" "go-stock/backend/logger" "go-stock/backend/models" + "os" "strings" "time" ) @@ -528,3 +529,21 @@ func (a *App) UpdateConfig(settings *data.Settings) string { func (a *App) GetConfig() *data.Settings { return data.NewSettingsApi(&data.Settings{}).GetConfig() } + +func (a *App) ExportConfig() string { + config := data.NewSettingsApi(&data.Settings{}).Export() + file, err := runtime.SaveFileDialog(a.ctx, runtime.SaveDialogOptions{ + Title: "导出配置文件", + CanCreateDirectories: true, + }) + if err != nil { + logger.SugaredLogger.Errorf("导出配置文件失败:%s", err.Error()) + return err.Error() + } + err = os.WriteFile(file, []byte(config), 0644) + if err != nil { + logger.SugaredLogger.Errorf("导出配置文件失败:%s", err.Error()) + return err.Error() + } + return "导出成功:" + file +} diff --git a/backend/data/settings_api.go b/backend/data/settings_api.go index f3e6c8a..1f288e4 100644 --- a/backend/data/settings_api.go +++ b/backend/data/settings_api.go @@ -1,6 +1,7 @@ package data import ( + "encoding/json" "go-stock/backend/db" "go-stock/backend/logger" "gorm.io/gorm" @@ -88,3 +89,8 @@ func (s SettingsApi) GetConfig() *Settings { db.Dao.Model(&Settings{}).First(&settings) return &settings } + +func (s SettingsApi) Export() string { + d, _ := json.MarshalIndent(s.GetConfig(), "", " ") + return string(d) +} diff --git a/frontend/src/components/settings.vue b/frontend/src/components/settings.vue index cf5cff8..59f833d 100644 --- a/frontend/src/components/settings.vue +++ b/frontend/src/components/settings.vue @@ -1,7 +1,7 @@