|
@@ -76,6 +76,7 @@
|
|
|
:auto-height="true"
|
|
:auto-height="true"
|
|
|
:maxlength="500"
|
|
:maxlength="500"
|
|
|
:show-confirm-bar="false"
|
|
:show-confirm-bar="false"
|
|
|
|
|
+ :focus="inputFocus"
|
|
|
/>
|
|
/>
|
|
|
<button
|
|
<button
|
|
|
class="send-button"
|
|
class="send-button"
|
|
@@ -129,6 +130,8 @@ export default {
|
|
|
// 键盘相关
|
|
// 键盘相关
|
|
|
keyboardHeight: 0, // 键盘高度
|
|
keyboardHeight: 0, // 键盘高度
|
|
|
isKeyboardShow: false, // 键盘是否显示
|
|
isKeyboardShow: false, // 键盘是否显示
|
|
|
|
|
+ inputFocus: false, // 输入框焦点
|
|
|
|
|
+ isInputFocused: false, // 标记输入框是否聚焦
|
|
|
};
|
|
};
|
|
|
},
|
|
},
|
|
|
onLoad(options) {
|
|
onLoad(options) {
|
|
@@ -692,10 +695,14 @@ export default {
|
|
|
this.messageList.push(myMessage);
|
|
this.messageList.push(myMessage);
|
|
|
// 清空输入框
|
|
// 清空输入框
|
|
|
this.inputText = '';
|
|
this.inputText = '';
|
|
|
- // 滚动到底部
|
|
|
|
|
|
|
+ // 重新聚焦
|
|
|
this.$nextTick(() => {
|
|
this.$nextTick(() => {
|
|
|
- this.scrollToBottom(); // 用户操作时使用动画
|
|
|
|
|
- });
|
|
|
|
|
|
|
+ this.inputFocus = true
|
|
|
|
|
+ })
|
|
|
|
|
+ // 滚动到底部
|
|
|
|
|
+ // this.$nextTick(() => {
|
|
|
|
|
+ // this.scrollToBottom(); // 用户操作时使用动画
|
|
|
|
|
+ // });
|
|
|
|
|
|
|
|
// 构建要发送的消息数据
|
|
// 构建要发送的消息数据
|
|
|
const messageData = {
|
|
const messageData = {
|
|
@@ -759,22 +766,28 @@ export default {
|
|
|
},
|
|
},
|
|
|
// 输入框聚焦事件
|
|
// 输入框聚焦事件
|
|
|
onInputFocus() {
|
|
onInputFocus() {
|
|
|
- console.log('输入框聚焦');
|
|
|
|
|
- // 微信小程序中,聚焦时延迟滚动到底部
|
|
|
|
|
- setTimeout(() => {
|
|
|
|
|
- this.scrollToBottom();
|
|
|
|
|
- }, 300);
|
|
|
|
|
|
|
+ // console.log('输入框聚焦');
|
|
|
|
|
+ // // 微信小程序中,聚焦时延迟滚动到底部
|
|
|
|
|
+ // setTimeout(() => {
|
|
|
|
|
+ // this.scrollToBottom();
|
|
|
|
|
+ // }, 300);
|
|
|
|
|
+ this.isInputFocused = true
|
|
|
|
|
+ this.inputFocus = true
|
|
|
|
|
+ this.hideExtraPanels() // 聚焦时隐藏表情和更多面板
|
|
|
},
|
|
},
|
|
|
|
|
|
|
|
// 输入框失焦事件
|
|
// 输入框失焦事件
|
|
|
onInputBlur() {
|
|
onInputBlur() {
|
|
|
- console.log('输入框失焦');
|
|
|
|
|
|
|
+ // console.log('输入框失焦');
|
|
|
|
|
+ this.isInputFocused = false
|
|
|
|
|
+ this.inputFocus = false
|
|
|
},
|
|
},
|
|
|
|
|
|
|
|
// 输入内容变化事件
|
|
// 输入内容变化事件
|
|
|
- onInputChange(e) {
|
|
|
|
|
|
|
+ onInputChange(event) {
|
|
|
|
|
+ this.inputText = event.detail.value
|
|
|
// 可以在这里处理输入内容的变化,比如限制行数等
|
|
// 可以在这里处理输入内容的变化,比如限制行数等
|
|
|
- const value = e.detail.value;
|
|
|
|
|
|
|
+ const value = event.detail.value;
|
|
|
// 限制最大行数为5行,避免输入框过高
|
|
// 限制最大行数为5行,避免输入框过高
|
|
|
const lines = value.split('\n');
|
|
const lines = value.split('\n');
|
|
|
if (lines.length > 5) {
|
|
if (lines.length > 5) {
|