From d36dca526f132c1dfaf096ff8ae2063e55fdd1fb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=8D=A1=E8=8B=A5?= Date: Sun, 8 Mar 2026 11:05:01 +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 --- soul-admin/src/pages/users/UsersPage.tsx | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/soul-admin/src/pages/users/UsersPage.tsx b/soul-admin/src/pages/users/UsersPage.tsx index cff31d21..ff7d5fce 100644 --- a/soul-admin/src/pages/users/UsersPage.tsx +++ b/soul-admin/src/pages/users/UsersPage.tsx @@ -102,6 +102,9 @@ const JOURNEY_STAGES = [ ] export function UsersPage() { + const [searchParams, setSearchParams] = useSearchParams() + const poolParam = searchParams.get('pool') // 'vip' | 'complete' | 'all' | null + // ===== 用户列表 state ===== const [users, setUsers] = useState([]) const [total, setTotal] = useState(0) @@ -109,12 +112,19 @@ export function UsersPage() { const [pageSize, setPageSize] = useState(10) const [searchTerm, setSearchTerm] = useState('') const debouncedSearch = useDebounce(searchTerm, 300) - const [vipFilter, setVipFilter] = useState<'all' | 'vip'>('all') + const initialVipFilter = poolParam === 'vip' ? 'vip' : 'all' + const [vipFilter, setVipFilter] = useState<'all' | 'vip' | 'complete'>(initialVipFilter as 'all' | 'vip' | 'complete') const [isLoading, setIsLoading] = useState(true) const [error, setError] = useState(null) - const [rfmSortMode, setRfmSortMode] = useState(false) // RFM 排序模式 + const [rfmSortMode, setRfmSortMode] = useState(false) const [rfmSortDir, setRfmSortDir] = useState<'desc' | 'asc'>('desc') + useEffect(() => { + if (poolParam === 'vip') setVipFilter('vip') + else if (poolParam === 'complete') setVipFilter('complete') + else if (poolParam === 'all') setVipFilter('all') + }, [poolParam]) + // 弹框 const [showUserModal, setShowUserModal] = useState(false) const [showPasswordModal, setShowPasswordModal] = useState(false)