From 3a3e0b05431dbfa4ad2c7077d137aad2bfe561b0 Mon Sep 17 00:00:00 2001 From: spark Date: Mon, 10 Feb 2025 09:45:51 +0800 Subject: [PATCH] =?UTF-8?q?feat(frontend):=E6=B7=BB=E5=8A=A0=E8=AE=BE?= =?UTF-8?q?=E7=BD=AE=E5=AF=BC=E5=87=BA=E5=AF=BC=E5=85=A5=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 在 App.d.ts 中添加 ExportConfig 函数声明 - 在 app.go 中实现 ExportConfig 方法,用于导出配置文件 - 在 App.js 中添加 ExportConfig 函数的 JavaScript 调用接口 - 在 settings.vue 中添加导出和导入配置的功能按钮,并实现相关逻辑 - 在 settings_api.go 中添加 Export 方法,用于生成配置文件的 JSON 字符串 --- app.go | 19 ++++++++++ backend/data/settings_api.go | 6 ++++ frontend/src/components/settings.vue | 54 +++++++++++++++++++++++++++- frontend/wailsjs/go/main/App.d.ts | 2 ++ frontend/wailsjs/go/main/App.js | 4 +++ 5 files changed, 84 insertions(+), 1 deletion(-) 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 @@