diff --git a/backend/app/services/task_service.py b/backend/app/services/task_service.py index bb3add2..feaccf9 100644 --- a/backend/app/services/task_service.py +++ b/backend/app/services/task_service.py @@ -660,7 +660,7 @@ async def transfer_task( elif is_child_task: new_parent_task_id = task.parent_task_id else: - new_parent_task_id = None + new_parent_task_id = task.id new_task = Task( product_id=task.product_id, diff --git a/track-uniapp/src/pages/scan/components/WorkspaceArea.vue b/track-uniapp/src/pages/scan/components/WorkspaceArea.vue index e9a11e6..74120ab 100644 --- a/track-uniapp/src/pages/scan/components/WorkspaceArea.vue +++ b/track-uniapp/src/pages/scan/components/WorkspaceArea.vue @@ -146,10 +146,8 @@ export default { canRecall() { if (!this.lockedTask || this.lockedTask.status !== 'PENDING') return false; if (this.isAssignee) return false; - if (!this.lockedTask.parent_task_id) return false; - const parent = this.taskMap[this.lockedTask.parent_task_id]; - if (!parent) return false; - return parent.assignee_id == this.currentUserId || parent.assignee_id == this.currentUsername; + // 非接收人即可撤回(后端会校验权限);parent_task_id 为空时也放开(旧数据兼容) + return true; }, branchLabelsMap() { const map = {};