From 3a022dc2caa78267a681824ea1c303f140cd6797 Mon Sep 17 00:00:00 2001 From: liudong <liudong> Date: 星期五, 02 八月 2024 19:57:45 +0800 Subject: [PATCH] 智能体管理的页面开发和功能开发 --- src/views/session/sessionManager/index.vue | 45 ++++++++++++++++++++++++++------------------- 1 files changed, 26 insertions(+), 19 deletions(-) diff --git a/src/views/session/sessionManager/index.vue b/src/views/session/sessionManager/index.vue index fd1e5fd..4c3b45a 100644 --- a/src/views/session/sessionManager/index.vue +++ b/src/views/session/sessionManager/index.vue @@ -4,7 +4,7 @@ import img2 from '@/assets/images/u69.png' import img3 from '@/assets/images/u74.png'; import AddSession from './components/addSession.vue' - import { ref, onMounted, computed, reactive, nextTick } from 'vue'; + import { ref, onMounted, computed, reactive, nextTick,watch } from 'vue'; import { useUserStore,useAppStore } from '@/store'; import { sessionListApi, deleteSessionApi,getSessionDetailsApi,chatApi }from '@/api/session'; import { Message } from '@arco-design/web-vue'; @@ -25,20 +25,20 @@ const streamStr=ref(''); const modalObj=reactive({ add:false }); //鏌ヨ浼氳瘽鍒楄〃 - const querySessionList = async () => { + const querySessionList = async () => { const { code, data } =await sessionListApi(); - if (code === 200) { - sessionList.value = data; - if(Array.isArray(data)&&data.length>0){ - activeSessionId.value=data[0].id; - const res= await getSessionDetailsApi(data[0].id); - if(res.code===200){ - sessionDetailList.value=res.data.message; - refreshScroll(); + if (code === 200) { + sessionList.value = data; + if(Array.isArray(data)&&data.length>0){ + activeSessionId.value=data[0].id; + const res= await getSessionDetailsApi(data[0].id); + if(res.code===200){ + sessionDetailList.value=res.data.message; + refreshScroll(); + } } - } }else{ - Message.warning('鏌ヨ澶辫触'); + Message.warning('鏌ヨ澶辫触'); } }; //鏍规嵁浼氳瘽id鍒犻櫎浼氳瘽 @@ -88,6 +88,8 @@ sessionDetailList.value=res.data.message.map((item,index)=>{ if(index===res.data.message.length-1){ item.role='last'; + displayedText.value=''; + currIndex.value=0; streamStr.value=item.content; startDisplayStr(); } @@ -103,7 +105,7 @@ onMounted(()=>{ initData(); }); - //鏂囧瓧涓�涓竴涓緭鍑� + //鏂囧瓧鍔ㄦ�佽緭鍑� const startDisplayStr = () => { if (timer) { clearTimeout(timer!); @@ -119,7 +121,13 @@ timer = null } } - + watch(() => scrollbar.value, (newScroll, oldScroll) => { + if (newScroll) { + // 鑾峰彇a-scroll鐨勯珮搴� + const height = newScroll.$el.offsetHeight; + console.log('a-scroll height changed to:', height); + } + },{deep:true}) </script> <template> @@ -134,7 +142,7 @@ </a-button> </template> <a-scrollbar class="left-list" style="height: 60vh;overflow-y: auto;"> - <div class="item" :class="{isLeftActive:activeSessionId===session.id}" v-for="session in sessionList" :key="session.id" @click="querySessionDetail(session)"> + <div class="item" :class="{ isLeftActive:activeSessionId===session.id }" v-for="session in sessionList" :key="session.id" @click="querySessionDetail(session)"> <div class="item-left"> <IconQuestionCircleFill/>銆� {{session.name}} @@ -222,16 +230,15 @@ avatar="https://p1-arco.byteimg.com/tos-cn-i-uwbnlip3yd/9eeb1800d9b78349b24682c3518ac4a3.png~tplv-uwbnlip3yd-webp.webp" > <template #content> - <a-card class="chat-item-answer" style="background-color: rgba(63, 64, 79, 1);"> - <div :class="{light:theme==='light'}"> {{displayedText}}</div> - </a-card> + <a-textarea readonly auto-size v-model="displayedText" class="chat-item-answer" style="background-color: rgba(63, 64, 79, 1);"> + </a-textarea> </template> </a-comment> </div> </a-scrollbar> <div class="bottom"> <div class="input"> - <a-input v-model="inputMsg"> + <a-input v-model="inputMsg" @keydown.enter="sendMessage" placeholder="杈撳叆鎮ㄦ兂浜嗚В鐨勫唴瀹癸紝鎸塃nter鍙戦��"> <template #suffix> <icon-send style="cursor: pointer" @click="sendMessage"/> </template> -- Gitblit v1.8.0