fix: 修复用户管理搜索栏被 ProTable params 覆盖问题

ProTable 的渲染逻辑是:有 params 就渲染内置 ColumnFilter,
否则才渲染 header.title。导致自定义 UserSearchBar 不显示。

- 删除 params 配置
- 新增 buildSearchParams() 将 searchRef 的 type/value 转换为 API 参数
- request 直接调用 buildSearchParams() 而非依赖 filter
This commit is contained in:
shanshanzhong 2026-03-24 01:34:14 -07:00
parent 8d0ddbb5ef
commit 5019f76a73

View File

@ -89,6 +89,21 @@ export default function User() {
ref.current?.refresh(); 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({ // const { data: userGroupsData } = useQuery({
// queryKey: ["userGroups"], // queryKey: ["userGroups"],
// queryFn: async () => { // queryFn: async () => {
@ -342,39 +357,10 @@ export default function User() {
}} }}
initialFilters={initialFilters} initialFilters={initialFilters}
key={initialFilters.user_id} key={initialFilters.user_id}
params={[ request={async (pagination) => {
{
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) => {
const { data } = await getUserList({ const { data } = await getUserList({
...pagination, ...pagination,
...filter, ...buildSearchParams(),
}); });
return { return {
list: data.data?.list || [], list: data.data?.list || [],