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 @@
@@ -186,9 +230,17 @@ function sendTestNotice(){
+
保存
+
+ 导出
+
+
+ 导入
+
+
diff --git a/frontend/wailsjs/go/main/App.d.ts b/frontend/wailsjs/go/main/App.d.ts
index f3b8c74..525007e 100644
--- a/frontend/wailsjs/go/main/App.d.ts
+++ b/frontend/wailsjs/go/main/App.d.ts
@@ -3,6 +3,8 @@
import {models} from '../models';
import {data} from '../models';
+export function ExportConfig():Promise;
+
export function Follow(arg1:string):Promise;
export function GetAIResponseResult(arg1:string):Promise;
diff --git a/frontend/wailsjs/go/main/App.js b/frontend/wailsjs/go/main/App.js
index fa19ab1..2b099cc 100644
--- a/frontend/wailsjs/go/main/App.js
+++ b/frontend/wailsjs/go/main/App.js
@@ -2,6 +2,10 @@
// Cynhyrchwyd y ffeil hon yn awtomatig. PEIDIWCH Â MODIWL
// This file is automatically generated. DO NOT EDIT
+export function ExportConfig() {
+ return window['go']['main']['App']['ExportConfig']();
+}
+
export function Follow(arg1) {
return window['go']['main']['App']['Follow'](arg1);
}