diff --git a/track-uniapp/src/pages/scan/components/WorkspaceArea.vue b/track-uniapp/src/pages/scan/components/WorkspaceArea.vue index 4c0941f..e9a11e6 100644 --- a/track-uniapp/src/pages/scan/components/WorkspaceArea.vue +++ b/track-uniapp/src/pages/scan/components/WorkspaceArea.vue @@ -143,7 +143,14 @@ export default { }, lockedTask() { return this.focusTasks.find(t => t.id === this.lockedTaskId) || null; }, isAssignee() { if (!this.lockedTask) return false; return this.lockedTask.assignee_id == this.currentUserId || this.lockedTask.assignee_id == this.currentUsername; }, - canRecall() { if (!this.lockedTask || !this.lockedTask.parent_task_id) return false; const parent = this.taskMap[this.lockedTask.parent_task_id]; return parent && (parent.assignee_id == this.currentUserId || parent.assignee_id == this.currentUsername); }, + 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; + }, branchLabelsMap() { const map = {}; if (!this.product || !this.product.task_tree) return map;