diff --git a/apps/frontend/src/pages/admin/panels/WorkersPanel.tsx b/apps/frontend/src/pages/admin/panels/WorkersPanel.tsx index ba3d0fb5..aad8ea42 100644 --- a/apps/frontend/src/pages/admin/panels/WorkersPanel.tsx +++ b/apps/frontend/src/pages/admin/panels/WorkersPanel.tsx @@ -473,13 +473,33 @@ export default function WorkersPanel() { async function handleToggleConsignmentPermission(row: WorkerUser, checked: boolean) { setUpdatingConsignmentWorkerId(row.workerId) try { - await updateAdminWorkerConsignmentPermission(row.workerId, { canConsign: checked }) + const res = await updateAdminWorkerConsignmentPermission(row.workerId, { + canConsign: checked, + }) + const updatedWorker = res.data?.worker + if (updatedWorker) { + queryClient.setQueriesData<{ data: { items: WorkerUser[]; pagination: any } }>( + { queryKey: ['admin-worker-platform-workers'] }, + (old) => { + if (!old?.data?.items) return old + return { + ...old, + data: { + ...old.data, + items: old.data.items.map((item) => + item.workerId === row.workerId ? { ...item, ...updatedWorker } : item, + ), + }, + } + }, + ) + } message.success( checked ? `已为打手 ${row.displayName || row.username} 开通寄卖权限` : `已关闭打手 ${row.displayName || row.username} 的寄卖权限`, ) - await queryClient.invalidateQueries({ queryKey: ['admin-workers'] }) + await refreshWorkers() } catch (err: any) { message.error(err instanceof Error ? err.message : '更新寄卖权限失败') } finally {