feat: 全部页面添加 MonthPicker 月份切换

新增 MonthPicker 的页面(6个):
- CostPage: 成本与库存管理
- SKUPage: 商品SKU管理
- PlatformPage: 平台与优惠管理
- MemberPage: 会员与复购管理
- SiteSelectionPage: 门店选址分析
- DataQualityPage: 数据质量看板

容器+子组件添加 MonthPicker(2个页面, 11个子组件):
- StoreExpensePage: 门店营业费用分析(10个子组件全部传month)
- CostAnalysisPage/StoreTab: 门店成本tab

跳过(后端不支持month参数):
- RiskPage: 风险管理(全量视图, 不按月过滤)
- TimePage: 时间段分析(全量视图, 不按月过滤)
This commit is contained in:
freedakgmail
2026-08-01 14:58:12 +08:00
parent 122290e3b0
commit 4b3a48976d
18 changed files with 119 additions and 78 deletions
@@ -185,13 +185,13 @@ function StoreDetailModal({ store, onClose }: { store: StoreDetail | null, onClo
)
}
export function LossDiagnosisTab() {
export function LossDiagnosisTab({ month }: { month: string }) {
const [page, setPage] = useState(1)
const [sort, setSort] = useState('actual_store_contribution')
const [filter, setFilter] = useState('')
const [order, setOrder] = useState('asc')
const [selectedStore, setSelectedStore] = useState<StoreDetail | null>(null)
const { data, isLoading } = useQuery({ queryKey: ['se/loss-diagnosis', page, sort, filter, order], queryFn: () => api.get(`/store-expense/loss-diagnosis?page=${page}&page_size=${PAGE_SIZE}&sort=${sort}&filter=${filter}&order=${order}`) })
const { data, isLoading } = useQuery({ queryKey: ['se/loss-diagnosis', month, page, sort, filter, order], queryFn: () => api.get(`/store-expense/loss-diagnosis?page=${page}&page_size=${PAGE_SIZE}&sort=${sort}&filter=${filter}&order=${order}&month=${month}`) })
if (isLoading) return <LoadingSpinner text="加载亏损门店诊断..." />