feat(aiChat): AI消息点赞与反馈,AI弹窗最大化

This commit is contained in:
dong.ai
2025-12-11 10:08:47 +08:00
committed by joshen
parent 20e75b6b5d
commit f236ec34b3
8 changed files with 318 additions and 54 deletions

View File

@@ -1,15 +1,8 @@
<template>
<div class="input-area">
<el-input
v-model="inputContent"
type="textarea"
class="input-placeholder"
placeholder="有问题,尽管问"
@keyup.enter.native.prevent="handleSend"
:disabled="disabled"
:autosize="{ minRows: 2, maxRows: 4}"
resize="none"
></el-input>
<el-input v-model="inputContent" type="textarea" class="input-placeholder" placeholder="有问题,尽管问"
@keyup.enter.native.prevent="handleSend" :disabled="disabled" :autosize="{ minRows: 2, maxRows: 4 }"
resize="none"></el-input>
<div class="action-buttons">
<el-button type="primary" size="small" class="start-btn" @click="handleNewConversation">
+ 开启新对话
@@ -87,9 +80,10 @@ export default {
callAIChat(question) {
// 创建新的AI消息对象
const aiMessage = {
docId: '',
isBot: true,
text: '',
status:null,
status: null,
thinkText: '',
caseRefers: [], // 添加caseRefers字段
textCompleted: false // 添加文字处理完成状态默认为false
@@ -102,14 +96,14 @@ export default {
query: question
};
// 创建POST请求
fetch('/systemapi/xboe/m/boe/case/ai/chat',{
fetch('/systemapi/xboe/m/boe/case/ai/chat', {
method: 'POST',
headers: {
'Content-Type': 'application/json',
"accept": "text/event-stream",
},
body: JSON.stringify(requestData)
}).then(r=>{
}).then(r => {
return r
}).then(response => {
// 处理流式响应
@@ -267,8 +261,8 @@ export default {
// 累积内容并使用打字机效果更新显示
accumulatedContent += content;
// 如果thinkText已经显示完整则继续使用打字机效果显示内容
if( aiMessage.hasThink){
if(aiMessage.thinkText.length >=accumulatedThinkContent.length){
if (aiMessage.hasThink) {
if (aiMessage.thinkText.length >= accumulatedThinkContent.length) {
typeText(aiMessage, accumulatedContent);
}
} else {
@@ -303,6 +297,23 @@ export default {
this.$emit('update-message', aiMessage);
}
break;
case 9:
if (jsonData.docId) {
aiMessage.docId = jsonData.docId
this.$emit('update-message', aiMessage);
}
console.log(jsonData)
break
default:
if (jsonData.docId) {
aiMessage.docId = jsonData.docId
this.$emit('update-message', aiMessage);
}
break
}
} catch (error) {
console.error('解析SSE数据错误:', error);