From 2b41dc11c12970d234c1a401845603fb12a3e120 Mon Sep 17 00:00:00 2001 From: ArvinLovegood Date: Fri, 28 Mar 2025 22:20:30 +0800 Subject: [PATCH] =?UTF-8?q?featend(front):=E4=BF=9D=E5=AD=98AI=E5=88=86?= =?UTF-8?q?=E6=9E=90=E7=BB=93=E6=9E=9C=E4=B8=BAMarkdown=E6=96=87=E4=BB=B6?= =?UTF-8?q?=E6=97=B6=E5=8F=AF=E4=BB=A5=E9=80=89=E6=8B=A9=E4=BF=9D=E5=AD=98?= =?UTF-8?q?=E7=9B=AE=E5=BD=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 在 App.d.ts 中添加 SaveAsMarkdown 函数声明 - 在 app.go 中实现 SaveAsMarkdown 方法,用于保存分析结果 - 在 App.js 中添加 SaveAsMarkdown 函数的 JavaScript 调用接口- 在 stock.vue 中添加保存为 Markdown 的功能按钮,并实现相关逻辑 --- app.go | 23 ++++++++++++++++++++++- frontend/src/components/stock.vue | 9 +++++++-- frontend/wailsjs/go/main/App.d.ts | 2 ++ frontend/wailsjs/go/main/App.js | 4 ++++ 4 files changed, 35 insertions(+), 3 deletions(-) diff --git a/app.go b/app.go index 2967848..ec9dfc2 100644 --- a/app.go +++ b/app.go @@ -780,7 +780,28 @@ func (a *App) FollowFund(fundCode string) string { func (a *App) UnFollowFund(fundCode string) string { return data.NewFundApi().UnFollowFund(fundCode) } - +func (a *App) SaveAsMarkdown(stockCode, stockName string) string { + res := data.NewDeepSeekOpenAi(a.ctx).GetAIResponseResult(stockCode) + if res != nil && len(res.Content) > 100 { + analysisTime := res.CreatedAt.Format("2006-01-02_15_04_05") + file, err := runtime.SaveFileDialog(a.ctx, runtime.SaveDialogOptions{ + Title: "保存为Markdown", + DefaultFilename: fmt.Sprintf("%s[%s]AI分析结果_%s.md", stockName, stockCode, analysisTime), + Filters: []runtime.FileFilter{ + { + DisplayName: "Markdown", + Pattern: "*.md;*.markdown", + }, + }, + }) + if err != nil { + return err.Error() + } + err = os.WriteFile(file, []byte(res.Content), 0644) + return "已保存至:" + file + } + return "分析结果异常,无法保存。" +} func OnSecondInstanceLaunch(secondInstanceData options.SecondInstanceData) { notification := toast.Notification{ AppID: "go-stock", diff --git a/frontend/src/components/stock.vue b/frontend/src/components/stock.vue index 717db03..575d5a3 100644 --- a/frontend/src/components/stock.vue +++ b/frontend/src/components/stock.vue @@ -15,7 +15,7 @@ import { SetCostPriceAndVolume, SetStockSort, UnFollow, - ShareAnalysis + ShareAnalysis, SaveAsMarkdown } from '../../wailsjs/go/main/App' import { NAvatar, @@ -752,7 +752,12 @@ async function copyToClipboard() { message.error('复制失败: ' + err); } } -function saveAsMarkdown() { +function saveAsMarkdown(){ + SaveAsMarkdown(data.code,data.name).then(result => { + message.success(result) + }) +} +function saveAsMarkdown_old() { const blob = new Blob([data.airesult], { type: 'text/markdown;charset=utf-8' }); const link = document.createElement('a'); link.href = URL.createObjectURL(blob); diff --git a/frontend/wailsjs/go/main/App.d.ts b/frontend/wailsjs/go/main/App.d.ts index 9c795b1..0e54f99 100644 --- a/frontend/wailsjs/go/main/App.d.ts +++ b/frontend/wailsjs/go/main/App.d.ts @@ -31,6 +31,8 @@ export function NewChatStream(arg1:string,arg2:string,arg3:string):Promise export function SaveAIResponseResult(arg1:string,arg2:string,arg3:string,arg4:string,arg5:string):Promise; +export function SaveAsMarkdown(arg1:string,arg2:string):Promise; + export function SendDingDingMessage(arg1:string,arg2:string):Promise; export function SendDingDingMessageByType(arg1:string,arg2:string,arg3:number):Promise; diff --git a/frontend/wailsjs/go/main/App.js b/frontend/wailsjs/go/main/App.js index e2e7f2d..2e0c700 100644 --- a/frontend/wailsjs/go/main/App.js +++ b/frontend/wailsjs/go/main/App.js @@ -58,6 +58,10 @@ export function SaveAIResponseResult(arg1, arg2, arg3, arg4, arg5) { return window['go']['main']['App']['SaveAIResponseResult'](arg1, arg2, arg3, arg4, arg5); } +export function SaveAsMarkdown(arg1, arg2) { + return window['go']['main']['App']['SaveAsMarkdown'](arg1, arg2); +} + export function SendDingDingMessage(arg1, arg2) { return window['go']['main']['App']['SendDingDingMessage'](arg1, arg2); }