From 0d150f7b26dbf0d50a95e1f345d05c34cfeeb4eb Mon Sep 17 00:00:00 2001 From: zzlgreat Date: Wed, 17 Dec 2025 21:41:57 +0800 Subject: [PATCH] =?UTF-8?q?=E6=9B=B4=E6=96=B0Company=E9=A1=B5=E9=9D=A2?= =?UTF-8?q?=E7=9A=84UI=E4=B8=BAFUI=E9=A3=8E=E6=A0=BC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app.py | 17 ++++++++++++++++- .../StockQuoteCard/components/KeyMetrics.tsx | 10 ++++++++++ .../StockQuoteCard/hooks/useStockQuoteData.ts | 2 ++ .../Company/components/StockQuoteCard/index.tsx | 2 ++ .../Company/components/StockQuoteCard/types.ts | 2 ++ 5 files changed, 32 insertions(+), 1 deletion(-) diff --git a/app.py b/app.py index d978f1d0..6d466d62 100755 --- a/app.py +++ b/app.py @@ -8686,6 +8686,8 @@ def get_stock_quote_detail(stock_code): 'eps': None, 'market_cap': None, 'circ_mv': None, + 'total_shares': None, # 发行总股本(亿股) + 'float_shares': None, # 流通股本(亿股) 'turnover_rate': None, 'week52_high': None, 'week52_low': None, @@ -8746,9 +8748,22 @@ def get_stock_quote_detail(stock_code): result_data['industry_l1'] = row.get('industry_l1') or '' result_data['industry'] = row.get('sw_industry_l2') or row.get('sw_industry_l1') or '' - # 计算流通市值(亿元) + # 计算股本和市值 + total_shares = float(row.get('total_shares') or 0) float_shares = float(row.get('float_shares') or 0) close_price = float(row.get('close_price') or 0) + + # 发行总股本(亿股) + if total_shares > 0: + total_shares_yi = total_shares / 100000000 # 转为亿股 + result_data['total_shares'] = round(total_shares_yi, 2) + + # 流通股本(亿股) + if float_shares > 0: + float_shares_yi = float_shares / 100000000 # 转为亿股 + result_data['float_shares'] = round(float_shares_yi, 2) + + # 计算流通市值(亿元) if float_shares > 0 and close_price > 0: circ_mv = (float_shares * close_price) / 100000000 # 转为亿 result_data['circ_mv'] = round(circ_mv, 2) diff --git a/src/views/Company/components/StockQuoteCard/components/KeyMetrics.tsx b/src/views/Company/components/StockQuoteCard/components/KeyMetrics.tsx index 1e17390a..f32b9d34 100644 --- a/src/views/Company/components/StockQuoteCard/components/KeyMetrics.tsx +++ b/src/views/Company/components/StockQuoteCard/components/KeyMetrics.tsx @@ -13,6 +13,8 @@ export interface KeyMetricsProps { eps?: number; pb: number; marketCap: string; + totalShares?: number; // 发行总股本(亿股) + floatShares?: number; // 流通股本(亿股) week52Low: number; week52High: number; } @@ -22,6 +24,8 @@ export const KeyMetrics: React.FC = memo(({ eps, pb, marketCap, + totalShares, + floatShares, week52Low, week52High, }) => { @@ -62,6 +66,12 @@ export const KeyMetrics: React.FC = memo(({ {marketCap} + + 发行总股本: + + {totalShares ? `${totalShares}亿股` : '-'} + + 52周波动: diff --git a/src/views/Company/components/StockQuoteCard/hooks/useStockQuoteData.ts b/src/views/Company/components/StockQuoteCard/hooks/useStockQuoteData.ts index 497e1a5e..6ee9fc26 100644 --- a/src/views/Company/components/StockQuoteCard/hooks/useStockQuoteData.ts +++ b/src/views/Company/components/StockQuoteCard/hooks/useStockQuoteData.ts @@ -38,6 +38,8 @@ const transformQuoteData = (apiData: any, stockCode: string): StockQuoteCardData eps: apiData.eps || apiData.basic_eps || undefined, pb: apiData.pb || apiData.pb_mrq || 0, marketCap: apiData.market_cap || apiData.marketCap || apiData.circ_mv || '0', + totalShares: apiData.total_shares || apiData.totalShares || undefined, + floatShares: apiData.float_shares || apiData.floatShares || undefined, week52Low: apiData.week52_low || apiData.week52Low || 0, week52High: apiData.week52_high || apiData.week52High || 0, diff --git a/src/views/Company/components/StockQuoteCard/index.tsx b/src/views/Company/components/StockQuoteCard/index.tsx index a95b6452..ceac98cb 100644 --- a/src/views/Company/components/StockQuoteCard/index.tsx +++ b/src/views/Company/components/StockQuoteCard/index.tsx @@ -133,6 +133,8 @@ const StockQuoteCard: React.FC = ({ eps={quoteData.eps} pb={quoteData.pb} marketCap={quoteData.marketCap} + totalShares={quoteData.totalShares} + floatShares={quoteData.floatShares} week52Low={quoteData.week52Low} week52High={quoteData.week52High} /> diff --git a/src/views/Company/components/StockQuoteCard/types.ts b/src/views/Company/components/StockQuoteCard/types.ts index b1c38099..29c525f4 100644 --- a/src/views/Company/components/StockQuoteCard/types.ts +++ b/src/views/Company/components/StockQuoteCard/types.ts @@ -29,6 +29,8 @@ export interface StockQuoteCardData { eps?: number; // 每股收益 pb: number; // 市净率 marketCap: string; // 流通市值(已格式化,如 "2.73万亿") + totalShares?: number; // 发行总股本(亿股) + floatShares?: number; // 流通股本(亿股) week52Low: number; // 52周最低 week52High: number; // 52周最高