import { useQuery } from '@tanstack/react-query' import { useParams, useNavigate } from 'react-router-dom' import { LineChart, Line, XAxis, YAxis, CartesianGrid, Tooltip, ResponsiveContainer } from 'recharts' import api from '@/lib/api' import { MetricCard } from '@/components/MetricCard' import { Badge } from '@/components/Badge' import { DataTable } from '@/components/DataTable' import { formatCurrency, formatPercent, formatNumber } from '@/lib/utils' import { ArrowLeft } from 'lucide-react' export function StoreDetailPage() { const { code } = useParams() const navigate = useNavigate() const { data: storeData } = useQuery({ queryKey: ['store', code], queryFn: () => api.get(`/stores/${code}`), }) const { data: dailyData } = useQuery({ queryKey: ['store', code, 'daily'], queryFn: () => api.get(`/stores/${code}/daily`), }) const { data: tasksData } = useQuery({ queryKey: ['store', code, 'tasks'], queryFn: () => api.get('/tasks', { params: { store_code: code, month: '2026-05', page_size: 50 } }), }) const sd = (storeData as any)?.data const daily = ((dailyData as any)?.data) || [] const tasks = ((tasksData as any)?.data) || [] if (!sd) return
加载中...
const sc = sd.scorecard return (

{sc.store_name}

{sd.risk && }
{/* 核心指标 */}
{/* 日度趋势 */}

日度实收趋势

{/* 平台经济性 */} {sd.platform && (

平台经济性

)} {/* 任务列表 */}

门店任务 ({tasks.length})

}, { key: 'action_required', label: '行动要求', render: (r) => {r.action_required} }, { key: 'status', label: '状态', render: (r) => }, { key: 'deadline', label: '截止日', render: (r) => r.deadline?.substring(0, 10) }, ]} data={tasks} onRowClick={(r) => navigate(`/tasks/${r.task_id}`)} />
) }