feat: 核心股历史前端 API 客户端
This commit is contained in:
@@ -0,0 +1,47 @@
|
|||||||
|
// 核心股历史数据获取工具
|
||||||
|
import { getApiBaseUrl } from "@/lib/api-client";
|
||||||
|
|
||||||
|
export interface ActiveCoreStock {
|
||||||
|
stockCode: string;
|
||||||
|
stockName: string;
|
||||||
|
dailyGains: Record<string, number>; // 日期 -> 当日涨幅
|
||||||
|
appearCount: number;
|
||||||
|
lastAppear: string | null;
|
||||||
|
}
|
||||||
|
|
||||||
|
export interface ActiveCoreStocksResponse {
|
||||||
|
dates: string[];
|
||||||
|
stocks: ActiveCoreStock[];
|
||||||
|
}
|
||||||
|
|
||||||
|
export interface CoreStockHistoryItem {
|
||||||
|
id: number;
|
||||||
|
trade_date: string;
|
||||||
|
stock_code: string;
|
||||||
|
stock_name: string;
|
||||||
|
f3: number | null;
|
||||||
|
cover_count: number | null;
|
||||||
|
rank: number;
|
||||||
|
themes: { theme_code: string; theme_name: string }[];
|
||||||
|
}
|
||||||
|
|
||||||
|
export interface CoreStockHistoryResponse {
|
||||||
|
date: string;
|
||||||
|
items: CoreStockHistoryItem[];
|
||||||
|
}
|
||||||
|
|
||||||
|
/** 获取活跃核心股 + 最近10日涨幅矩阵 */
|
||||||
|
export async function fetchActiveCoreStocks(): Promise<ActiveCoreStocksResponse> {
|
||||||
|
const baseUrl = getApiBaseUrl();
|
||||||
|
const resp = await fetch(`${baseUrl}/api/core-stocks/active`, { method: "GET", cache: "no-store" });
|
||||||
|
if (!resp.ok) return { dates: [], stocks: [] };
|
||||||
|
return resp.json();
|
||||||
|
}
|
||||||
|
|
||||||
|
/** 获取指定交易日核心股(含所属题材) */
|
||||||
|
export async function fetchCoreStockHistory(date: string): Promise<CoreStockHistoryResponse | null> {
|
||||||
|
const baseUrl = getApiBaseUrl();
|
||||||
|
const resp = await fetch(`${baseUrl}/api/core-stocks/history?date=${date}`, { method: "GET", cache: "no-store" });
|
||||||
|
if (!resp.ok) return null;
|
||||||
|
return resp.json();
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user