Files
a-share-analysis/web/src/api/market-overview/structure.ts
T

52 lines
1.6 KiB
TypeScript

import request, { type RequestClient } from '@/utils/request';
import type { components } from '@/api/generated/schema';
export type SectorRankingsResponse = components['schemas']['SectorRankingsResponseDto'];
export type CapitalFlowResponse = components['schemas']['CapitalFlowResponseDto'];
export type TurnoverTrendResponse = components['schemas']['TurnoverTrendResponseDto'];
export interface SectorRankingsQuery {
category: 'industry' | 'concept' | 'board';
sort: 'rise' | 'fall' | 'turnover';
limit: number;
}
export interface CapitalFlowQuery {
category: 'industry' | 'concept' | 'board';
sort: 'inflow' | 'outflow';
limit: number;
}
export interface TurnoverTrendQuery {
interval: '5' | '15';
tradeDate?: string;
}
/** 市场结构请求只调用固定的 Nest 路径,页面不感知 AKTools/TDX 地址。 */
export function createMarketStructureApi(requestClient: RequestClient = request) {
return {
getSectorRankings: (params: SectorRankingsQuery) =>
requestClient<SectorRankingsResponse>({
method: 'get',
url: '/api/v1/market-overview/sector-rankings',
params,
}),
getCapitalFlow: (params: CapitalFlowQuery) =>
requestClient<CapitalFlowResponse>({
method: 'get',
url: '/api/v1/market-overview/capital-flow',
params,
}),
getTurnoverTrend: (params: TurnoverTrendQuery) =>
requestClient<TurnoverTrendResponse>({
method: 'get',
url: '/api/v1/market-overview/turnover-trend',
params,
}),
};
}
const marketStructureApi = createMarketStructureApi();
export default marketStructureApi;