From 5019f76a73dbae5bb25b796971a4c7f64efcfe53 Mon Sep 17 00:00:00 2001 From: shanshanzhong Date: Tue, 24 Mar 2026 01:34:14 -0700 Subject: [PATCH] =?UTF-8?q?fix:=20=E4=BF=AE=E5=A4=8D=E7=94=A8=E6=88=B7?= =?UTF-8?q?=E7=AE=A1=E7=90=86=E6=90=9C=E7=B4=A2=E6=A0=8F=E8=A2=AB=20ProTab?= =?UTF-8?q?le=20params=20=E8=A6=86=E7=9B=96=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit ProTable 的渲染逻辑是:有 params 就渲染内置 ColumnFilter, 否则才渲染 header.title。导致自定义 UserSearchBar 不显示。 - 删除 params 配置 - 新增 buildSearchParams() 将 searchRef 的 type/value 转换为 API 参数 - request 直接调用 buildSearchParams() 而非依赖 filter --- apps/admin/src/sections/user/index.tsx | 48 +++++++++----------------- 1 file changed, 17 insertions(+), 31 deletions(-) diff --git a/apps/admin/src/sections/user/index.tsx b/apps/admin/src/sections/user/index.tsx index 35a02ee..ebcc18a 100644 --- a/apps/admin/src/sections/user/index.tsx +++ b/apps/admin/src/sections/user/index.tsx @@ -89,6 +89,21 @@ export default function User() { ref.current?.refresh(); }, []); + const buildSearchParams = () => { + const { type, value } = searchRef.current; + if (!value) return {}; + switch (type) { + case "user_id": + return { user_id: Number(value) }; + case "device": + return { search: value }; + case "subscribe_id": + return { subscribe_id: Number(value) }; + default: + return { search: value }; + } + }; + // const { data: userGroupsData } = useQuery({ // queryKey: ["userGroups"], // queryFn: async () => { @@ -342,39 +357,10 @@ export default function User() { }} initialFilters={initialFilters} key={initialFilters.user_id} - params={[ - { - key: "subscribe_id", - placeholder: t("subscription", "Subscription"), - options: [ - { label: t("all", "All"), value: "" }, - ...(subscribes?.map((item) => ({ - label: item.name!, - value: String(item.id!), - })) || []), - ], - }, - { - key: "search", - placeholder: "Search", - }, - { - key: "user_id", - placeholder: t("userId", "User ID"), - }, - { - key: "user_subscribe_id", - placeholder: t("subscriptionId", "Subscription ID"), - }, - { - key: "short_code", - placeholder: t("shortCode", "Short Code"), - }, - ]} - request={async (pagination, filter) => { + request={async (pagination) => { const { data } = await getUserList({ ...pagination, - ...filter, + ...buildSearchParams(), }); return { list: data.data?.list || [],