From 71676eead43e85e20cfef4cf8824ec3230318de9 Mon Sep 17 00:00:00 2001 From: ArvinLovegood Date: Thu, 15 May 2025 21:28:59 +0800 Subject: [PATCH] =?UTF-8?q?feat(moneyTrend):=E8=B5=84=E9=87=91=E8=B6=8B?= =?UTF-8?q?=E5=8A=BF=E5=9B=BE=E8=A1=A8=E5=A2=9E=E5=8A=A0=E4=B8=BB=E5=8A=9B?= =?UTF-8?q?=E5=BD=93=E6=97=A5=E5=87=80=E6=B5=81=E5=85=A5=E6=95=B0=E6=8D=AE?= =?UTF-8?q?=E5=B9=B6=E4=BC=98=E5=8C=96=E5=B1=95=E7=A4=BA=E6=95=88=E6=9E=9C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 在资金趋势图表中添加主力当日净流入数据 - 优化图表颜色和样式,增加最大值和最小值标记 - 添加平均值参考线 - 调整轴线样式,提高可读性 - 后端接口增加数据天数至360天 --- app.go | 1 + backend/data/market_news_api_test.go | 2 +- frontend/src/components/moneyTrend.vue | 57 ++++++++++++++++++++++---- frontend/src/components/stock.vue | 2 +- 4 files changed, 52 insertions(+), 10 deletions(-) diff --git a/app.go b/app.go index 87c2903..d972b23 100644 --- a/app.go +++ b/app.go @@ -1134,5 +1134,6 @@ func (a *App) GetMoneyRankSina(sort string) []map[string]any { func (a *App) GetStockMoneyTrendByDay(stockCode string, days int) []map[string]any { res := data.NewMarketNewsApi().GetStockMoneyTrendByDay(stockCode, days) + slice.Reverse(res) return res } diff --git a/backend/data/market_news_api_test.go b/backend/data/market_news_api_test.go index ee51597..8c50ff9 100644 --- a/backend/data/market_news_api_test.go +++ b/backend/data/market_news_api_test.go @@ -51,7 +51,7 @@ func TestGetMoneyRankSina(t *testing.T) { } func TestGetStockMoneyTrendByDay(t *testing.T) { - res := NewMarketNewsApi().GetStockMoneyTrendByDay("sh600438", 120) + res := NewMarketNewsApi().GetStockMoneyTrendByDay("sh600438", 360) for i, re := range res { logger.SugaredLogger.Debugf("key: %+v, value: %+v", i, re) } diff --git a/frontend/src/components/moneyTrend.vue b/frontend/src/components/moneyTrend.vue index 2f67fb8..b57f294 100644 --- a/frontend/src/components/moneyTrend.vue +++ b/frontend/src/components/moneyTrend.vue @@ -34,10 +34,11 @@ onMounted( ) const handleLine = (code, days) => { GetStockMoneyTrendByDay(code, days).then(result => { - console.log("GetStockMoneyTrendByDay", result) + //console.log("GetStockMoneyTrendByDay", result) const chart = echarts.init(LineChartRef.value); const categoryData = []; const netamount_values = []; + const r0_net_values = []; const trades_values = []; let volume = [] @@ -50,6 +51,7 @@ const handleLine = (code, days) => { netamount_values.push(netamount) let price = Number(resultElement.trade); trades_values.push(price) + r0_net_values.push((resultElement.r0_net / 10000).toFixed(2)) if (min === 0 || min > price) { min = price @@ -92,9 +94,10 @@ const handleLine = (code, days) => { }, legend: { show: true, - data: ['当日净流入','累计净流入', '股价'], + data: ['当日净流入','主力当日净流入','累计净流入', '股价'], selected: { '当日净流入': true, + '主力当日净流入': false, '累计净流入': false, '股价': true, }, @@ -162,7 +165,7 @@ const handleLine = (code, days) => { symbolSize: [10, 20], symbolOffset: [10, 0], itemStyle: { - color: '#FC290D' + color: '#0d7dfc' }, label: { position: 'right', @@ -178,7 +181,45 @@ const handleLine = (code, days) => { type: 'average', name: 'Average', lineStyle: { - color: '#ff001e', + color: '#0077ff', + width: 0.5 + }, + }, + ] + }, + type: 'line' + }, + { + name: '主力当日净流入', + data: r0_net_values, + smooth: true, + showSymbol: false, + lineStyle: { + width: 2 + }, + markPoint: { + symbol: 'arrow', + symbolRotate: 90, + symbolSize: [10, 20], + symbolOffset: [10, 0], + itemStyle: { + color: '#0d7dfc' + }, + label: { + position: 'right', + }, + data: [ + {type: 'max', name: 'Max'}, + {type: 'min', name: 'Min'} + ] + }, + markLine: { + data: [ + { + type: 'average', + name: 'Average', + lineStyle: { + color: '#0077ff', width: 0.5 }, }, @@ -200,7 +241,7 @@ const handleLine = (code, days) => { symbolSize: [10, 20], symbolOffset: [10, 0], itemStyle: { - color: '#FC290D' + color: '#0059ff' }, label: { position: 'right', @@ -216,7 +257,7 @@ const handleLine = (code, days) => { type: 'average', name: 'Average', lineStyle: { - color: '#ff001e', + color: '#0059ff', width: 0.5 }, }, @@ -240,7 +281,7 @@ const handleLine = (code, days) => { symbolSize: [10, 20], symbolOffset: [10, 0], itemStyle: { - color: '#0940f3' + color: '#f39509' }, label: { position: 'right', @@ -256,7 +297,7 @@ const handleLine = (code, days) => { type: 'average', name: 'Average', lineStyle: { - color: '#0940f3', + color: '#f39509', width: 0.5 }, }, diff --git a/frontend/src/components/stock.vue b/frontend/src/components/stock.vue index 828efd3..e5c8c1d 100644 --- a/frontend/src/components/stock.vue +++ b/frontend/src/components/stock.vue @@ -2001,7 +2001,7 @@ function delStockGroup(code,name,groupId){ - +