diff --git a/apps/frontend/src/pages/admin/AdminTasksPage.tsx b/apps/frontend/src/pages/admin/AdminTasksPage.tsx index 98cb5d97..f8eb942c 100644 --- a/apps/frontend/src/pages/admin/AdminTasksPage.tsx +++ b/apps/frontend/src/pages/admin/AdminTasksPage.tsx @@ -73,6 +73,8 @@ export default function AdminTasksPage() { const page = Number(searchParams.get('page') || 1) || 1 const pageSize = resolveAdminPageSize(searchParams.get('pageSize'), ADMIN_DEFAULT_PAGE_SIZE) const canManageTaskLifecycle = hasAdminRole('operator') + // 与详情页一致:客服可换绑协助处理(canOperateAssistedTask) + const canRebindRole = hasAdminRole('support') const canCloseTasks = hasAdminRole('support') const filters = { status: searchParams.get('status') || '', @@ -224,7 +226,7 @@ export default function AdminTasksPage() { canManageTaskLifecycle && row.executorKey !== 'manual_dispatch' && ['retry_pending', 'manual_review'].includes(row.status) - const canRebind = canRebindListTask(row, canManageTaskLifecycle) + const canRebind = canRebindListTask(row, canRebindRole) const canManualReview = canManageTaskLifecycle && !['redeemed', 'closed', 'completed', 'manual_review'].includes(row.status) @@ -472,9 +474,9 @@ export default function AdminTasksPage() { ) } -function canRebindListTask(item: AdminTaskListItem, canManageTaskLifecycle: boolean) { +function canRebindListTask(item: AdminTaskListItem, canRebindRole: boolean) { return ( - canManageTaskLifecycle && + canRebindRole && item.executorKey === 'kuaishou_ct_assisted' && ['waiting_binding', 'role_confirmed', 'manual_review', 'retry_pending'].includes(item.status) )