fix: 管理后台页面修复

- AdminLayout: 侧边栏布局和导航修复
- dal.ts: 数据访问层 API 调用修复
- Dashboard: 仪表盘统计卡片和数据加载修复
- Backtest: 回测配置和结果展示修复
- LLMConfig: LLM 配置页面修复
- Predictions: 预测管理页面修复
This commit is contained in:
shangfangjian
2026-09-20 08:45:27 +08:00
parent 7b1457f0db
commit 78375d6e39
6 changed files with 223 additions and 182 deletions
+10 -12
View File
@@ -61,7 +61,7 @@ function exportCsv(rows: BacktestResultRow[]) {
const url = URL.createObjectURL(blob)
const a = document.createElement("a")
a.href = url
a.download = `backtest_${new Date().toISOString().slice(0, 10)}.csv`
a.download = `backtest_${new Date().toLocaleDateString('sv-SE')}.csv`
a.click()
URL.revokeObjectURL(url)
}
@@ -73,7 +73,7 @@ function csvCell(v: string): string {
function fmtDate(s?: string | null): string {
if (!s) return '—'
return s.slice(0, 10)
return new Date(s).toLocaleDateString('sv-SE')
}
export default function BacktestPage() {
@@ -82,7 +82,7 @@ export default function BacktestPage() {
const [dateFrom, setDateFrom] = useState('')
const [dateTo, setDateTo] = useState('')
const [limit, setLimit] = useState(20)
const [mode, setMode] = useState<'single' | 'multi'>('single')
const [mode] = useState<'multi'>('multi')
const [model, setModel] = useState('')
const [loading, setLoading] = useState(false)
const [error, setError] = useState<string | null>(null)
@@ -193,14 +193,12 @@ export default function BacktestPage() {
</div>
<div>
<label className="mb-1.5 block text-xs text-ink-500"></label>
<select
value={mode}
onChange={e => setMode(e.target.value as 'single' | 'multi')}
className="field w-full"
>
<option value="single"> ()</option>
<option value="multi"> (,)</option>
</select>
<input
type="text"
value="多专家 (5 路 + 终裁)"
readOnly
className="field w-full bg-paper-100 text-ink-500"
/>
</div>
</div>
@@ -281,7 +279,7 @@ export default function BacktestPage() {
</div>
{summary.degraded > 0 && (
<div className="col-span-full border-l-2 border-press bg-press-wash/40 px-3 py-2 text-2xs leading-relaxed text-press-dark">
{summary.degraded} (),
{summary.degraded} (),
</div>
)}
</div>