From 6df79fd528719412f7ee1b997a450129dd0b3c44 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=8D=A1=E8=8B=A5?= Date: Sun, 8 Mar 2026 10:32:52 +0800 Subject: [PATCH] =?UTF-8?q?sync:=20soul-admin=20=E9=A1=B5=E9=9D=A2=20|=20?= =?UTF-8?q?=E5=8E=9F=E5=9B=A0:=20=E5=89=8D=E7=AB=AF=E9=A1=B5=E9=9D=A2?= =?UTF-8?q?=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/pages/find-partner/tabs/MatchPoolTab.tsx | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/soul-admin/src/pages/find-partner/tabs/MatchPoolTab.tsx b/soul-admin/src/pages/find-partner/tabs/MatchPoolTab.tsx index d7c29fa0..baba61fc 100644 --- a/soul-admin/src/pages/find-partner/tabs/MatchPoolTab.tsx +++ b/soul-admin/src/pages/find-partner/tabs/MatchPoolTab.tsx @@ -50,6 +50,10 @@ const DEFAULT_CONFIG: MatchConfig = { } const ICONS = ['⭐', '👥', '❤️', '🎮', '💼', '🚀', '💡', '🎯', '🔥', '✨'] +interface PoolCounts { + vip: number; complete: number; all: number +} + export function MatchPoolTab() { const [config, setConfig] = useState(DEFAULT_CONFIG) const [isLoading, setIsLoading] = useState(true) @@ -57,6 +61,17 @@ export function MatchPoolTab() { const [showTypeModal, setShowTypeModal] = useState(false) const [editingType, setEditingType] = useState(null) const [formData, setFormData] = useState({ id: '', label: '', matchLabel: '', icon: '⭐', matchFromDB: false, showJoinAfterMatch: true, price: 1, enabled: true }) + const [poolCounts, setPoolCounts] = useState(null) + const [poolCountsLoading, setPoolCountsLoading] = useState(false) + + const loadPoolCounts = async () => { + setPoolCountsLoading(true) + try { + const data = await get<{ success?: boolean; data?: PoolCounts }>('/api/db/match-pool-counts') + if (data?.success && data.data) setPoolCounts(data.data) + } catch (e) { console.error('加载池子人数失败:', e) } + finally { setPoolCountsLoading(false) } + } const loadConfig = async () => { setIsLoading(true)