feat:聊天tool前端入口

This commit is contained in:
Gsh
2025-12-23 00:15:32 +08:00
parent 8f515f76c0
commit 681194a517
6 changed files with 431 additions and 182 deletions

View File

@@ -13,13 +13,13 @@ import { Sender } from 'vue-element-plus-x';
import { useRoute } from 'vue-router';
import { send } from '@/api';
import ModelSelect from '@/components/ModelSelect/index.vue';
import YMarkdown from '@/vue-element-plus-y/components/XMarkdown/index.vue';
import { useGuideTourStore } from '@/stores';
import { useChatStore } from '@/stores/modules/chat';
import { useFilesStore } from '@/stores/modules/files';
import { useModelStore } from '@/stores/modules/model';
import { useUserStore } from '@/stores/modules/user';
import { getUserProfilePicture, systemProfilePicture } from '@/utils/user.ts';
import YMarkdown from '@/vue-element-plus-y/components/XMarkdown/index.vue';
import '@/styles/github-markdown.css';
import '@/styles/yixin-markdown.scss';
@@ -284,10 +284,12 @@ async function startSSE(chatContent: string) {
// 如果有图片或文件,使用数组格式
if (contentArray.length > 1 || imageFiles.length > 0 || textFiles.length > 0) {
baseMessage.content = contentArray;
} else {
}
else {
baseMessage.content = item.content;
}
} else {
}
else {
// 其他消息保持原样
baseMessage.content = (item.role === 'ai' || item.role === 'assistant') && item.content.length > 10000
? `${item.content.substring(0, 10000)}...(内容过长,已省略)`
@@ -391,7 +393,7 @@ function addMessage(message: string, isUser: boolean, images?: Array<{ url: stri
/**
* 处理思考链展开/收起状态变化
* @param {Object} payload - 状态变化的载荷
* @param {object} payload - 状态变化的载荷
* @param {boolean} payload.value - 展开/收起状态
* @param {ThinkingStatus} payload.status - 思考状态
*/
@@ -477,9 +479,9 @@ function handleImagePreview(url: string) {
:key="index"
class="user-file-item"
>
<el-icon class="file-icon">
<ElIcon class="file-icon">
<Document />
</el-icon>
</ElIcon>
<span class="file-name">{{ file.name }}</span>
</div>
</div>
@@ -543,6 +545,7 @@ function handleImagePreview(url: string) {
<template #prefix>
<div class="flex-1 flex items-center gap-8px flex-none w-fit overflow-hidden">
<FilesSelect />
<!-- < ToolList/> -->
<ModelSelect />
</div>
</template>