Files
sanguo_vnpy_v2/frontend/src/api/factor.ts
T
claude_dev 212ad6426d feat(s2): 投研核心端到端跑通(IC 表 + tears 报告)
- Task 加 raw_result 字段;orchestrator get_raw_result(内存存 FactorReport)
- 路由 /factor/list、/task/{id}/ic-summary、/task/{id}/report/{factor}(query token 给 iframe)
- analyzer cfg=None 时加载 data_platform.yaml(修 API 路径 read_db_daily 崩)
- get_status 返回 error_msg(调试+前端 failed 展示)
- 前端 投研-新建(多因子/多标的/日期)+ 结果页(IC 表 + tears iframe)
- factor 冒烟通过:ma5 → IC 1D/5D/10D 真实数据
2026-07-07 06:28:01 +08:00

36 lines
1.1 KiB
TypeScript

import { apiClient } from './client'
import { useAuthStore } from '@/stores/auth'
export interface FactorItem {
name: string
category: string
}
export interface FactorSubmit {
symbols: string[]
factor_names: string[]
start: string
end: string
}
export async function getFactors(): Promise<FactorItem[]> {
const { data } = await apiClient.get<{ factors: FactorItem[] }>('/factor/list')
return data.factors
}
export async function submitFactor(req: FactorSubmit): Promise<string> {
const { data } = await apiClient.post<{ task_id: string }>('/factor/analyze', req)
return data.task_id
}
export async function getIcSummary(taskId: string): Promise<Record<string, unknown>> {
const { data } = await apiClient.get<{ ic_summary: Record<string, unknown> }>(`/task/${taskId}/ic-summary`)
return data.ic_summary
}
/** Report URL with token in query (iframe can't set Authorization header). */
export function reportUrl(taskId: string, factor: string): string {
const auth = useAuthStore()
return `/api/v1/task/${taskId}/report/${factor}?token=${encodeURIComponent(auth.token ?? '')}`
}