From 062df8071270a5e15893c2165a8f3dba0503871e Mon Sep 17 00:00:00 2001 From: ArvinLovegood Date: Wed, 2 Jul 2025 16:10:02 +0800 Subject: [PATCH] =?UTF-8?q?feat(frontend):=E6=B7=BB=E5=8A=A0=E7=83=AD?= =?UTF-8?q?=E9=97=A8=E7=AD=96=E7=95=A5=E5=8A=9F=E8=83=BD=E5=B9=B6=E4=BC=98?= =?UTF-8?q?=E5=8C=96=E9=80=89=E8=82=A1=E7=BB=84=E4=BB=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 在 App.d.ts 和 App.js 中添加 GetHotStrategy 函数 - 在 app_common.go 中实现 GetHotStrategy 方法 - 在 search_stock_api.go 中添加 HotStrategy 方法获取热门策略数据 - 更新 SelectStock.vue 组件,集成热门策略功能并优化界面布局 --- app_common.go | 3 + backend/data/search_stock_api.go | 17 ++++ backend/data/search_stock_api_test.go | 11 +++ frontend/src/components/SelectStock.vue | 110 ++++++++++++++++++------ frontend/wailsjs/go/main/App.d.ts | 2 + frontend/wailsjs/go/main/App.js | 4 + 6 files changed, 123 insertions(+), 24 deletions(-) diff --git a/app_common.go b/app_common.go index 4f0f971..c6701d9 100644 --- a/app_common.go +++ b/app_common.go @@ -59,3 +59,6 @@ func (a App) ClsCalendar() []any { func (a App) SearchStock(words string) map[string]any { return data.NewSearchStockApi(words).SearchStock(5000) } +func (a App) GetHotStrategy() map[string]any { + return data.NewSearchStockApi("").HotStrategy() +} diff --git a/backend/data/search_stock_api.go b/backend/data/search_stock_api.go index a07e81d..41b5bfd 100644 --- a/backend/data/search_stock_api.go +++ b/backend/data/search_stock_api.go @@ -53,3 +53,20 @@ func (s SearchStockApi) SearchStock(pageSize int) map[string]any { //logger.SugaredLogger.Infof("resp:%+v", respMap["data"]) return respMap } + +func (s SearchStockApi) HotStrategy() map[string]any { + url := fmt.Sprintf("https://np-ipick.eastmoney.com/recommend/stock/heat/ranking?count=20&trace=%d&client=web&biz=web_smart_tag", time.Now().Unix()) + resp, err := resty.New().SetTimeout(time.Duration(30)*time.Second).R(). + SetHeader("Host", "np-ipick.eastmoney.com"). + SetHeader("Origin", "https://xuangu.eastmoney.com"). + SetHeader("Referer", "https://xuangu.eastmoney.com/"). + SetHeader("User-Agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:140.0) Gecko/20100101 Firefox/140.0"). + Get(url) + if err != nil { + logger.SugaredLogger.Errorf("HotStrategy-err:%+v", err) + return map[string]any{} + } + respMap := map[string]any{} + json.Unmarshal(resp.Body(), &respMap) + return respMap +} diff --git a/backend/data/search_stock_api_test.go b/backend/data/search_stock_api_test.go index 5102f3b..441c382 100644 --- a/backend/data/search_stock_api_test.go +++ b/backend/data/search_stock_api_test.go @@ -23,3 +23,14 @@ func TestSearchStock(t *testing.T) { //} } + +func TestSearchStockApi_HotStrategy(t *testing.T) { + db.Init("../../data/stock.db") + res := NewSearchStockApi("").HotStrategy() + logger.SugaredLogger.Infof("res:%+v", res) + dataList := res["data"].([]any) + for _, v := range dataList { + d := v.(map[string]any) + logger.SugaredLogger.Infof("v:%+v", d) + } +} diff --git a/frontend/src/components/SelectStock.vue b/frontend/src/components/SelectStock.vue index f52a0fa..80adc7b 100644 --- a/frontend/src/components/SelectStock.vue +++ b/frontend/src/components/SelectStock.vue @@ -1,11 +1,13 @@