Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion ui/src/components/global/mk-source-card/index.vue
Original file line number Diff line number Diff line change
Expand Up @@ -69,7 +69,7 @@ function handleSelectedChange(selected: boolean | string | number) {
:class="{ 'cursor-pointer': props.selectable && !props.disabled, active: props.selectable && props.selected }"
:role="props.selectable ? 'checkbox' : undefined"
:tabindex="props.selectable ? 0 : undefined"
:shadow="props.disabled ? 'always' : 'hover'"
:shadow="props.disabled ? 'never' : 'hover'"
class="mk-source-card group relative"
body-class="flex-column h-full"
@click="handleSelect"
Expand Down
56 changes: 0 additions & 56 deletions ui/src/conversation-panel/loading/index.vue

This file was deleted.

1 change: 1 addition & 0 deletions ui/src/styles/element-plus.scss
Original file line number Diff line number Diff line change
Expand Up @@ -428,6 +428,7 @@
.el-dialog {
--el-dialog-padding-primary: 24px;
--el-dialog-title-font-size: 16px;
--el-dialog-border-radius: 12px;
padding: 0;
&__header {
padding: var(--el-dialog-padding-primary);
Expand Down
20 changes: 14 additions & 6 deletions ui/src/views/knowledge-detail/hit-test/index.vue
Original file line number Diff line number Diff line change
Expand Up @@ -53,13 +53,17 @@ const paragraphDialogRef = useTemplateRef<InstanceType<typeof ParagraphDialog>>(
function canReadParagraph(paragraph: KnowledgeHitTestResult) {
const isImage = paragraph.document_resource_type === DOCUMENT_RESOURCE_TYPE.IMAGE
if (isSystemResource()) return isImage ? perm.knowledge.system.image.read() : perm.knowledge.system.docRead()
return !isWorkspaceResource() || (isImage ? perm.knowledge.workspace.image.read(knowledgeId.value) : perm.knowledge.workspace.docRead(knowledgeId.value))
return (
!isWorkspaceResource() || (isImage ? perm.knowledge.workspace.image.read(knowledgeId.value) : perm.knowledge.workspace.docRead(knowledgeId.value))
)
}

function canEditParagraph(paragraph: KnowledgeHitTestResult) {
const isImage = paragraph.document_resource_type === DOCUMENT_RESOURCE_TYPE.IMAGE
if (isSystemResource()) return isImage ? perm.knowledge.system.image.edit() : perm.knowledge.system.docEdit()
return !isWorkspaceResource() || (isImage ? perm.knowledge.workspace.image.edit(knowledgeId.value) : perm.knowledge.workspace.docEdit(knowledgeId.value))
return (
!isWorkspaceResource() || (isImage ? perm.knowledge.workspace.image.edit(knowledgeId.value) : perm.knowledge.workspace.docEdit(knowledgeId.value))
)
}

async function handleOpenParagraph(paragraph: KnowledgeHitTestResult) {
Expand Down Expand Up @@ -198,14 +202,18 @@ function testKnowledge(query: Required<Pick<KnowledgeHitTestPayload, 'query_text
<MkSourceCard :title="paragraph.title || '-'" class="cursor-pointer" @click="handleOpenParagraph(paragraph)">
<template #title="{ title }">
<span class="flex-align-center min-w-0 gap-2">
<h6 class="shrink-0">{{ `#${paragraphIndex + 1}` }}</h6>
<h4 class="shrink-0">{{ `#${paragraphIndex + 1}` }}</h4>
<el-divider direction="vertical" />
<h6 class="min-w-0 truncate" :title="title">{{ title }}</h6>
<h4 class="min-w-0 truncate" :title="title">{{ title }}</h4>
</span>
</template>
<template #tag>
<el-tag size="small" type="info">{{ paragraph.hit_unit_type === KNOWLEDGE_HIT_UNIT_TYPE.IMAGE ? '图片向量' : '文本向量' }}</el-tag>
<h6 class="shrink-0 text-primary">{{ paragraph.similarity.toFixed(3) }}</h6>
<div class="flex-align-center gap-2">
<el-tag size="small" type="info">
{{ paragraph.hit_unit_type === KNOWLEDGE_HIT_UNIT_TYPE.IMAGE ? '图片向量' : '文本向量' }}
</el-tag>
<h6 class="shrink-0 text-primary">{{ paragraph.similarity.toFixed(3) }}</h6>
</div>
</template>
<!-- 图片随卡片点击打开分段详情 -->
<el-image
Expand Down
36 changes: 19 additions & 17 deletions ui/src/workflow-canvas/nodes/ai-chat-node/details/application.vue
Original file line number Diff line number Diff line change
Expand Up @@ -43,33 +43,35 @@ defineProps<{
<div class="mk-gray-card-sm">
<h6 class="mb-2">本次对话</h6>
<div class="whitespace-pre-wrap space-y-2">
<template v-if="Array.isArray(data.question)">
<div v-for="(item, qIndex) in data.question" :key="qIndex">
<!-- 查看本次对话图片 -->
<p class="mb-1 text-N600">图片:</p>
<!-- 查看本次对话图片 -->
<div v-if="data?.image_list?.length > 0" class="flex flex-wrap gap-2">
<template v-for="(imageItem, qIndex) in data?.image_list" :key="qIndex">
<ImageUploadCard
v-if="item.type === 'image_url'"
:file="{ name: '图片', status: 'success' }"
:src="item.image_url?.url || item.image_url"
:size="32"
:src="imageItem.url || imageItem"
:size="58"
:show-remove="false"
:preview-src-list="[item.image_url?.url || item.image_url]"
:preview-src-list="[imageItem.url || imageItem]"
/>
<!-- 点击卡片播放本次对话视频 -->
<MkVideo v-else-if="item.type === 'video_url'" :src="item.video_url?.url || item.video_url" name="视频" class="w-60 max-w-full">
</template>
</div>
<p class="mb-1 text-N600">视频:</p>
<!-- 查看本次对话视频 -->
<div v-if="data?.video_list?.length > 0" class="grid grid-cols-1 gap-2 sm:grid-cols-2">
<template v-for="(videoItem, qIndex) in data?.video_list" :key="qIndex">
<MkVideo :src="videoItem.url || videoItem" :name="videoItem.url" class="w-60 max-w-full">
<el-card shadow="never" class="small cursor-pointer">
<div class="flex-align-center gap-2">
<img :src="getFileIconUrl('video.mp4')" alt="" width="24" class="shrink-0" />
<span class="min-w-0 truncate">视频</span>
<span class="min-w-0 truncate">{{ videoItem.url || videoItem }}</span>
</div>
</el-card>
</MkVideo>
<div v-else-if="item.type === 'text'">{{ item.text }}</div>
<div v-else>{{ item }}</div>
</div>
</template>
<template v-else>
{{ data.question || '-' }}
</template>
</template>
</div>

<MdPreview v-if="data.question?.content" :model-value="data.question?.content" noImgZoomIn />
</div>
</div>

Expand Down
40 changes: 21 additions & 19 deletions ui/src/workflow-canvas/nodes/ai-chat-node/details/knowledge.vue
Original file line number Diff line number Diff line change
Expand Up @@ -25,37 +25,39 @@ defineProps<{
<div>{{ data.system || '-' }}</div>
</div>

<!-- 用户提示词 -->
<!-- 本次对话 -->
<div class="mk-gray-card-sm">
<h6 class="mb-2">用户提示词</h6>
<h6 class="mb-2">本次对话</h6>
<div class="whitespace-pre-wrap space-y-2">
<template v-if="Array.isArray(data.question)">
<div v-for="(item, qIndex) in data.question" :key="qIndex">
<!-- 查看本次对话图片 -->
<p class="mb-1 text-N600">图片:</p>
<!-- 查看本次对话图片 -->
<div v-if="data?.image_list?.length > 0" class="flex flex-wrap gap-2">
<template v-for="(imageItem, qIndex) in data?.image_list" :key="qIndex">
<ImageUploadCard
v-if="item.type === 'image_url'"
:file="{ name: '图片', status: 'success' }"
:src="item.image_url?.url || item.image_url"
:size="32"
:src="imageItem.url || imageItem"
:size="58"
:show-remove="false"
:preview-src-list="[item.image_url?.url || item.image_url]"
:preview-src-list="[imageItem.url || imageItem]"
/>
<!-- 点击卡片播放本次对话视频 -->
<MkVideo v-else-if="item.type === 'video_url'" :src="item.video_url?.url || item.video_url" name="视频" class="w-full">
</template>
</div>
<p class="mb-1 text-N600">视频:</p>
<!-- 查看本次对话视频 -->
<div v-if="data?.video_list?.length > 0" class="grid grid-cols-1 gap-2 sm:grid-cols-2">
<template v-for="(videoItem, qIndex) in data?.video_list" :key="qIndex">
<MkVideo :src="videoItem.url || videoItem" :name="videoItem.url" class="w-60 max-w-full">
<el-card shadow="never" class="small cursor-pointer">
<div class="flex-align-center gap-2">
<img :src="getFileIconUrl('video.mp4')" alt="" width="24" class="shrink-0" />
<span class="min-w-0 truncate">视频</span>
<span class="min-w-0 truncate">{{ videoItem.url || videoItem }}</span>
</div>
</el-card>
</MkVideo>
<div v-else-if="item.type === 'text'">{{ item.text }}</div>
<div v-else>{{ item }}</div>
</div>
</template>
<template v-else>
{{ data.question || '-' }}
</template>
</template>
</div>

<MdPreview v-if="data.question?.content" :model-value="data.question?.content" noImgZoomIn />
</div>
</div>

Expand Down
19 changes: 9 additions & 10 deletions ui/src/workflow-canvas/nodes/application-node/details/index.vue
Original file line number Diff line number Diff line change
Expand Up @@ -50,16 +50,15 @@ defineProps<{
<div v-if="data.image_list?.length > 0">
<p class="mb-1 text-N600">图片:</p>
<div class="flex flex-wrap gap-2">
<el-image
class="size-8"
v-for="(f, i) in data.image_list"
:key="i"
:src="f.url"
fit="cover"
:preview-src-list="data.image_list.map((img: any) => img.url)"
:scale="0.8"
:initial-index="i"
/>
<template v-for="(imageItem, qIndex) in data?.image_list" :key="qIndex">
<ImageUploadCard
:file="{ name: '图片', status: 'success' }"
:src="imageItem.url || imageItem"
:size="58"
:show-remove="false"
:preview-src-list="[imageItem.url || imageItem]"
/>
</template>
</div>
</div>

Expand Down
42 changes: 20 additions & 22 deletions ui/src/workflow-canvas/nodes/image-to-video-node/details/index.vue
Original file line number Diff line number Diff line change
Expand Up @@ -39,22 +39,21 @@ defineProps<{
v-if="typeof data.first_frame_url === 'string'"
:file="{ name: '首帧', status: 'success' }"
:src="data.first_frame_url"
:size="32"
:size="58"
:show-remove="false"
:preview-src-list="[data.first_frame_url]"
/>
<div v-else-if="Array.isArray(data.first_frame_url)" class="flex flex-wrap gap-2">
<!-- 查看首帧图片列表 -->
<ImageUploadCard
v-for="(file, index) in data.first_frame_url"
:key="index"
:file="{ ...file, name: file.name || '首帧', status: 'success' }"
:src="file.url"
:size="32"
:show-remove="false"
:preview-src-list="data.first_frame_url.map((image: { url: string }) => image.url)"
:initial-index="index"
/>
<template v-for="(file, index) in data.first_frame_url" :key="index">
<ImageUploadCard
:file="{ ...file, name: file.name || '首帧', status: 'success' }"
:src="file.url"
:size="58"
:show-remove="false"
:preview-src-list="data.first_frame_url.map((image: { url: string }) => image.url)"
/>
</template>
</div>
<template v-else>-</template>
</div>
Expand All @@ -68,22 +67,21 @@ defineProps<{
v-if="typeof data.last_frame_url === 'string'"
:file="{ name: '末帧', status: 'success' }"
:src="data.last_frame_url"
:size="32"
:size="58"
:show-remove="false"
:preview-src-list="[data.last_frame_url]"
/>
<div v-else-if="Array.isArray(data.last_frame_url)" class="flex flex-wrap gap-2">
<!-- 查看末帧图片列表 -->
<ImageUploadCard
v-for="(file, index) in data.last_frame_url"
:key="index"
:file="{ ...file, name: file.name || '末帧', status: 'success' }"
:src="file.url"
:size="32"
:show-remove="false"
:preview-src-list="data.last_frame_url.map((image: { url: string }) => image.url)"
:initial-index="index"
/>
<template v-for="(file, index) in data.last_frame_url" :key="index">
<ImageUploadCard
:file="{ ...file, name: file.name || '末帧', status: 'success' }"
:src="file.url"
:size="58"
:show-remove="false"
:preview-src-list="data.last_frame_url.map((image: { url: string }) => image.url)"
/>
</template>
</div>
<template v-else>-</template>
</div>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -35,7 +35,7 @@ defineProps<{
v-if="h.type === 'image_url'"
:file="{ name: '图片', status: 'success' }"
:src="h.image_url.url"
:size="104"
:size="58"
:show-remove="false"
:preview-src-list="[h.image_url.url]"
/>
Expand All @@ -62,10 +62,9 @@ defineProps<{
:key="i"
:file="{ ...f, name: f.name || '图片', status: 'success' }"
:src="f.url || (f.file_id ? `./oss/file/${f.file_id}` : '')"
:size="104"
:size="58"
:show-remove="false"
:preview-src-list="data.image_list.map((img: any) => img.url || (img.file_id ? `./oss/file/${img.file_id}` : ''))"
:initial-index="Number(i)"
/>
</div>
<div>{{ data.question || '-' }}</div>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@ defineProps<{
</div>

<div class="mk-gray-card-sm">
<h6 class="mb-2">用户提示词</h6>
<h6 class="mb-2">本次对话</h6>
<div class="whitespace-pre-wrap space-y-2">
<div v-if="data.image_list?.length > 0" class="flex flex-wrap gap-2">
<!-- 查看本次对话图片 -->
Expand All @@ -32,10 +32,9 @@ defineProps<{
:key="i"
:file="{ ...f, name: f.name || '图片', status: 'success' }"
:src="f.url || (f.file_id ? `./oss/file/${f.file_id}` : '')"
:size="104"
:size="58"
:show-remove="false"
:preview-src-list="data.image_list.map((img: any) => img.url || (img.file_id ? `./oss/file/${img.file_id}` : ''))"
:initial-index="Number(i)"
/>
</div>
<div>{{ data.question || '-' }}</div>
Expand Down
Loading
Loading