From d64dd11cb888e3f334f68ae7da891eb57e53349d Mon Sep 17 00:00:00 2001 From: Lxy Date: Tue, 24 Feb 2026 01:56:31 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E5=A2=9E=E5=8A=A0=E5=91=A8=E6=9C=9F?= =?UTF-8?q?=E9=80=89=E6=8B=A9=E6=98=AF=E9=87=8D=E6=96=B0=E8=8E=B7=E5=8F=96?= =?UTF-8?q?K=E7=BA=BF=E6=95=B0=E6=8D=AE=EF=BC=9B=E7=9B=AE=E5=89=8D?= =?UTF-8?q?=E5=AD=98=E5=9C=A8=E4=B8=AA=E5=88=AB=E5=91=A8=E6=9C=9F=E8=8E=B7?= =?UTF-8?q?=E5=8F=96=E6=85=A2=E7=9A=84=E9=97=AE=E9=A2=98=EF=BC=9B=E5=90=8E?= =?UTF-8?q?=E7=BB=AD=E9=9C=80=E8=A6=81=E4=BC=98=E5=8C=96=E8=8E=B7=E5=8F=96?= =?UTF-8?q?=E6=95=88=E7=8E=87=E4=BB=A5=E5=8F=8A=E8=BF=9B=E8=A1=8C=E7=BC=93?= =?UTF-8?q?=E5=AD=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/data/futures_analysis.db | Bin 11218944 -> 11235328 bytes backend/src/services/marketService.ts | 17 ++++++++++------- src/pages/detail/Detail.jsx | 2 +- 3 files changed, 11 insertions(+), 8 deletions(-) diff --git a/backend/service_implementation/service/data/futures_analysis.db b/backend/service_implementation/service/data/futures_analysis.db index 345c9a20c2aab3eb94d284db149829d6c279aca8..66cb66df7c3d9b854f571c27adb2e1fad774c277 100644 GIT binary patch delta 15332 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 Xvr49ln4Y1oVrZ|B!&G{O9%}ypID=>> diff --git a/backend/src/services/marketService.ts b/backend/src/services/marketService.ts index d650e62..3d31b20 100644 --- a/backend/src/services/marketService.ts +++ b/backend/src/services/marketService.ts @@ -466,27 +466,30 @@ export const fetchKlineData = async (symbol: string, period: string) => { // 转换周期格式 let duration = period; switch (period) { - case '1MIN': + case '1M': duration = '1m'; break; - case '5MIN': + case '5M': duration = '5m'; break; - case '15MIN': + case '15M': duration = '15m'; break; - case '30MIN': + case '30M': duration = '30m'; break; - case '1HOUR': + case '1H': duration = '1h'; break; - case '4HOUR': + case '4H': duration = '4h'; break; - case '1DAY': + case '1D': duration = '1d'; break; + case '1W': + duration = '1w'; + break; default: duration = '1m'; } diff --git a/src/pages/detail/Detail.jsx b/src/pages/detail/Detail.jsx index f04095f..a9e8a36 100644 --- a/src/pages/detail/Detail.jsx +++ b/src/pages/detail/Detail.jsx @@ -14,7 +14,7 @@ const Detail = () => { const { code } = useParams(); const [data, setData] = useState(null); const [loading, setLoading] = useState(true); - const [currentPeriod, setCurrentPeriod] = useState('1H'); + const [currentPeriod, setCurrentPeriod] = useState('1D'); const [currentIndicator, setCurrentIndicator] = useState('MA'); const chartRef = useRef(null); const chartInstance = useRef(null);