import { useEffect, useState } from 'react' import { httpClient } from '../../lib/httpClient' interface ChartWithOrdersSimpleProps { symbol: string interval?: string traderID?: string height?: number } export function ChartWithOrdersSimple({ symbol = 'BTCUSDT', interval = '5m', traderID, height = 500, }: ChartWithOrdersSimpleProps) { const [loading, setLoading] = useState(true) const [error, setError] = useState(null) const [klineCount, setKlineCount] = useState(0) const [orderCount, setOrderCount] = useState(0) useEffect(() => { const loadData = async () => { setLoading(true) setError(null) try { // 从我们自己的服务获取K线数据 const limit = 100 const klineUrl = `/api/klines?symbol=${symbol}&interval=${interval}&limit=${limit}` const klineResult = await httpClient.get(klineUrl) if (!klineResult.success || !klineResult.data) { throw new Error('Failed to fetch klines from our service') } setKlineCount(klineResult.data.length) // 测试获取订单数据 if (traderID) { const tradesUrl = `/api/trades?trader_id=${traderID}&symbol=${symbol}&limit=100` const tradesResult = await httpClient.get(tradesUrl) if (tradesResult.success && tradesResult.data) { setOrderCount(tradesResult.data.length) } else { console.warn('[ChartSimple] Failed to fetch trades:', tradesResult.message || 'Unknown error', tradesResult) } } setLoading(false) } catch (err: any) { console.error('[ChartSimple] Error:', err) setError(err.message || 'Failed to load data') setLoading(false) } } loadData() }, [symbol, interval, traderID]) return (
{/* 标题栏 */}
📈

{symbol} {interval} (测试模式)

{loading && (
加载中...
)}
{/* 测试信息 */}
{error ? (
⚠️
{error}
) : ( <>
币安K线数据
{klineCount} 根K线
{traderID && (
历史订单数据
{orderCount} 笔订单
)}
状态
✅ 数据获取正常,图表组件开发中
)}
) }