diff --git a/apps/tools/serializers/tool.py b/apps/tools/serializers/tool.py
index 83640bdc6b9..e7d50a0c34b 100644
--- a/apps/tools/serializers/tool.py
+++ b/apps/tools/serializers/tool.py
@@ -643,7 +643,8 @@ def delete(self):
QuerySet(File).filter(id=tool.code).delete()
QuerySet(WorkspaceUserResourcePermission).filter(target=tool.id).delete()
QuerySet(Tool).filter(id=self.data.get('id')).delete()
- ResourceMapping.objects.filter(target_id=self.data.get('id')).delete()
+ ResourceMapping.objects.filter(
+ Q(target_id=self.data.get('id')) | Q(source_id=self.data.get('id'))).delete()
QuerySet(ToolRecord).filter(tool_id=self.data.get('id')).delete()
trigger_ids = list(
QuerySet(TriggerTask).filter(
@@ -1445,7 +1446,7 @@ def batch_delete(self, instance: Dict, with_valid=True):
QuerySet(File).filter(id=tool.code).delete()
QuerySet(WorkspaceUserResourcePermission).filter(target__in=id_list).delete()
- QuerySet(ResourceMapping).filter(target_id__in=id_list).delete()
+ QuerySet(ResourceMapping).filter(Q(target_id__in=id_list) | Q(source_id__in=id_list)).delete()
QuerySet(ToolRecord).filter(tool_id__in=id_list).delete()
trigger_ids = list(
diff --git a/ui/src/views/tool-workflow/execution-record/ExecutionDetailDrawer.vue b/ui/src/views/tool-workflow/execution-record/ExecutionDetailDrawer.vue
index 29cd9739ef7..9ee71dbe97b 100644
--- a/ui/src/views/tool-workflow/execution-record/ExecutionDetailDrawer.vue
+++ b/ui/src/views/tool-workflow/execution-record/ExecutionDetailDrawer.vue
@@ -128,7 +128,7 @@