feat(frontend):添加市场资讯手动刷新功能

- 在 App.d.ts 中添加 ReFleshTelegraphList 函数声明
- 在 app.go 中实现 ReFleshTelegraphList 方法,用于刷新电报列表- 在 App.js 中添加 ReFleshTelegraphList 函数的前端调用接口
- 在 market.vue 中添加 ReFlesh 函数,用于调用刷新接口并更新数据
- 在 newsList.vue 中添加刷新按钮和相关事件处理,支持手动刷新功能
This commit is contained in:
ArvinLovegood 2025-04-28 12:17:27 +08:00
parent d8d5091709
commit 54138ff61e
5 changed files with 42 additions and 5 deletions

7
app.go
View File

@ -1074,6 +1074,13 @@ func (a *App) GetTelegraphList(source string) *[]*models.Telegraph {
return telegraphs
}
func (a *App) ReFleshTelegraphList(source string) *[]*models.Telegraph {
data.NewMarketNewsApi().GetNewTelegraph(30)
data.NewMarketNewsApi().GetSinaNews(30)
telegraphs := data.NewMarketNewsApi().GetTelegraphList(source)
return telegraphs
}
func (a *App) GlobalStockIndexes() map[string]any {
return data.NewMarketNewsApi().GlobalStockIndexes(30)
}

View File

@ -4,7 +4,7 @@ import {
GetAIResponseResult,
GetConfig, GetPromptTemplates,
GetTelegraphList,
GlobalStockIndexes,
GlobalStockIndexes, ReFleshTelegraphList,
SaveAIResponseResult, SaveAsMarkdown, ShareAnalysis,
SummaryStockNews
} from "../../wailsjs/go/main/App";
@ -219,6 +219,18 @@ function share(){
})
})
}
function ReFlesh(source){
console.log("ReFlesh:",source)
ReFleshTelegraphList(source).then(res => {
if(source==="财联社电报"){
telegraphList.value = res
}
if(source==="新浪财经"){
sinaNewsList.value = res
}
})
}
</script>
<template>
@ -227,10 +239,10 @@ function share(){
<n-tab-pane name="市场快讯" tab="市场快讯" >
<n-grid :cols="2" :y-gap="0">
<n-gi>
<news-list :newsList="telegraphList" :header-title="'财联社电报'"></news-list>
<news-list :newsList="telegraphList" :header-title="'财联社电报'" @update:message="ReFlesh"></news-list>
</n-gi>
<n-gi>
<news-list :newsList="sinaNewsList" :header-title="'新浪财经'"></news-list>
<news-list :newsList="sinaNewsList" :header-title="'新浪财经'" @update:message="ReFlesh"></news-list>
</n-gi>
</n-grid>
</n-tab-pane>

View File

@ -1,4 +1,7 @@
<script setup>
import {ReFleshTelegraphList} from "../../wailsjs/go/main/App";
import {RefreshCircle, RefreshCircleSharp, RefreshOutline} from "@vicons/ionicons5";
const { headerTitle,newsList } = defineProps({
headerTitle: {
type: String,
@ -7,14 +10,23 @@ const { headerTitle,newsList } = defineProps({
newsList: {
type: Array,
default: () => []
}
},
})
const emits = defineEmits(['update:message'])
const updateMessage = () => {
emits('update:message', headerTitle)
}
</script>
<template>
<n-list bordered>
<template #header>
{{ headerTitle }}
<n-flex justify="space-between">
<n-tag :bordered="false" size="large" type="success" >{{ headerTitle }}</n-tag>
<n-button :bordered="false" @click="updateMessage"><n-icon color="#409EFF" size="25" :component="RefreshCircleSharp"/></n-button>
</n-flex>
</template>
<n-list-item v-for="item in newsList">
<n-space justify="start">

View File

@ -53,6 +53,8 @@ export function Greet(arg1:string):Promise<data.StockInfo>;
export function NewChatStream(arg1:string,arg2:string,arg3:string,arg4:any):Promise<void>;
export function ReFleshTelegraphList(arg1:string):Promise<any>;
export function RemoveGroup(arg1:number):Promise<string>;
export function RemoveStockGroup(arg1:string,arg2:string,arg3:number):Promise<string>;

View File

@ -102,6 +102,10 @@ export function NewChatStream(arg1, arg2, arg3, arg4) {
return window['go']['main']['App']['NewChatStream'](arg1, arg2, arg3, arg4);
}
export function ReFleshTelegraphList(arg1) {
return window['go']['main']['App']['ReFleshTelegraphList'](arg1);
}
export function RemoveGroup(arg1) {
return window['go']['main']['App']['RemoveGroup'](arg1);
}