fix: Adding nodes in the execution details

This commit is contained in:
wangdan-fit2cloud 2025-12-02 18:33:16 +08:00
parent 54e4423d84
commit 745adf930e
5 changed files with 152 additions and 47 deletions

View File

@ -1081,6 +1081,104 @@
</template>
<slot></slot>
</template>
<!-- 文本文件 -->
<template v-if="data.type === WorkflowType.DataSourceLocalNode">
<div class="card-never border-r-6">
<h5 class="p-8-12">
{{ $t('common.param.outputParam') }}
</h5>
<div class="p-8-12 border-t-dashed lighter">
<div class="mb-8">
{{ data.file_list || '-' }}
</div>
</div>
</div>
</template>
<!-- 文档分段 -->
<template v-if="data.type === WorkflowType.DocumentSplitNode">
<div class="card-never border-r-6">
<h5 class="p-8-12">
{{ $t('common.param.inputParam') }}
</h5>
<div class="p-8-12 border-t-dashed lighter">
<div v-for="(f, i) in data.result_list" :key="i" class="mb-8">
<span class="color-secondary">{{ f.name }}:</span> {{ f.input_value }}
</div>
</div>
</div>
<div class="card-never border-r-6 mt-8">
<h5 class="p-8-12">
{{ $t('common.param.outputParam') }}每个文档仅能预览前五个分段
</h5>
<div class="p-8-12 border-t-dashed lighter">
<el-radio-group v-model="currentParagraph" class="app-radio-button-group mb-8">
<template
v-for="(paragrapg, ParagraphIndex) in data.paragraph_list"
:key="ParagraphIndex"
>
<el-radio-button :label="paragrapg.name" :value="ParagraphIndex" />
</template>
</el-radio-group>
<template v-if="data.paragraph_list?.length > 0">
<template
v-for="(paragraph, pId) in data.paragraph_list?.[currentParagraph]?.paragraphs"
:key="pId"
>
<ParagraphCard :data="paragraph" :content="paragraph.content" :index="pId">
<template #footer>
<span class="color-secondary">
{{ $t('common.character') }}{{ paragraph.content.length }}</span
>
</template>
</ParagraphCard>
</template>
</template>
<template v-else> -</template>
</div>
</div>
</template>
<!-- 知识库写入 -->
<template v-if="data.type === WorkflowType.KnowledgeWriteNode">
<div class="card-never border-r-6">
<h5 class="p-8-12">
{{ $t('common.param.inputParam') }}
</h5>
<div class="p-8-12 border-t-dashed lighter">
<div v-for="(f, i) in data.result_list" :key="i" class="mb-8">
<span class="color-secondary">{{ f.name }}:</span> {{ f.input_value }}
</div>
</div>
</div>
<div class="card-never border-r-6 mt-8">
<h5 class="p-8-12">写入内容</h5>
<div class="p-8-12 border-t-dashed lighter">
<el-radio-group v-model="currentWriteContent" class="app-radio-button-group mb-8">
<template
v-for="(paragrapg, ParagraphIndex) in data.write_content"
:key="ParagraphIndex"
>
<el-radio-button :label="paragrapg.name" :value="ParagraphIndex" />
</template>
</el-radio-group>
<template v-if="data.write_content?.length > 0">
<template
v-for="(paragraph, pId) in data.write_content?.[currentWriteContent]?.paragraphs"
:key="pId"
>
<ParagraphCard :data="paragraph" :content="paragraph.content" :index="pId">
<template #footer>
<span class="color-secondary">
{{ $t('common.character') }}{{ paragraph.content.length }}</span
>
</template>
</ParagraphCard>
</template>
</template>
<template v-else> -</template>
</div>
</div>
</template>
<template v-else>
<div class="card-never border-r-6">
<h5 class="p-8-12">{{ $t('chat.executionDetails.errMessage') }}</h5>
@ -1106,5 +1204,7 @@ const props = defineProps<{
data: any
}>()
const currentLoopNode = ref(0)
const currentParagraph = ref(0)
const currentWriteContent = ref(0)
</script>
<style lang="scss" scoped></style>

View File

@ -18,39 +18,41 @@
</el-scrollbar>
<template #footer>
<el-card
shadow="never"
style="--el-card-padding: 8px"
class="w-full mb-12"
v-if="data?.document_name?.trim()"
>
<el-text class="flex align-center item">
<img :src="getImgUrl(data?.document_name?.trim())" alt="" width="20" class="mr-4" />
<div class="ml-8">
<div class="ml-4" v-if="data?.meta?.source_file_id || data?.meta?.source_url">
<a
:href="getFileUrl(data?.meta?.source_file_id) || data?.meta?.source_url"
target="_blank"
class="ellipsis-1"
:title="data?.document_name?.trim()"
>
<span :title="data?.document_name?.trim()">{{ data?.document_name }}</span>
</a>
<slot name="footer">
<el-card
shadow="never"
style="--el-card-padding: 8px"
class="w-full mb-12"
v-if="data?.document_name?.trim()"
>
<el-text class="flex align-center item">
<img :src="getImgUrl(data?.document_name?.trim())" alt="" width="20" class="mr-4" />
<div class="ml-8">
<div class="ml-4" v-if="data?.meta?.source_file_id || data?.meta?.source_url">
<a
:href="getFileUrl(data?.meta?.source_file_id) || data?.meta?.source_url"
target="_blank"
class="ellipsis-1"
:title="data?.document_name?.trim()"
>
<span :title="data?.document_name?.trim()">{{ data?.document_name }}</span>
</a>
</div>
<div v-else @click="infoMessage(data)">
<span class="ellipsis-1 break-all" :title="data?.document_name?.trim()">
{{ data?.document_name?.trim() }}
</span>
</div>
</div>
<div v-else @click="infoMessage(data)">
<span class="ellipsis-1 break-all" :title="data?.document_name?.trim()">
{{ data?.document_name?.trim() }}
</span>
</div>
</div>
</el-text>
</el-card>
<div class="flex align-center border-t" style="padding: 12px 0 8px">
<KnowledgeIcon :type="data?.knowledge_type" :size="18" class="mr-8" />
<span class="ellipsis-1 break-all" :title="data?.knowledge_name">
{{ data?.knowledge_name || '-' }}
</span>
</div>
</el-text>
</el-card>
<div class="flex align-center border-t" style="padding: 12px 0 8px">
<KnowledgeIcon :type="data?.knowledge_type" :size="18" class="mr-8" />
<span class="ellipsis-1 break-all" :title="data?.knowledge_name">
{{ data?.knowledge_name || '-' }}
</span>
</div>
</slot>
</template>
</CardBox>
</template>

View File

@ -75,6 +75,7 @@ const option_list = computed(() => {
</script>
<style lang="scss" scoped>
.radio_content {
height: 32px;
display: flex;
flex-wrap: wrap;
justify-content: flex-start;
@ -94,7 +95,6 @@ const option_list = computed(() => {
color: var(--el-color-primary);
}
.item {
line-height: 22px;
cursor: pointer;
display: flex;
justify-content: center;

View File

@ -113,7 +113,7 @@ const DocumentRouter = {
name: 'knowledgeWorkflowSetting',
meta: {
title: 'views.workflow.workflow',
icon: 'app-problems',
icon: 'app-workflow',
activeMenu: '/knowledge',
parentPath: '/knowledge/:id/:folderId/:type',
parentName: 'KnowledgeDetail',

View File

@ -7,18 +7,20 @@
<el-card style="--el-card-padding: 0">
<div class="upload-document__main flex" v-loading="loading">
<div class="upload-document__component main-calc-height">
<div class="upload-component p-24" style="min-width: 850px">
<keep-alive>
<component
ref="ActionRef"
:is="ak[active]"
v-model:loading="loading"
:workflow="_workflow"
:knowledge_id="id"
:id="action_id"
></component>
</keep-alive>
</div>
<el-scrollbar>
<div class="upload-component p-24" style="min-width: 850px">
<keep-alive>
<component
ref="ActionRef"
:is="ak[active]"
v-model:loading="loading"
:workflow="_workflow"
:knowledge_id="id"
:id="action_id"
></component>
</keep-alive>
</div>
</el-scrollbar>
</div>
</div>
</el-card>
@ -118,7 +120,8 @@ const upload = () => {
loadSharedApi({ type: 'knowledge', systemType: apiType.value })
.workflowUpload(id, form_data.value, loading)
.then((ok: any) => {
router.go(-1)
action_id.value = ok.data.id
active.value = 'result'
})
})
}