From b8dc9eeb53ce361f3142ea8de2c46244ecd9d5d6 Mon Sep 17 00:00:00 2001 From: wujingjing <gersonwu@qq.com> Date: 星期二, 16 七月 2024 16:16:51 +0800 Subject: [PATCH] map 类型 --- src/components/chat/Chat.vue | 42 ++++++++++++++++++++++++++++++++---------- 1 files changed, 32 insertions(+), 10 deletions(-) diff --git a/src/components/chat/Chat.vue b/src/components/chat/Chat.vue index e419ab1..e128e77 100644 --- a/src/components/chat/Chat.vue +++ b/src/components/chat/Chat.vue @@ -1,14 +1,28 @@ <template> <div class="flex flex-col h-full"> <div class="h-full flex flex-col items-center overflow-y-auto"> - <div ref="chatListDom" class="h-full w-[100ch]"> - <div class="group flex px-4 py-4 hover:bg-slate-100 rounded-lg" v-for="(item, index) of computedMessageList" :key="index"> - <img class="rounded-full size-12 mr-4" :src="roleImageMap[item.role]" alt="" srcset="" /> + <div ref="chatListDom" class="h-full" :style="{width:chatWidth}"> + <div + class="group flex px-4 py-6 hover:bg-slate-100 rounded-lg" + :class="{ 'flex-row-reverse': item.role === RoleEnum.user }" + v-for="(item, index) of computedMessageList" + :key="index" + > + <img + class="rounded-full size-12 mr-4" + :class="{ 'mr-4': item.role === RoleEnum.assistant, 'ml-4': item.role === RoleEnum.user }" + :src="roleImageMap[item.role]" + alt="" + srcset="" + /> - <div class="flex"> - <div class="relative" v-if="item.content?.values"> - <div class="text-sm rounded-[6px] p-4 leading-relaxed max-w-[100ch] bg-white"> - <component class="max-w-[100ch]" :is="answerTypeMapCom[item.content.type]" :data="item.content.values" :error="item.content.error"/> + <div class="flex" :class="{ 'w-full': item.role === RoleEnum.assistant }"> + <div class="relative w-full" v-if="item.content?.values"> + <div + class="text-sm rounded-[6px] p-4 leading-relaxed " + :style="{backgroundColor:item.role ===RoleEnum.user? 'rgb(197 224 255)':'white'}" + > + <component :is="answerTypeMapCom[item.content.type]" :data="item.content.values" :error="item.content.error" /> </div> <div v-if="item.role === RoleEnum.assistant" class="absolute flex items-center right-0 mr-2 mt-2 space-x-2"> @@ -42,7 +56,7 @@ </div> <div class="sticky bottom-0 w-full p-6 pb-8 bg-[rgb(247,248,250)] flex justify-center"> - <PlayBar :isTalking="isTalking" v-model="messageContent.values" @sendClick="sendChatMessage" /> + <PlayBar :isTalking="isTalking" v-model="messageContent.values" @sendClick="sendChatMessage" :style="{width:chatWidth}"></PlayBar> </div> </div> </template> @@ -59,6 +73,8 @@ import router from '/@/router'; import { activeChatRoom, activeLLMId, activeRoomId, activeSampleId, activeSectionAId, roomConfig } from '/@/stores/chatRoom'; import { v4 as uuidv4 } from 'uuid'; + +const chatWidth = '75%'; let isTalking = ref(false); let messageContent = ref<ChatContent>({ @@ -103,7 +119,13 @@ content = { type: AnswerType.Summary, values: res.summary, - error: res.error ?? res.json_msg , + error: res.error ?? res.json_msg, + }; + break; + case AnswerType.Url: + content = { + type: AnswerType.Url, + values: res.url, }; break; default: @@ -172,7 +194,7 @@ } clearQueryProcess(); queryProcess(); - const res = await QuestionAi(params).finally(()=>{ + const res = await QuestionAi(params).finally(() => { clearQueryProcess(); }); questionRes = res; -- Gitblit v1.9.3