提交 d6d134d1 编写于 作者: DCloud_JSON's avatar DCloud_JSON

1.0.11

- 修复 流式响应模式,微信小程序端,部分情况下:消息内容突然变空白的问题
- 优化 uni-ai问题回复完成后,消息输入框自动获取焦点
- 修复 Vue3-web-pc端 敲完回车会先执行换行再发送消息的问题
上级 4feae8a8
## 1.0.11(2023-05-17)
- 修复 流式响应模式,微信小程序端,部分情况下:消息内容突然变空白的问题
- 优化 uni-ai问题回复完成后,消息输入框自动获取焦点
- 修复 Vue3-web-pc端 敲完回车会先执行换行再发送消息的问题
## 1.0.10(2023-05-15) ## 1.0.10(2023-05-15)
- 修复 Vue3-web-pc端 回车不能发送消息的问题(临时兼容方案,后续textarea组件不支持@keydown的问题修复后会调整) - 修复 Vue3-web-pc端 回车不能发送消息的问题(临时兼容方案,后续textarea组件不支持@keydown的问题修复后会调整)
## 1.0.9(2023-05-15) ## 1.0.9(2023-05-15)
......
...@@ -104,25 +104,25 @@ ...@@ -104,25 +104,25 @@
} }
}, },
computed: { computed: {
// 修改转换结果的html值 用于正确给界面增加鼠标闪烁的效果 nodes() {
html() { let htmlString = ''
// 修改转换结果的htmlString值 用于正确给界面增加鼠标闪烁的效果
// 判断markdown中代码块标识符的数量是否为偶数 // 判断markdown中代码块标识符的数量是否为偶数
if(this.md.split("```").length%2){ if(this.md.split("```").length%2){
return markdownIt.render(this.md + ' \n <span class="cursor">|</span>'); htmlString = markdownIt.render(this.md + ' \n <span class="cursor">|</span>');
}else{ }else{
return markdownIt.render(this.md) + ' \n <span class="cursor">|</span>'; htmlString = markdownIt.render(this.md) + ' \n <span class="cursor">|</span>';
} }
},
nodes() {
// 为兼容 微信小程序端部分未知情况转换失败的情况,临时方案 先返回 string html
// #ifdef MP-WEIXIN // #ifndef APP-NVUE
return this.html return htmlString
// #endif // #endif
// #ifndef MP-WEIXIN // nvue模式下将htmlString转成htmlArray,其他情况rich-text内部转
// HTML String 类型转换 避免内部转换导致的性能下降。 // 注:本示例项目还没使用nvue编译
return parseHtml(this.html)
// #ifdef APP-NVUE
return parseHtml(htmlString)
// #endif // #endif
} }
}, },
......
{ {
"id": "uni-ai-chat", "id": "uni-ai-chat",
"name": "uni-ai-chat", "name": "uni-ai-chat",
"version": "1.0.10", "version": "1.0.11",
"description": "基于uni-ai的聊天示例项目,支持流式、支持前文总结,云端一体", "description": "基于uni-ai的聊天示例项目,支持流式、支持前文总结,云端一体",
"main": "main.js", "main": "main.js",
"scripts": { "scripts": {
......
...@@ -48,7 +48,7 @@ ...@@ -48,7 +48,7 @@
<view class="textarea-box"> <view class="textarea-box">
<textarea v-model="content" :cursor-spacing="15" class="textarea" :auto-height="!isWidescreen" <textarea v-model="content" :cursor-spacing="15" class="textarea" :auto-height="!isWidescreen"
@keyup.shift="onKeyup('shift')" @keydown.shift="onKeydown('shift')" @keydown.enter="onKeydown('enter')" @keyup.shift="onKeyup('shift')" @keydown.shift="onKeydown('shift')" @keydown.enter="onKeydown('enter')"
:disabled="inputBoxDisabled" :placeholder="placeholderText" :maxlength="-1" :disabled="inputBoxDisabled" :placeholder="placeholderText" :maxlength="-1" :focus="focus"
placeholder-class="input-placeholder"></textarea> placeholder-class="input-placeholder"></textarea>
</view> </view>
<view class="send-btn-box"> <view class="send-btn-box">
...@@ -92,7 +92,8 @@ ...@@ -92,7 +92,8 @@
// 当前屏幕是否为宽屏 // 当前屏幕是否为宽屏
isWidescreen: false, isWidescreen: false,
// 广告位id // 广告位id
adpid adpid,
focus:false
} }
}, },
computed: { computed: {
...@@ -125,10 +126,21 @@ ...@@ -125,10 +126,21 @@
}, },
// 监听msgList变化,将其存储到本地缓存中 // 监听msgList变化,将其存储到本地缓存中
watch: { watch: {
// #ifdef H5
inputBoxDisabled(val){
this.$nextTick(()=>{
this.focus = !val
console.log('this.focus',this.focus);
})
},
// #endif
msgList: { msgList: {
handler(msgList) { handler(msgList) {
// 将msgList存储到本地缓存中 // 将msgList存储到本地缓存中
uni.setStorageSync('uni-ai-msg', msgList) uni.setStorage({
"key":"uni-ai-msg",
"data":msgList
})
}, },
// 深度监听msgList变化 // 深度监听msgList变化
deep: true deep: true
...@@ -208,9 +220,9 @@ ...@@ -208,9 +220,9 @@
} }
if (e.keyCode == 13 && !adjunctKeydown) { if (e.keyCode == 13 && !adjunctKeydown) {
// 延迟兼容 v-model的时机小于onkeydown的问题 // 延迟兼容 v-model的时机小于onkeydown的问题
setTimeout(()=> { this.content = textareaDom.value
// 执行发送
this.beforeSendMsg(); this.beforeSendMsg();
}, 100);
} }
}; };
textareaDom.onkeyup = e => { textareaDom.onkeyup = e => {
...@@ -384,7 +396,6 @@ ...@@ -384,7 +396,6 @@
} }
} }
// 检查是否开通uni-push;决定是否启用enableStream // 检查是否开通uni-push;决定是否启用enableStream
await this.checkIsOpenPush() await this.checkIsOpenPush()
...@@ -465,7 +476,7 @@ ...@@ -465,7 +476,7 @@
// console.log('sseChannel',sseChannel); // console.log('sseChannel',sseChannel);
// 监听message事件 // 监听message事件
sseChannel.on('message', (message) => { sseChannel.on('message',(message) => {
// console.log('on message', message); // console.log('on message', message);
// 将从云端接收到的消息添加到消息列表中 // 将从云端接收到的消息添加到消息列表中
...@@ -729,6 +740,7 @@ ...@@ -729,6 +740,7 @@
overflow: auto; overflow: auto;
/* #endif */ /* #endif */
width: 450rpx; width: 450rpx;
font-size: 14px;
} }
/* #ifdef H5 */ /* #ifdef H5 */
...@@ -736,11 +748,11 @@ ...@@ -736,11 +748,11 @@
.textarea-box .textarea::-webkit-scrollbar { .textarea-box .textarea::-webkit-scrollbar {
width: 0; width: 0;
} }
/* #endif */ /* #endif */
.input-placeholder { .input-placeholder {
color: #bbb; color: #bbb;
line-height: 18px;
} }
.trash, .trash,
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册