Skip to content

Commit 54e0000

Browse files
feat: 完善对话上传文档功能
1 parent 7eb031e commit 54e0000

File tree

4 files changed

+54
-17
lines changed

4 files changed

+54
-17
lines changed

ui/src/api/type/application.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -41,6 +41,7 @@ interface chatType {
4141
vote_status: string
4242
status?: number,
4343
execution_details: any[]
44+
upload_meta?: any[]
4445
}
4546

4647
export class ChatRecordManage {

ui/src/components/ai-chat/ExecutionDetailDialog.vue

Lines changed: 39 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -50,21 +50,48 @@
5050
<div class="card-never border-r-4">
5151
<h5 class="p-8-12">参数输入</h5>
5252
<div class="p-8-12 border-t-dashed lighter">
53-
<div>用户问题: {{ item.question || '-' }}</div>
54-
<div v-for="(f, i) in item.global_fields" :key="i">
55-
{{ f.label }}: {{ f.value }}
53+
<div class="mb-8">
54+
<span class="color-secondary">用户问题:</span>
55+
{{ item.question || '-' }}
56+
</div>
57+
<div v-for="(f, i) in item.global_fields" :key="i" class="mb-8">
58+
<span class="color-secondary">{{ f.label }}:</span> {{ f.value }}
5659
</div>
5760
<div v-if="item.document_list?.length > 0">
58-
上传的文档:
59-
<div v-for="(f, i) in item.document_list" :key="i">
60-
{{ f.name }}
61-
</div>
61+
<p class="mb-8 color-secondary">上传的文档:</p>
62+
63+
<el-space wrap>
64+
<template v-for="(f, i) in item.document_list" :key="i">
65+
{{ f.name }}
66+
<el-card
67+
shadow="never"
68+
style="--el-card-padding: 8px"
69+
class="file cursor"
70+
>
71+
<div class="flex align-center">
72+
<img :src="getImgUrl(f && f?.name)" alt="" width="24" />
73+
<div class="ml-4 ellipsis" :title="f && f?.name">
74+
{{ f && f?.name }}
75+
</div>
76+
</div>
77+
</el-card>
78+
</template>
79+
</el-space>
6280
</div>
6381
<div v-if="item.image_list?.length > 0">
64-
上传的图片:
65-
<div v-for="(f, i) in item.image_list" :key="i">
66-
{{ f.name }}
67-
</div>
82+
<p class="mb-8 color-secondary">上传的图片:</p>
83+
84+
<el-space wrap>
85+
<template v-for="(f, i) in item.image_list" :key="i">
86+
<el-image
87+
:src="f.url"
88+
alt=""
89+
fit="cover"
90+
style="width: 40px; height: 40px; display: block"
91+
class="border-r-4"
92+
/>
93+
</template>
94+
</el-space>
6895
</div>
6996
</div>
7097
</div>
@@ -308,6 +335,7 @@ import ParagraphCard from './component/ParagraphCard.vue'
308335
import { arraySort } from '@/utils/utils'
309336
import { iconComponent } from '@/workflow/icons/utils'
310337
import { WorkflowType } from '@/enums/workflow'
338+
import { getImgUrl } from '@/utils/utils'
311339
312340
const dialogVisible = ref(false)
313341
const detail = ref<any[]>([])

ui/src/components/ai-chat/component/chat-input-operate/index.vue

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@
99
v-if="uploadDocumentList.length || uploadImageList.length"
1010
>
1111
<el-space wrap>
12-
<!-- <template v-for="(item, index) in uploadDocumentList" :key="index">
12+
<template v-for="(item, index) in uploadDocumentList" :key="index">
1313
<el-card shadow="never" style="--el-card-padding: 8px" class="file cursor">
1414
<div
1515
class="flex align-center"
@@ -29,7 +29,7 @@
2929
</div>
3030
</div>
3131
</el-card>
32-
</template> -->
32+
</template>
3333
<template v-for="(item, index) in uploadImageList" :key="index">
3434
<div
3535
class="file cursor border border-r-4"

ui/src/components/ai-chat/component/question-content/index.vue

Lines changed: 12 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,7 @@
3232
<div class="mb-8" v-if="image_list.length">
3333
<el-space wrap>
3434
<template v-for="(item, index) in image_list" :key="index">
35-
<div class="file cursor border border-r-4" v-if="item.url">
35+
<div class="file cursor border-r-4" v-if="item.url">
3636
<el-image
3737
:src="item.url"
3838
:zoom-rate="1.2"
@@ -62,11 +62,19 @@ const props = defineProps<{
6262
chatRecord: chatType
6363
}>()
6464
const document_list = computed(() => {
65-
return []
65+
if (props.chatRecord?.upload_meta) {
66+
return props.chatRecord.upload_meta?.document_list || []
67+
} else if (props.chatRecord.execution_details?.length > 0) {
68+
return props.chatRecord.execution_details[0]?.document_list || []
69+
} else {
70+
return []
71+
}
6672
})
6773
const image_list = computed(() => {
68-
if (props.chatRecord.execution_details?.length > 0) {
69-
return props.chatRecord.execution_details[0].image_list
74+
if (props.chatRecord?.upload_meta) {
75+
return props.chatRecord.upload_meta?.image_list || []
76+
} else if (props.chatRecord.execution_details?.length > 0) {
77+
return props.chatRecord.execution_details[0]?.image_list || []
7078
} else {
7179
return []
7280
}

0 commit comments

Comments
 (0)