diff --git a/ui/src/workflow-canvas/nodes/search-knowledge-node/details/index.vue b/ui/src/workflow-canvas/nodes/search-knowledge-node/details/index.vue
index 0b84ee10f36..27e3bd56ddb 100644
--- a/ui/src/workflow-canvas/nodes/search-knowledge-node/details/index.vue
+++ b/ui/src/workflow-canvas/nodes/search-knowledge-node/details/index.vue
@@ -3,7 +3,7 @@ import { computed } from 'vue'
import ImageUploadCard from '@/components/mk-drag-upload/ImageUploadCard.vue'
import DetailContainer from '@/workflow-canvas/execution-details/DetailContainer.vue'
import BaseHeader from '@/workflow-canvas/execution-details/BaseHeader.vue'
-import { getFileUrl } from '@/utils/common'
+import { downloadByURL, getFileUrl } from '@/utils/common'
import { getFileIconUrl } from '@/utils/icon'
import { DOCUMENT_RESOURCE_TYPE, KNOWLEDGE_HIT_UNIT_TYPE } from '@/api/enums'
import type { DocumentResourceType, KnowledgeHitTestAsset, KnowledgeType } from '@/api/types'
@@ -56,6 +56,12 @@ function getParagraphImageUrl(paragraph: SearchParagraph) {
if (!fileId || paragraph.content?.includes(`/oss/file/${fileId}`)) return ''
return getFileUrl(fileId)
}
+
+// 来源文件按原文件名下载,网页来源打开原网址。
+function openSourceDocument(name: string, fileId?: string, sourceUrl?: string) {
+ if (fileId) downloadByURL(getFileUrl(fileId), name.trim())
+ else if (sourceUrl && /^https?:\/\//i.test(sourceUrl.trim())) window.open(sourceUrl.trim(), '_blank', 'noopener,noreferrer')
+}
@@ -120,32 +126,27 @@ function getParagraphImageUrl(paragraph: SearchParagraph) {
-
-
-
-
-
![]()
-
{{ paragraph.document_name.trim() }}
-
-
-
+
+
![]()
+
{{ paragraph.document_name.trim() }}
+
+
diff --git a/ui/src/workflow-canvas/nodes/start-node/details/index.vue b/ui/src/workflow-canvas/nodes/start-node/details/index.vue
index 5e09d362e87..914d292afae 100644
--- a/ui/src/workflow-canvas/nodes/start-node/details/index.vue
+++ b/ui/src/workflow-canvas/nodes/start-node/details/index.vue
@@ -4,6 +4,7 @@ import ImageUploadCard from '@/components/mk-drag-upload/ImageUploadCard.vue'
import DetailContainer from '@/workflow-canvas/execution-details/DetailContainer.vue'
import BaseHeader from '@/workflow-canvas/execution-details/BaseHeader.vue'
import { getFileIconUrl } from '@/utils/icon'
+import { downloadByURL } from '@/utils/common'
import type { ExecutionNodeDetail } from '@/workflow-canvas/execution-details/types'
defineOptions({ name: 'StartNodeDetail' })
@@ -51,15 +52,13 @@ const attachments = computed
文档:
@@ -119,15 +118,13 @@ const attachments = computed其他: