52 lines
1.6 KiB
TypeScript
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;
|