Compare commits
No commits in common. "eee7025a859fd9baba1dd5bfc5b0067267e8586b" and "98435311b2f7b524518c4b5f27fdc14a0cfed9ec" have entirely different histories.
eee7025a85
...
98435311b2
@ -6,11 +6,12 @@
|
|||||||
</view>
|
</view>
|
||||||
|
|
||||||
<!-- 聊天消息区域 -->
|
<!-- 聊天消息区域 -->
|
||||||
<scroll-view scroll-y :scroll-top="scrollTrigger" class="chat-messages" :scroll-with-animation="true"
|
<scroll-view scroll-y :scroll-top="scrollTop" class="chat-messages" :scroll-with-animation="true"
|
||||||
@scroll="onScroll">
|
@scroll="onScroll">
|
||||||
<view class="" style="padding: 10px 0;">
|
<view class="" style="padding: 10px 0;">
|
||||||
|
|
||||||
<view v-for="(msg, index) in messages" :key="index" :id="'msg-' + index" :class="['message', msg.sender === 'me' ? 'sent' : 'received']">
|
<view v-for="(msg, index) in messages" :key="index"
|
||||||
|
:class="['message', msg.sender === 'me' ? 'sent' : 'received']">
|
||||||
<image v-if="msg.sender !== 'me'" :src="botAvatar" class="avatar"></image>
|
<image v-if="msg.sender !== 'me'" :src="botAvatar" class="avatar"></image>
|
||||||
|
|
||||||
<view :class="['message-bubble', msg.sender === 'me' ? 'me' : '']">
|
<view :class="['message-bubble', msg.sender === 'me' ? 'me' : '']">
|
||||||
@ -18,7 +19,7 @@
|
|||||||
{{ msg.type === 'thinking' ? '思考中' : msg.type === 'answer' ? '回答' : '' }}
|
{{ msg.type === 'thinking' ? '思考中' : msg.type === 'answer' ? '回答' : '' }}
|
||||||
</text> -->
|
</text> -->
|
||||||
<view class="message-text" style="color: #999999;">{{ msg.thinkContent }}</view>
|
<view class="message-text" style="color: #999999;">{{ msg.thinkContent }}</view>
|
||||||
<view class="message-text" v-if="msg.answerType===2">{{ msg.answerContent}}</view>
|
<view class="message-text" v-if="msg.answerType===2">{{ msg.showAnswer}}</view>
|
||||||
<view class="message-text" v-if="msg.answerType===1">
|
<view class="message-text" v-if="msg.answerType===1">
|
||||||
<view>
|
<view>
|
||||||
【穿搭建议】:
|
【穿搭建议】:
|
||||||
@ -129,7 +130,6 @@
|
|||||||
return {
|
return {
|
||||||
inputMsg: '',
|
inputMsg: '',
|
||||||
scrollTop: 0,
|
scrollTop: 0,
|
||||||
scrollTrigger: 0, // <<< 新增:这就是我们的强制触发器
|
|
||||||
userAvatar: require('../../static/imgs/index/nav.png'),
|
userAvatar: require('../../static/imgs/index/nav.png'),
|
||||||
botAvatar: require('../../static/imgs/ai/chuandaguwen.png'),
|
botAvatar: require('../../static/imgs/ai/chuandaguwen.png'),
|
||||||
messages: [],
|
messages: [],
|
||||||
@ -147,7 +147,6 @@
|
|||||||
isHandleClose: false,
|
isHandleClose: false,
|
||||||
connectNum: 0,
|
connectNum: 0,
|
||||||
aiName: '',
|
aiName: '',
|
||||||
scrollBottom: 0, // 新增一个计数器
|
|
||||||
aiDefaultList: [
|
aiDefaultList: [
|
||||||
'最近雨季来了,家里总是很潮湿,有什么简单有效的除湿防霉小妙招吗?',
|
'最近雨季来了,家里总是很潮湿,有什么简单有效的除湿防霉小妙招吗?',
|
||||||
'我下周要参加一个商务休闲风格的客户午餐会(夏天,户外庭院),男,身高175cm,体型偏瘦,肤色偏白,有什么搭配建议吗?',
|
'我下周要参加一个商务休闲风格的客户午餐会(夏天,户外庭院),男,身高175cm,体型偏瘦,肤色偏白,有什么搭配建议吗?',
|
||||||
@ -159,9 +158,7 @@
|
|||||||
onLoad(options) {
|
onLoad(options) {
|
||||||
this.serviceUrl = options.serviceUrl || '';
|
this.serviceUrl = options.serviceUrl || '';
|
||||||
this.apiKey = options.apiKey || '';
|
this.apiKey = options.apiKey || '';
|
||||||
// this.botAvatar = options.icon || this.botAvatar;
|
this.botAvatar = options.icon || this.botAvatar;
|
||||||
this.botAvatar =this.botAvatar;
|
|
||||||
console.log(this.botAvatar)
|
|
||||||
this.aiName = options.name
|
this.aiName = options.name
|
||||||
const userInfo = wx.getStorageSync('userInfo') || {};
|
const userInfo = wx.getStorageSync('userInfo') || {};
|
||||||
this.userId = userInfo.id || Date.now().toString();
|
this.userId = userInfo.id || Date.now().toString();
|
||||||
@ -208,7 +205,7 @@
|
|||||||
answerContent: '',
|
answerContent: '',
|
||||||
type: 'normal',
|
type: 'normal',
|
||||||
isTyping: false,
|
isTyping: false,
|
||||||
answerContent: '已连接,请输入您的问题',
|
showAnswer: '已连接,请输入您的问题',
|
||||||
answerType: 2
|
answerType: 2
|
||||||
}
|
}
|
||||||
this.addMessage(params);
|
this.addMessage(params);
|
||||||
@ -254,7 +251,7 @@
|
|||||||
if (messageData.event === 'text_chunk') {
|
if (messageData.event === 'text_chunk') {
|
||||||
// 处理分块文本
|
// 处理分块文本
|
||||||
this.handleTextChunk(messageData);
|
this.handleTextChunk(messageData);
|
||||||
} else if (messageData.event === 'text_chunk_end') {
|
} else if (messageData.event === 'workflow_finished') {
|
||||||
this.currentAnswer = ''
|
this.currentAnswer = ''
|
||||||
// 处理完整节点完成
|
// 处理完整节点完成
|
||||||
this.handleNodeFinished(messageData);
|
this.handleNodeFinished(messageData);
|
||||||
@ -328,7 +325,7 @@
|
|||||||
// 提取回答内容,去除标签
|
// 提取回答内容,去除标签
|
||||||
const answerContent = text.replace(/<\/?think>/g, '');
|
const answerContent = text.replace(/<\/?think>/g, '');
|
||||||
if (!answerContent) return;
|
if (!answerContent) return;
|
||||||
console.log(1111)
|
|
||||||
// 查找最后一条回答消息
|
// 查找最后一条回答消息
|
||||||
// const lastAnswerMsgIndex = this.messages.findLastIndex(
|
// const lastAnswerMsgIndex = this.messages.findLastIndex(
|
||||||
// msg => msg.type === 'answer' || msg.type === 'normal'
|
// msg => msg.type === 'answer' || msg.type === 'normal'
|
||||||
@ -344,7 +341,6 @@
|
|||||||
// this.addMessage('bot', answerContent, 'answer');
|
// this.addMessage('bot', answerContent, 'answer');
|
||||||
// }
|
// }
|
||||||
this.messages[this.messages.length - 1].answerContent += answerContent
|
this.messages[this.messages.length - 1].answerContent += answerContent
|
||||||
console.log(this.messages)
|
|
||||||
// this.$forceUpdate();
|
// this.$forceUpdate();
|
||||||
this.scrollToBottom();
|
this.scrollToBottom();
|
||||||
},
|
},
|
||||||
@ -431,18 +427,17 @@
|
|||||||
const params = {
|
const params = {
|
||||||
sender: 'me',
|
sender: 'me',
|
||||||
thinkContent: '',
|
thinkContent: '',
|
||||||
|
answerContent: '',
|
||||||
type: 'normal',
|
type: 'normal',
|
||||||
isTyping: false,
|
isTyping: false,
|
||||||
answerContent: content,
|
showAnswer: content,
|
||||||
answerType: 2
|
answerType: 2
|
||||||
}
|
}
|
||||||
this.addMessage(params);
|
this.addMessage(params);
|
||||||
this.isAnswering = true
|
this.isAnswering = true
|
||||||
const mid = 'user-' + Date.now()
|
|
||||||
// 微信小程序中使用 socketTask.send
|
// 微信小程序中使用 socketTask.send
|
||||||
this.socketTask.send({
|
this.socketTask.send({
|
||||||
// data: content,
|
data: content,
|
||||||
data:JSON.stringify({ event: 'user_message', data: { id: mid, content: content } }),
|
|
||||||
success: () => {
|
success: () => {
|
||||||
console.log('消息发送成功');
|
console.log('消息发送成功');
|
||||||
const params = {
|
const params = {
|
||||||
@ -563,11 +558,8 @@
|
|||||||
|
|
||||||
// 滚动到底部
|
// 滚动到底部
|
||||||
scrollToBottom() {
|
scrollToBottom() {
|
||||||
console.log(2222)
|
|
||||||
this.$nextTick(() => {
|
this.$nextTick(() => {
|
||||||
// 核心:不管 scrollTop 原本是多少,我们给 scrollTrigger 一个新数字
|
this.scrollTop = 99999; // 足够大的值确保滚动到底部
|
||||||
// Date.now() 保证每次调用这个函数时,数值都绝对不一样
|
|
||||||
this.scrollTrigger = Date.now();
|
|
||||||
});
|
});
|
||||||
},
|
},
|
||||||
|
|
||||||
@ -601,8 +593,8 @@
|
|||||||
}
|
}
|
||||||
|
|
||||||
.chat-messages {
|
.chat-messages {
|
||||||
/* flex: 1; 注释掉这行 */
|
flex: 1;
|
||||||
height: calc(100vh - 100px); /* 根据顶部提示条和底部输入框的高度估算,或者使用 JS 动态计算 */
|
/* padding: 15px; */
|
||||||
background-color: #e5ddd5;
|
background-color: #e5ddd5;
|
||||||
overflow-y: auto;
|
overflow-y: auto;
|
||||||
}
|
}
|
||||||
|
|||||||
@ -1,9 +1,9 @@
|
|||||||
// export const BASE_URL = 'http://10.10.1.11:8071';
|
export const BASE_URL = 'http://10.10.1.6:8071';
|
||||||
// export const IMAGE_BASE_URL = `http://10.10.1.6:8071`;
|
export const IMAGE_BASE_URL = `http://10.10.1.6:8071`;
|
||||||
export const BASE_URL = 'https://jinshan.nantong.info';
|
// export const BASE_URL = 'https://jinshan.nantong.info';
|
||||||
export const IMAGE_BASE_URL = `https://jinshan.nantong.info`;
|
// export const IMAGE_BASE_URL = `https://jinshan.nantong.info`;
|
||||||
export const WS_BASE_URL = `wss://jinshan.nantong.info`;
|
export const WS_BASE_URL = `wss://jinshan.nantong.info`;
|
||||||
// export const WS_BASE_URL = 'ws://10.10.1.11:8071';
|
// export const WS_BASE_URL = 'ws://10.10.1.6:8071';
|
||||||
|
|
||||||
|
|
||||||
// http://36.212.197.253:8071
|
// http://36.212.197.253:8071
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user