From ada965001c31dae9abb1a6cbc55becfc9f4b6eaa Mon Sep 17 00:00:00 2001
From: liudong <liudong>
Date: 星期一, 05 八月 2024 11:10:12 +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